#include <ppl.hh>
Inherits Parma_Polyhedra_Library::Linear_Row.
Public Member Functions | |
| Linear_Expression () | |
| Default constructor: returns a copy of Linear_Expression::zero(). | |
| Linear_Expression (const Linear_Expression &e) | |
| Ordinary copy-constructor. | |
| ~Linear_Expression () | |
| Destructor. | |
| Linear_Expression (Coefficient_traits::const_reference n) | |
Builds the linear expression corresponding to the inhomogeneous term n. | |
| Linear_Expression (Variable v) | |
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 Generator &g) | |
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 Congruence &cg) | |
Builds the linear expression corresponding to congruence cg. | |
| dimension_type | space_dimension () const |
Returns the dimension of the vector space enclosing *this. | |
| Coefficient_traits::const_reference | coefficient (Variable v) const |
Returns the coefficient of v in *this. | |
| Coefficient_traits::const_reference | inhomogeneous_term () const |
Returns the inhomogeneous term of *this. | |
| 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. | |
| 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. | |
| bool | OK () const |
| Checks if all the invariants are satisfied. | |
| void | swap (Linear_Expression &y) |
Swaps *this with y. | |
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. | |
Friends | |
| Linear_Expression | operator+ (const Linear_Expression &e1, const Linear_Expression &e2) |
Returns the linear expression e1 + e2. | |
| 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+ (Variable v, const Linear_Expression &e) |
Returns the linear expression v + e. | |
| Linear_Expression | operator+ (Variable v, Variable w) |
Returns the linear expression v + w. | |
| 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- (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- (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+= (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. | |
Related Functions | |
| (Note that these are not member functions.) | |
| Linear_Expression | operator+ (const Linear_Expression &e, Variable v) |
Returns the linear expression e + v. | |
| Linear_Expression | operator+ (const Linear_Expression &e) |
Returns the linear expression e. | |
| std::ostream & | operator<< (std::ostream &s, const Linear_Expression &e) |
| Output operator. | |
| void | swap (Parma_Polyhedra_Library::Linear_Expression &x, Parma_Polyhedra_Library::Linear_Expression &y) |
Specializes std::swap. | |
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.
x is defined as x.id()+1, whereas all the objects of the class Coefficient have space dimension zero.
, having space dimension
: Linear_Expression e = 4*x - 2*y - z + 14;
Linear_Expression e1 = 4*x; Linear_Expression e2 = 2*y; Linear_Expression e3 = z; Linear_Expression e = Linear_Expression(14); e += e1 - e2 - e3;
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. | Parma_Polyhedra_Library::Linear_Expression::Linear_Expression | ( | Variable | v | ) |
Builds the linear expression corresponding to the variable v.
| 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.
| 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.
| 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.
| 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
.
| Linear_Expression operator+ | ( | const Linear_Expression & | e1, | |
| const Linear_Expression & | e2 | |||
| ) | [friend] |
Returns the linear expression e1 + e2.
| Linear_Expression operator+ | ( | Coefficient_traits::const_reference | n, | |
| const Linear_Expression & | e | |||
| ) | [friend] |
Returns the linear expression n + e.
| Linear_Expression operator+ | ( | const Linear_Expression & | e, | |
| Coefficient_traits::const_reference | n | |||
| ) | [friend] |
Returns the linear expression e + n.
| Linear_Expression operator+ | ( | Variable | v, | |
| const Linear_Expression & | e | |||
| ) | [friend] |
Returns the linear expression v + e.
| Linear_Expression operator+ | ( | Variable | v, | |
| Variable | w | |||
| ) | [friend] |
Returns the linear expression v + w.
| Linear_Expression operator- | ( | const Linear_Expression & | e | ) | [friend] |
Returns the linear expression - e.
| Linear_Expression operator- | ( | const Linear_Expression & | e1, | |
| const Linear_Expression & | e2 | |||
| ) | [friend] |
Returns the linear expression e1 - e2.
| Linear_Expression operator- | ( | Variable | v, | |
| Variable | w | |||
| ) | [friend] |
Returns the linear expression v - w.
| Linear_Expression operator- | ( | Coefficient_traits::const_reference | n, | |
| const Linear_Expression & | e | |||
| ) | [friend] |
Returns the linear expression n - e.
| Linear_Expression operator- | ( | const Linear_Expression & | e, | |
| Coefficient_traits::const_reference | n | |||
| ) | [friend] |
Returns the linear expression e - n.
| Linear_Expression operator- | ( | Variable | v, | |
| const Linear_Expression & | e | |||
| ) | [friend] |
Returns the linear expression v - e.
| Linear_Expression operator- | ( | const Linear_Expression & | e, | |
| Variable | v | |||
| ) | [friend] |
Returns the linear expression e - v.
| Linear_Expression operator* | ( | Coefficient_traits::const_reference | n, | |
| const Linear_Expression & | e | |||
| ) | [friend] |
Returns the linear expression n * e.
| Linear_Expression operator* | ( | const Linear_Expression & | e, | |
| Coefficient_traits::const_reference | n | |||
| ) | [friend] |
Returns the linear expression e * n.
| Linear_Expression & operator+= | ( | Linear_Expression & | e1, | |
| const Linear_Expression & | e2 | |||
| ) | [friend] |
Returns the linear expression e1 + e2 and assigns it to e1.
| Linear_Expression & operator+= | ( | Linear_Expression & | e, | |
| Variable | v | |||
| ) | [friend] |
Returns the linear expression e + v and assigns it to e.
| 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 | |||
| ) | [friend] |
Returns the linear expression e + n and assigns it to e.
| Linear_Expression & operator-= | ( | Linear_Expression & | e1, | |
| const Linear_Expression & | e2 | |||
| ) | [friend] |
Returns the linear expression e1 - e2 and assigns it to e1.
| Linear_Expression & operator-= | ( | Linear_Expression & | e, | |
| Variable | v | |||
| ) | [friend] |
Returns the linear expression e - v and assigns it to e.
| 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 | |||
| ) | [friend] |
Returns the linear expression e - n and assigns it to e.
| Linear_Expression & operator*= | ( | Linear_Expression & | e, | |
| Coefficient_traits::const_reference | n | |||
| ) | [friend] |
Returns the linear expression n * e and assigns it to e.
| Linear_Expression operator+ | ( | const Linear_Expression & | e, | |
| Variable | v | |||
| ) | [related] |
Returns the linear expression e + v.
| Linear_Expression operator+ | ( | const Linear_Expression & | e | ) | [related] |
Returns the linear expression e.
| std::ostream & operator<< | ( | std::ostream & | s, | |
| const Linear_Expression & | e | |||
| ) | [related] |
Output operator.
| void swap | ( | Parma_Polyhedra_Library::Linear_Expression & | x, | |
| Parma_Polyhedra_Library::Linear_Expression & | y | |||
| ) | [related] |
Specializes std::swap.
1.5.7.1