Parma_Polyhedra_Library::Linear_Expression Class Reference
C++ Language Interface

A linear expression. More...

`#include <ppl.hh>`

Inheritance diagram for Parma_Polyhedra_Library::Linear_Expression:
[legend]

## Classes

class | const_iterator

## Public Member Functions

| Linear_Expression (Representation r=default_representation)
| Default constructor: returns a copy of Linear_Expression::zero().
| Linear_Expression (const Linear_Expression &e)
| Ordinary copy constructor. More...
| Linear_Expression (const Linear_Expression &e, Representation r)
| Copy constructor that takes also a Representation.
template<typename LE_Adapter >
| Linear_Expression (const LE_Adapter &e, typename Enable_If< Is_Same_Or_Derived< Expression_Adapter_Base, LE_Adapter >::value, void * >::type=0)
| Copy constructor from a linear expression adapter. More...
template<typename LE_Adapter >
| Linear_Expression (const LE_Adapter &e, Representation r, typename Enable_If< Is_Same_Or_Derived< Expression_Adapter_Base, LE_Adapter >::value, void * >::type=0)
| Copy constructor from a linear expression adapter that takes a Representation.
template<typename LE_Adapter >
| Linear_Expression (const LE_Adapter &e, dimension_type space_dim, typename Enable_If< Is_Same_Or_Derived< Expression_Adapter_Base, LE_Adapter >::value, void * >::type=0)
| Copy constructor from a linear expression adapter that takes a space dimension. More...
template<typename LE_Adapter >
| Linear_Expression (const LE_Adapter &e, dimension_type space_dim, Representation r, typename Enable_If< Is_Same_Or_Derived< Expression_Adapter_Base, LE_Adapter >::value, void * >::type=0)
| Copy constructor from a linear expression adapter that takes a space dimension and a Representation.
Linear_Expression & | operator= (const Linear_Expression &e)
| Assignment operator.
| ~Linear_Expression ()
| Destructor.
| Linear_Expression (Coefficient_traits::const_reference n, Representation r=default_representation)
| Builds the linear expression corresponding to the inhomogeneous term `n`.
| Linear_Expression (Variable v, Representation r=default_representation)
| Builds the linear expression corresponding to the variable `v`. More...
Representation | representation () const
| Returns the current representation of *this.
void | set_representation (Representation r)
| Converts *this to the specified representation.
const_iterator | begin () const
const_iterator | end () const
const_iterator | lower_bound (Variable v) const
dimension_type | space_dimension () const
| Returns the dimension of the vector space enclosing `*this`.
void | set_space_dimension (dimension_type n)
| Sets the dimension of the vector space enclosing `*this` to `n` .
Coefficient_traits::const_reference | coefficient (Variable v) const
| Returns the coefficient of `v` in `*this`.
void | set_coefficient (Variable v, Coefficient_traits::const_reference n)
| Sets the coefficient of `v` in `*this` to `n`.
Coefficient_traits::const_reference | inhomogeneous_term () const
| Returns the inhomogeneous term of `*this`.
void | set_inhomogeneous_term (Coefficient_traits::const_reference n)
| Sets the inhomogeneous term of `*this` to `n`.
void | linear_combine (const Linear_Expression &y, Variable v)
void | linear_combine (const Linear_Expression &y, Coefficient_traits::const_reference c1, Coefficient_traits::const_reference c2)
void | linear_combine_lax (const Linear_Expression &y, Coefficient_traits::const_reference c1, Coefficient_traits::const_reference c2)
void | swap_space_dimensions (Variable v1, Variable v2)
| Swaps the coefficients of the variables `v1` and `v2` .
void | remove_space_dimensions (const Variables_Set &vars)
| Removes all the specified dimensions from the expression. More...
void | shift_space_dimensions (Variable v, dimension_type n)
void | permute_space_dimensions (const std::vector< Variable > &cycle)
| Permutes the space dimensions of the expression. More...
bool | is_zero () const
| Returns `true` if and only if `*this` is .
bool | all_homogeneous_terms_are_zero () const
| Returns `true` if and only if all the homogeneous terms of `*this` are .
memory_size_type | total_memory_in_bytes () const
| Returns a lower bound to the total size in bytes of the memory occupied by `*this`.
memory_size_type | external_memory_in_bytes () const
| Returns the size in bytes of the memory managed by `*this`.
bool | OK () const
| Checks if all the invariants are satisfied.
void | ascii_dump () const
| Writes to `std::cerr` an ASCII representation of `*this`.
void | ascii_dump (std::ostream &s) const
| Writes to `s` an ASCII representation of `*this`.
void | print () const
| Prints `*this` to `std::cerr` using `operator<<`.
bool | ascii_load (std::istream &s)
| Loads from `s` an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets `*this` accordingly. Returns `true` if successful, `false` otherwise.
void | m_swap (Linear_Expression &y)
| Swaps `*this` with `y`.
| Linear_Expression (const Linear_Expression &e, dimension_type space_dim)
| Copy constructor with a specified space dimension.
| Linear_Expression (const Linear_Expression &e, dimension_type space_dim, Representation r)
| Copy constructor with a specified space dimension and representation.
bool | is_equal_to (const Linear_Expression &x) const
void | normalize ()
void | sign_normalize ()
bool | all_zeroes (const Variables_Set &vars) const
| Returns `true` if the coefficient of each variable in `vars`[i] is .

## Static Public Member Functions

static dimension_type | max_space_dimension ()
| Returns the maximum space dimension a Linear_Expression can handle.
static void | initialize ()
| Initializes the class.
static void | finalize ()
| Finalizes the class.
static const Linear_Expression & | zero ()
| Returns the (zero-dimension space) constant 0.

## Related Functions

(Note that these are not member functions.)
Linear_Expression | operator+ (const Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` + `e2`. More...
Linear_Expression | operator+ (Variable v, Variable w)
| Returns the linear expression `v` + `w`. More...
Linear_Expression | operator+ (Variable v, const Linear_Expression &e)
| Returns the linear expression `v` + `e`. More...
Linear_Expression | operator+ (const Linear_Expression &e, Variable v)
| Returns the linear expression `e` + `v`. More...
Linear_Expression | operator+ (Coefficient_traits::const_reference n, const Linear_Expression &e)
| Returns the linear expression `n` + `e`. More...
Linear_Expression | operator+ (const Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` + `n`. More...
Linear_Expression | operator+ (const Linear_Expression &e)
| Returns the linear expression `e`. More...
Linear_Expression | operator- (const Linear_Expression &e)
| Returns the linear expression - `e`. More...
Linear_Expression | operator- (const Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` - `e2`. More...
Linear_Expression | operator- (Variable v, Variable w)
| Returns the linear expression `v` - `w`. More...
Linear_Expression | operator- (Variable v, const Linear_Expression &e)
| Returns the linear expression `v` - `e`. More...
Linear_Expression | operator- (const Linear_Expression &e, Variable v)
| Returns the linear expression `e` - `v`. More...
Linear_Expression | operator- (Coefficient_traits::const_reference n, const Linear_Expression &e)
| Returns the linear expression `n` - `e`. More...
Linear_Expression | operator- (const Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` - `n`. More...
Linear_Expression | operator* (Coefficient_traits::const_reference n, const Linear_Expression &e)
| Returns the linear expression `n` * `e`. More...
Linear_Expression | operator* (const Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` * `n`. More...
Linear_Expression & | operator+= (Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` + `e2` and assigns it to `e1`. More...
Linear_Expression & | operator+= (Linear_Expression &e, Variable v)
| Returns the linear expression `e` + `v` and assigns it to `e`. More...
Linear_Expression & | operator+= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` + `n` and assigns it to `e`. More...
Linear_Expression & | operator-= (Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` - `e2` and assigns it to `e1`. More...
Linear_Expression & | operator-= (Linear_Expression &e, Variable v)
| Returns the linear expression `e` - `v` and assigns it to `e`. More...
Linear_Expression & | operator-= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` - `n` and assigns it to `e`. More...
Linear_Expression & | operator*= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `n` * `e` and assigns it to `e`. More...
Linear_Expression & | operator/= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `n` / `e` and assigns it to `e`. More...
void | neg_assign (Linear_Expression &e)
| Assigns to `e` its own negation. More...
Linear_Expression & | add_mul_assign (Linear_Expression &e, Coefficient_traits::const_reference n, Variable v)
| Returns the linear expression `e` + `n` * `v` and assigns it to `e`. More...
void | add_mul_assign (Linear_Expression &e1, Coefficient_traits::const_reference factor, const Linear_Expression &e2)
| Sums `e2` multiplied by `factor` into `e1`. More...
void | sub_mul_assign (Linear_Expression &e1, Coefficient_traits::const_reference factor, const Linear_Expression &e2)
| Subtracts `e2` multiplied by `factor` from `e1`. More...
Linear_Expression & | sub_mul_assign (Linear_Expression &e, Coefficient_traits::const_reference n, Variable v)
| Returns the linear expression `e` - `n` * `v` and assigns it to `e`. More...
std::ostream & | operator<< (std::ostream &s, const Linear_Expression &e)
| Output operator. More...
void | swap (Linear_Expression &x, Linear_Expression &y)
| Swaps `x` with `y`. More...
Linear_Expression | operator+ (const Linear_Expression &e)
Linear_Expression | operator+ (const Linear_Expression &e, Coefficient_traits::const_reference n)
Linear_Expression | operator+ (const Linear_Expression &e, const Variable v)
Linear_Expression | operator- (const Linear_Expression &e, Coefficient_traits::const_reference n)
Linear_Expression | operator- (const Variable v, const Variable w)
Linear_Expression | operator* (const Linear_Expression &e, Coefficient_traits::const_reference n)
Linear_Expression & | operator+= (Linear_Expression &e, Coefficient_traits::const_reference n)
Linear_Expression & | operator-= (Linear_Expression &e, Coefficient_traits::const_reference n)
Linear_Expression | operator+ (const Linear_Expression &e1, const Linear_Expression &e2)
Linear_Expression | operator+ (const Variable v, const Linear_Expression &e)
Linear_Expression | operator+ (Coefficient_traits::const_reference n, const Linear_Expression &e)
Linear_Expression | operator+ (const Variable v, const Variable w)
Linear_Expression | operator- (const Linear_Expression &e)
Linear_Expression | operator- (const Linear_Expression &e1, const Linear_Expression &e2)
Linear_Expression | operator- (const Variable v, const Linear_Expression &e)
Linear_Expression | operator- (const Linear_Expression &e, const Variable v)
Linear_Expression | operator- (Coefficient_traits::const_reference n, const Linear_Expression &e)
Linear_Expression | operator* (Coefficient_traits::const_reference n, const Linear_Expression &e)
Linear_Expression & | operator+= (Linear_Expression &e1, const Linear_Expression &e2)
Linear_Expression & | operator+= (Linear_Expression &e, const Variable v)
Linear_Expression & | operator-= (Linear_Expression &e1, const Linear_Expression &e2)
Linear_Expression & | operator-= (Linear_Expression &e, const Variable v)
Linear_Expression & | operator*= (Linear_Expression &e, Coefficient_traits::const_reference n)
Linear_Expression & | operator/= (Linear_Expression &e, Coefficient_traits::const_reference n)
void | neg_assign (Linear_Expression &e)
Linear_Expression & | add_mul_assign (Linear_Expression &e, Coefficient_traits::const_reference n, const Variable v)
Linear_Expression & | sub_mul_assign (Linear_Expression &e, Coefficient_traits::const_reference n, const Variable v)
std::ostream & | operator<< (std::ostream &s, const Linear_Expression &e)
void | swap (Linear_Expression &x, Linear_Expression &y)

## Detailed Description

A linear expression.

An object of the class Linear_Expression represents the linear expression

where is the dimension of the vector space, each is the integer coefficient of the -th variable and is the integer for the inhomogeneous term.

How to build a linear expression.

Linear expressions are the basic blocks for defining both constraints (i.e., linear equalities or inequalities) and generators (i.e., lines, rays, points and closure points). A full set of functions is defined to provide a convenient interface for building complex linear expressions starting from simpler ones and from objects of the classes Variable and Coefficient: available operators include unary negation, binary addition and subtraction, as well as multiplication by a Coefficient. The space dimension of a linear expression is defined as the maximum space dimension of the arguments used to build it: in particular, the space dimension of a Variable `x` is defined as `x.id()+1`, whereas all the objects of the class Coefficient have space dimension zero.

Example
  The following code builds the linear expression , having space dimension :
  Linear_Expression e = 4*x - 2*y - z + 14;
  Another way to build the same linear expression is:
  Linear_Expression e1 = 4*x;
  Linear_Expression e2 = 2*y;
  Linear_Expression e3 = z;
  Linear_Expression e = Linear_Expression(14);
  e += e1 - e2 - e3;
  Note that `e1`, `e2` and `e3` have space dimension 1, 2 and 3, respectively; also, in the fourth line of code, `e` is created with space dimension zero and then extended to space dimension 3 in the fifth line.

## Constructor & Destructor Documentation

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Linear_Expression & | e | ) |

Ordinary copy constructor.

Note
  The new expression will have the same representation as `e` (not necessarily the default_representation).

template<typename LE_Adapter >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const LE_Adapter & | e,
|  | typename Enable_If< Is_Same_Or_Derived< Expression_Adapter_Base, LE_Adapter >::value, void * >::type | = `0`
| ) |  |

inline explicit

Copy constructor from a linear expression adapter.

Note
  The new expression will have the same representation as `e` (not necessarily the default_representation).

template<typename LE_Adapter >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const LE_Adapter & | e,
|  | dimension_type | space_dim,
|  | typename Enable_If< Is_Same_Or_Derived< Expression_Adapter_Base, LE_Adapter >::value, void * >::type | = `0`
| ) |  |

inline explicit

Copy constructor from a linear expression adapter that takes a space dimension.

Note
  The new expression will have the same representation as `e` (not necessarily default_representation).

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | Variable | v,
|  | Representation | r = `default_representation`
| ) |  |

Builds the linear expression corresponding to the variable `v`.

Exceptions

  std::length_error | Thrown if the space dimension of `v` exceeds `Linear_Expression::max_space_dimension()`.

## Member Function Documentation

Linear_Expression::const_iterator Parma_Polyhedra_Library::Linear_Expression::begin | ( |  | ) | const

inline

Returns an iterator that points to the first nonzero coefficient in the expression.

Linear_Expression::const_iterator Parma_Polyhedra_Library::Linear_Expression::end | ( |  | ) | const

inline

Returns an iterator that points to the last nonzero coefficient in the expression.

Linear_Expression::const_iterator Parma_Polyhedra_Library::Linear_Expression::lower_bound | ( | Variable | v | ) | const

inline

Returns an iterator that points to the first nonzero coefficient of a variable bigger than or equal to v.

void Parma_Polyhedra_Library::Linear_Expression::linear_combine | ( | const Linear_Expression & | y,
|  | Variable | v
| ) |  |

Linearly combines `*this` with `y` so that the coefficient of `v` is 0.

Parameters

  y | The expression that will be combined with `*this` object;
  v | The variable whose coefficient has to become .

Computes a linear combination of `*this` and `y` having the coefficient of variable `v` equal to . Then it assigns the resulting expression to `*this`.

`*this` and `y` must have the same space dimension.

void Parma_Polyhedra_Library::Linear_Expression::linear_combine | ( | const Linear_Expression & | y,
|  | Coefficient_traits::const_reference | c1,
|  | Coefficient_traits::const_reference | c2
| ) |  |

inline

Equivalent to `*this = *this * c1 + y * c2`, but assumes that c1 and c2 are not 0.

void Parma_Polyhedra_Library::Linear_Expression::linear_combine_lax | ( | const Linear_Expression & | y,
|  | Coefficient_traits::const_reference | c1,
|  | Coefficient_traits::const_reference | c2
| ) |  |

inline

Equivalent to `*this = *this * c1 + y * c2`. c1 and c2 may be 0.

void Parma_Polyhedra_Library::Linear_Expression::remove_space_dimensions | ( | const Variables_Set & | vars | ) |

inline

Removes all the specified dimensions from the expression.

The space dimension of the variable with the highest space dimension in `vars` must be at most the space dimension of `this`.

void Parma_Polyhedra_Library::Linear_Expression::shift_space_dimensions | ( | Variable | v,
|  | dimension_type | n
| ) |  |

inline

Shift by `n` positions the coefficients of variables, starting from the coefficient of `v`. This increases the space dimension by `n`.

void Parma_Polyhedra_Library::Linear_Expression::permute_space_dimensions | ( | const std::vector< Variable > & | cycle | ) |

inline

Permutes the space dimensions of the expression.

Parameters

  cycle | A vector representing a cycle of the permutation according to which the space dimensions must be rearranged.

The `cycle` vector represents a cycle of a permutation of space dimensions. For example, the permutation can be represented by the vector containing .

bool Parma_Polyhedra_Library::Linear_Expression::is_equal_to | ( | const Linear_Expression & | x | ) | const

inline

Returns `true` if *this is equal to `x`. Note that (*this == x) has a completely different meaning.

void Parma_Polyhedra_Library::Linear_Expression::normalize | ( |  | ) |

inline

Normalizes the modulo of the coefficients and of the inhomogeneous term so that they are mutually prime.

Computes the Greatest Common Divisor (GCD) among the coefficients and the inhomogeneous term and normalizes them by the GCD itself.

void Parma_Polyhedra_Library::Linear_Expression::sign_normalize | ( |  | ) |

inline

Ensures that the first nonzero homogeneous coefficient is positive, by negating the row if necessary.

## Friends And Related Function Documentation

Linear_Expression operator+ | ( | const Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Returns the linear expression `e1` + `e2`.

Linear_Expression operator+ | ( | Variable | v,
|  | Variable | w
| ) |  |

related

Returns the linear expression `v` + `w`.

Linear_Expression operator+ | ( | Variable | v,
|  | const Linear_Expression & | e
| ) |  |

related

Returns the linear expression `v` + `e`.

Linear_Expression operator+ | ( | const Linear_Expression & | e,
|  | Variable | v
| ) |  |

related

Returns the linear expression `e` + `v`.

Linear_Expression operator+ | ( | Coefficient_traits::const_reference | n,
|  | const Linear_Expression & | e
| ) |  |

related

Returns the linear expression `n` + `e`.

Linear_Expression operator+ | ( | const Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `e` + `n`.

Linear_Expression operator+ | ( | const Linear_Expression & | e | ) |

related

Returns the linear expression `e`.

Linear_Expression operator- | ( | const Linear_Expression & | e | ) |

related

Returns the linear expression - `e`.

Linear_Expression operator- | ( | const Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Returns the linear expression `e1` - `e2`.

Linear_Expression operator- | ( | Variable | v,
|  | Variable | w
| ) |  |

related

Returns the linear expression `v` - `w`.

Linear_Expression operator- | ( | Variable | v,
|  | const Linear_Expression & | e
| ) |  |

related

Returns the linear expression `v` - `e`.

Linear_Expression operator- | ( | const Linear_Expression & | e,
|  | Variable | v
| ) |  |

related

Returns the linear expression `e` - `v`.

Linear_Expression operator- | ( | Coefficient_traits::const_reference | n,
|  | const Linear_Expression & | e
| ) |  |

related

Returns the linear expression `n` - `e`.

Linear_Expression operator- | ( | const Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `e` - `n`.

Linear_Expression operator* | ( | Coefficient_traits::const_reference | n,
|  | const Linear_Expression & | e
| ) |  |

related

Returns the linear expression `n` * `e`.

Linear_Expression operator* | ( | const Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `e` * `n`.

Linear_Expression & operator+= | ( | Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Returns the linear expression `e1` + `e2` and assigns it to `e1`.

Linear_Expression & operator+= | ( | Linear_Expression & | e,
|  | Variable | v
| ) |  |

related

Returns the linear expression `e` + `v` and assigns it to `e`.

Exceptions

  std::length_error | Thrown if the space dimension of `v` exceeds `Linear_Expression::max_space_dimension()`.

Linear_Expression & operator+= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `e` + `n` and assigns it to `e`.

Linear_Expression & operator-= | ( | Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Returns the linear expression `e1` - `e2` and assigns it to `e1`.

Linear_Expression & operator-= | ( | Linear_Expression & | e,
|  | Variable | v
| ) |  |

related

Returns the linear expression `e` - `v` and assigns it to `e`.

Exceptions

  std::length_error | Thrown if the space dimension of `v` exceeds `Linear_Expression::max_space_dimension()`.

Linear_Expression & operator-= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `e` - `n` and assigns it to `e`.

Linear_Expression & operator*= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `n` * `e` and assigns it to `e`.

Linear_Expression & operator/= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Returns the linear expression `n` / `e` and assigns it to `e`.

void neg_assign | ( | Linear_Expression & | e | ) |

related

Assigns to `e` its own negation.

Linear_Expression & add_mul_assign | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n,
|  | Variable | v
| ) |  |

related

Returns the linear expression `e` + `n` * `v` and assigns it to `e`.

void add_mul_assign | ( | Linear_Expression & | e1,
|  | Coefficient_traits::const_reference | factor,
|  | const Linear_Expression & | e2
| ) |  |

related

Sums `e2` multiplied by `factor` into `e1`.

void sub_mul_assign | ( | Linear_Expression & | e1,
|  | Coefficient_traits::const_reference | factor,
|  | const Linear_Expression & | e2
| ) |  |

related

Subtracts `e2` multiplied by `factor` from `e1`.

Linear_Expression & sub_mul_assign | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n,
|  | Variable | v
| ) |  |

related

Returns the linear expression `e` - `n` * `v` and assigns it to `e`.

std::ostream & operator<< | ( | std::ostream & | s,
|  | const Linear_Expression & | e
| ) |  |

related

Output operator.

void swap | ( | Linear_Expression & | x,
|  | Linear_Expression & | y
| ) |  |

related

Swaps `x` with `y`.

Linear_Expression operator+ | ( | const Linear_Expression & | e | ) |

related

Linear_Expression operator+ | ( | const Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Linear_Expression operator+ | ( | const Linear_Expression & | e,
|  | const Variable | v
| ) |  |

related

Linear_Expression operator- | ( | const Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Linear_Expression operator- | ( | const Variable | v,
|  | const Variable | w
| ) |  |

related

Linear_Expression operator* | ( | const Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Linear_Expression & operator+= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Linear_Expression & operator-= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Linear_Expression operator+ | ( | const Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Linear_Expression operator+ | ( | const Variable | v,
|  | const Linear_Expression & | e
| ) |  |

related

Linear_Expression operator+ | ( | Coefficient_traits::const_reference | n,
|  | const Linear_Expression & | e
| ) |  |

related

Linear_Expression operator+ | ( | const Variable | v,
|  | const Variable | w
| ) |  |

related

Linear_Expression operator- | ( | const Linear_Expression & | e | ) |

related

Linear_Expression operator- | ( | const Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Linear_Expression operator- | ( | const Variable | v,
|  | const Linear_Expression & | e
| ) |  |

related

Linear_Expression operator- | ( | const Linear_Expression & | e,
|  | const Variable | v
| ) |  |

related

Linear_Expression operator- | ( | Coefficient_traits::const_reference | n,
|  | const Linear_Expression & | e
| ) |  |

related

Linear_Expression operator* | ( | Coefficient_traits::const_reference | n,
|  | const Linear_Expression & | e
| ) |  |

related

Linear_Expression & operator+= | ( | Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Linear_Expression & operator+= | ( | Linear_Expression & | e,
|  | const Variable | v
| ) |  |

related

Linear_Expression & operator-= | ( | Linear_Expression & | e1,
|  | const Linear_Expression & | e2
| ) |  |

related

Linear_Expression & operator-= | ( | Linear_Expression & | e,
|  | const Variable | v
| ) |  |

related

Linear_Expression & operator*= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

Linear_Expression & operator/= | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n
| ) |  |

related

void neg_assign | ( | Linear_Expression & | e | ) |

related

Linear_Expression & add_mul_assign | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n,
|  | const Variable | v
| ) |  |

related

Linear_Expression & sub_mul_assign | ( | Linear_Expression & | e,
|  | Coefficient_traits::const_reference | n,
|  | const Variable | v
| ) |  |

related

std::ostream & operator<< | ( | std::ostream & | s,
|  | const Linear_Expression & | e
| ) |  |

related

void swap | ( | Linear_Expression & | x,
|  | Linear_Expression & | y
| ) |  |

related

The documentation for this class was generated from the following file:

- ppl.hh