PPL 1.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Static Public Member Functions | Related Functions
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]

List of all members.

## 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)
| Linear_Expression (const Linear_Expression &e, Representation r)
| Copy constructor that takes also a Representation.
template<typename Expression >
| Linear_Expression (const Expression_Hide_Inhomo< Expression > &e)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Inhomo< Expression > &e, Representation r)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Inhomo< Expression > &e, dimension_type space_dim)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Inhomo< Expression > &e, dimension_type space_dim, Representation r)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Last< Expression > &e)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Last< Expression > &e, Representation r)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Last< Expression > &e, dimension_type space_dim)
template<typename Expression >
| Linear_Expression (const Expression_Hide_Last< Expression > &e, dimension_type space_dim, Representation r)
| ~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`.
| Linear_Expression (const Constraint &c)
| Builds the linear expression corresponding to constraint `c`.
| Linear_Expression (const Constraint &c, Representation r)
| Builds the linear expression corresponding to constraint `c`.
| Linear_Expression (const Generator &g)
| Builds the linear expression corresponding to generator `g` (for points and closure points, the divisor is not copied).
| Linear_Expression (const Generator &g, Representation r)
| Builds the linear expression corresponding to generator `g` (for points and closure points, the divisor is not copied).
| Linear_Expression (const Grid_Generator &g)
| Builds the linear expression corresponding to grid generator `g` (for points, parameters and lines the divisor is not copied).
| Linear_Expression (const Grid_Generator &g, Representation r)
| Builds the linear expression corresponding to grid generator `g` (for points, parameters and lines the divisor is not copied).
| Linear_Expression (const Congruence &cg)
| Builds the linear expression corresponding to congruence `cg`.
| Linear_Expression (const Congruence &cg, Representation r)
| Builds the linear expression corresponding to congruence `cg`.
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.
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.
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`.
Linear_Expression | operator+ (Variable v, Variable w)
| Returns the linear expression `v` + `w`.
Linear_Expression | operator+ (Variable v, const Linear_Expression &e)
| Returns the linear expression `v` + `e`.
Linear_Expression | operator+ (const Linear_Expression &e, Variable v)
| Returns the linear expression `e` + `v`.
Linear_Expression | operator+ (Coefficient_traits::const_reference n, const Linear_Expression &e)
| Returns the linear expression `n` + `e`.
Linear_Expression | operator+ (const Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` + `n`.
Linear_Expression | operator+ (const Linear_Expression &e)
| Returns the linear expression `e`.
Linear_Expression | operator- (const Linear_Expression &e)
| Returns the linear expression - `e`.
Linear_Expression | operator- (const Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` - `e2`.
Linear_Expression | operator- (Variable v, Variable w)
| Returns the linear expression `v` - `w`.
Linear_Expression | operator- (Variable v, const Linear_Expression &e)
| Returns the linear expression `v` - `e`.
Linear_Expression | operator- (const Linear_Expression &e, Variable v)
| Returns the linear expression `e` - `v`.
Linear_Expression | operator- (Coefficient_traits::const_reference n, const Linear_Expression &e)
| Returns the linear expression `n` - `e`.
Linear_Expression | operator- (const Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` - `n`.
Linear_Expression | operator* (Coefficient_traits::const_reference n, const Linear_Expression &e)
| Returns the linear expression `n` * `e`.
Linear_Expression | operator* (const Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` * `n`.
Linear_Expression & | operator+= (Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` + `e2` and assigns it to `e1`.
Linear_Expression & | operator+= (Linear_Expression &e, Variable v)
| Returns the linear expression `e` + `v` and assigns it to `e`.
Linear_Expression & | operator+= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` + `n` and assigns it to `e`.
Linear_Expression & | operator-= (Linear_Expression &e1, const Linear_Expression &e2)
| Returns the linear expression `e1` - `e2` and assigns it to `e1`.
Linear_Expression & | operator-= (Linear_Expression &e, Variable v)
| Returns the linear expression `e` - `v` and assigns it to `e`.
Linear_Expression & | operator-= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `e` - `n` and assigns it to `e`.
Linear_Expression & | operator*= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `n` * `e` and assigns it to `e`.
Linear_Expression & | operator/= (Linear_Expression &e, Coefficient_traits::const_reference n)
| Returns the linear expression `n` / `e` and assigns it to `e`.
void | neg_assign (Linear_Expression &e)
| Assigns to `e` its own negation.
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`.
void | add_mul_assign (Linear_Expression &e1, Coefficient_traits::const_reference factor, const Linear_Expression &e2)
| Sums `e2` multiplied by `factor` into `e1`.
void | sub_mul_assign (Linear_Expression &e1, Coefficient_traits::const_reference factor, const Linear_Expression &e2)
| Subtracts `e2` multiplied by `factor` from `e1`.
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`.
std::ostream & | operator<< (std::ostream &s, const Linear_Expression &e)
| Output operator.
void | swap (Linear_Expression &x, Linear_Expression &y)
| Swaps `x` with `y`.
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 that the representation of the new expression will be e's representation and not necessarily default_representation, so that the copy and e are indistinguishable.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Inhomo< Expression > & | e | ) |
| inline explicit

Copy constructor from a Expression_Hide_Inhomo. Note that the representation of the new expression will be e's representation and not necessarily default_representation, so that the copy and e are indistinguishable.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Inhomo< Expression > & | e,
|  | Representation | r
| ) |  |
| inline

Copy constructor from a Expression_Hide_Inhomo that takes a Representation.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Inhomo< Expression > & | e,
|  | dimension_type | space_dim
| ) |  |
| inline explicit

Copy constructor from a Expression_Hide_Inhomo that takes a space dimension. Note that the representation of the new expression will be e's representation and not necessarily default_representation, so that the copy and e are indistinguishable.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Inhomo< Expression > & | e,
|  | dimension_type | space_dim,
|  | Representation | r
| ) |  |
| inline

Copy constructor from a Expression_Hide_Inhomo that takes a space dimension and a Representation.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Last< Expression > & | e | ) |
| inline explicit

Copy constructor from a Expression_Hide_Last. Note that the representation of the new expression will be e's representation and not necessarily default_representation, so that the copy and e are indistinguishable.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Last< Expression > & | e,
|  | Representation | r
| ) |  |
| inline

Copy constructor from a Expression_Hide_Last that takes a Representation.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Last< Expression > & | e,
|  | dimension_type | space_dim
| ) |  |
| inline explicit

Copy constructor from a Expression_Hide_Last that takes a space dimension. Note that the representation of the new expression will be e's representation and not necessarily default_representation, so that the copy and e are indistinguishable.

template<typename Expression >

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Expression_Hide_Last< Expression > & | e,
|  | dimension_type | space_dim,
|  | Representation | r
| ) |  |
| inline

Copy constructor from a Expression_Hide_Last that takes a space dimension and a 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()`.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Constraint & | c | ) |
| explicit

Builds the linear expression corresponding to constraint `c`.

Given the constraint , where , this builds the linear expression . If `c` is an inequality (resp., equality) constraint, then the built linear expression is unique up to a positive (resp., non-zero) factor.

The constructed Linear_Expression has the same representation as `c`.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Constraint & | c,
|  | Representation | r
| ) |  |
| explicit

Builds the linear expression corresponding to constraint `c`.

Given the constraint , where , this builds the linear expression . If `c` is an inequality (resp., equality) constraint, then the built linear expression is unique up to a positive (resp., non-zero) factor.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Generator & | g | ) |
| explicit

Builds the linear expression corresponding to generator `g` (for points and closure points, the divisor is not copied).

Given the generator (where, for lines and rays, we have ), this builds the linear expression . The inhomogeneous term of the linear expression will always be 0. If `g` is a ray, point or closure point (resp., a line), then the linear expression is unique up to a positive (resp., non-zero) factor.

The constructed Linear_Expression has the same representation as `g`.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Generator & | g,
|  | Representation | r
| ) |  |
| explicit

Builds the linear expression corresponding to generator `g` (for points and closure points, the divisor is not copied).

Given the generator (where, for lines and rays, we have ), this builds the linear expression . The inhomogeneous term of the linear expression will always be 0. If `g` is a ray, point or closure point (resp., a line), then the linear expression is unique up to a positive (resp., non-zero) factor.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Grid_Generator & | g | ) |
| explicit

Builds the linear expression corresponding to grid generator `g` (for points, parameters and lines the divisor is not copied).

Given the grid generator this builds the linear expression . The inhomogeneous term of the linear expression is always 0.

The constructed Linear_Expression has the same representation as `g`.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Grid_Generator & | g,
|  | Representation | r
| ) |  |
| explicit

Builds the linear expression corresponding to grid generator `g` (for points, parameters and lines the divisor is not copied).

Given the grid generator this builds the linear expression . The inhomogeneous term of the linear expression is always 0.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Congruence & | cg | ) |
| explicit

Builds the linear expression corresponding to congruence `cg`.

Given the congruence , this builds the linear expression .

The constructed Linear_Expression has the same representation as `cg`.

Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | const Congruence & | cg,
|  | Representation | r
| ) |  |
| explicit

Builds the linear expression corresponding to congruence `cg`.

Given the congruence , this builds the linear expression .

## 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