PPL
1.2
|
An adapter for Linear_Expression objects. More...
#include <Expression_Adapter_defs.hh>
Public Types | |
typedef Expression_Adapter< T > | const_reference |
The type of this object. More... | |
typedef T::const_reference | inner_type |
The type obtained by one-level unwrapping. More... | |
typedef T::raw_type | raw_type |
The raw, completely unwrapped type. More... | |
typedef raw_type::const_iterator | const_iterator |
The type of const iterators on coefficients. More... | |
Public Member Functions | |
inner_type | inner () const |
Returns an adapter after one-level unwrapping. More... | |
Representation | representation () const |
Returns the current representation of *this . More... | |
const_iterator | begin () const |
Iterator pointing to the first nonzero variable coefficient. More... | |
const_iterator | end () const |
Iterator pointing after the last nonzero variable coefficient. More... | |
const_iterator | lower_bound (Variable v) const |
dimension_type | space_dimension () const |
Returns the dimension of the vector space enclosing *this . More... | |
Coefficient_traits::const_reference | coefficient (Variable v) const |
Returns the coefficient of v in *this . More... | |
Coefficient_traits::const_reference | inhomogeneous_term () const |
Returns the inhomogeneous term of *this . More... | |
bool | is_zero () const |
Returns true if and only if *this is zero. More... | |
bool | all_homogeneous_terms_are_zero () const |
Returns true if and only if all the homogeneous terms of *this are zero. More... | |
template<typename Expression > | |
bool | is_equal_to (const Expression &y) const |
Returns true if *this is equal to y . More... | |
bool | all_zeroes (const Variables_Set &vars) const |
Returns true if the coefficient of each variable in vars is zero. More... | |
Coefficient_traits::const_reference | get (dimension_type i) const |
Returns the i -th coefficient. More... | |
Coefficient_traits::const_reference | get (Variable v) const |
Returns the coefficient of variable v . More... | |
bool | all_zeroes (dimension_type start, dimension_type end) const |
Returns true if (*this)[i] is zero, for each i in [start, end). More... | |
dimension_type | num_zeroes (dimension_type start, dimension_type end) const |
Returns the number of zero coefficient in [start, end). More... | |
Coefficient | gcd (dimension_type start, dimension_type end) const |
Returns the gcd of the nonzero coefficients in [start,end). Returns zero if all the coefficients in the range are zero. More... | |
dimension_type | last_nonzero () const |
dimension_type | last_nonzero (dimension_type first, dimension_type last) const |
dimension_type | first_nonzero (dimension_type first, dimension_type last) const |
bool | all_zeroes_except (const Variables_Set &vars, dimension_type start, dimension_type end) const |
Returns true if all coefficients in [start,end), except those corresponding to variables in vars , are zero. More... | |
void | has_a_free_dimension_helper (std::set< dimension_type > &x) const |
Removes from set x all the indexes of nonzero elements in *this . More... | |
template<typename Expression > | |
bool | is_equal_to (const Expression &y, dimension_type start, dimension_type end) const |
template<typename Expression > | |
bool | is_equal_to (const Expression &y, Coefficient_traits::const_reference c1, Coefficient_traits::const_reference c2, dimension_type start, dimension_type end) const |
void | get_row (Dense_Row &r) const |
Sets r to a copy of the row as adapted by *this . More... | |
void | get_row (Sparse_Row &r) const |
Sets r to a copy of the row as adapted by *this . More... | |
template<typename Expression > | |
bool | have_a_common_variable (const Expression &y, Variable first, Variable last) const |
Protected Member Functions | |
Expression_Adapter (const raw_type &expr) | |
Constructor. More... | |
Protected Attributes | |
const raw_type & | raw_ |
The raw, completely unwrapped object subject to adaptation. More... | |
An adapter for Linear_Expression objects.
The adapters are meant to provide read-only, customized access to the Linear_Expression members in Constraint, Generator, Congruence and Grid_Generator objects. They typically implement the user-level view of these expressions.
i
is zero, the inhomogeneous term is meant; when the bare index i
is greater than zero, the coefficient of the variable having id i - 1
is meant. Definition at line 56 of file Expression_Adapter_defs.hh.
typedef raw_type::const_iterator Parma_Polyhedra_Library::Expression_Adapter< T >::const_iterator |
The type of const iterators on coefficients.
Definition at line 70 of file Expression_Adapter_defs.hh.
typedef Expression_Adapter<T> Parma_Polyhedra_Library::Expression_Adapter< T >::const_reference |
The type of this object.
Definition at line 60 of file Expression_Adapter_defs.hh.
typedef T::const_reference Parma_Polyhedra_Library::Expression_Adapter< T >::inner_type |
The type obtained by one-level unwrapping.
Definition at line 62 of file Expression_Adapter_defs.hh.
typedef T::raw_type Parma_Polyhedra_Library::Expression_Adapter< T >::raw_type |
The raw, completely unwrapped type.
Definition at line 64 of file Expression_Adapter_defs.hh.
|
inlineexplicitprotected |
Constructor.
Definition at line 33 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if and only if all the homogeneous terms of *this
are zero.
Definition at line 93 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if the coefficient of each variable in vars
is zero.
Definition at line 107 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::Box_Helpers::extract_interval_congruence().
|
inline |
Returns true
if (*this)[i] is zero, for each i in [start, end).
Definition at line 125 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if all coefficients in [start,end), except those corresponding to variables in vars
, are zero.
Definition at line 167 of file Expression_Adapter_inlines.hh.
|
inline |
Iterator pointing to the first nonzero variable coefficient.
Definition at line 51 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::BD_Shape< T >::BD_Shape(), Parma_Polyhedra_Library::Box< ITV >::Box(), Parma_Polyhedra_Library::Implementation::Termination::fill_constraint_system_PR(), Parma_Polyhedra_Library::Implementation::Termination::fill_constraint_system_PR_original(), Parma_Polyhedra_Library::Implementation::Termination::fill_constraint_systems_MS(), Parma_Polyhedra_Library::Grid::map_space_dimensions(), Parma_Polyhedra_Library::Polyhedron::map_space_dimensions(), Parma_Polyhedra_Library::Congruence::operator<<(), Parma_Polyhedra_Library::Constraint::operator<<(), Parma_Polyhedra_Library::MIP_Problem::process_pending_constraints(), Parma_Polyhedra_Library::Box< ITV >::propagate_constraint_no_check(), Parma_Polyhedra_Library::Box< ITV >::relation_with(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
|
inline |
Returns the coefficient of v
in *this
.
Definition at line 75 of file Expression_Adapter_inlines.hh.
|
inline |
Iterator pointing after the last nonzero variable coefficient.
Definition at line 57 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::Box< ITV >::relation_with().
|
inline |
Returns the index of the first nonzero element, or last
if there are no nonzero elements, considering only elements in [first,last).
Definition at line 159 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::Box_Helpers::extract_interval_congruence().
|
inline |
Returns the gcd of the nonzero coefficients in [start,end). Returns zero if all the coefficients in the range are zero.
Definition at line 139 of file Expression_Adapter_inlines.hh.
|
inline |
Returns the i
-th coefficient.
Definition at line 113 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::Grid::conversion().
|
inline |
Returns the coefficient of variable v
.
Definition at line 119 of file Expression_Adapter_inlines.hh.
|
inline |
Sets r
to a copy of the row as adapted by *this
.
Definition at line 201 of file Expression_Adapter_inlines.hh.
|
inline |
Sets r
to a copy of the row as adapted by *this
.
Definition at line 207 of file Expression_Adapter_inlines.hh.
|
inline |
Removes from set x
all the indexes of nonzero elements in *this
.
Definition at line 175 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if there is a variable in [first,last) whose coefficient is nonzero in both *this
and y
.
Definition at line 215 of file Expression_Adapter_inlines.hh.
|
inline |
Returns the inhomogeneous term of *this
.
Definition at line 81 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::Implementation::Termination::fill_constraint_system_PR(), Parma_Polyhedra_Library::Implementation::Termination::fill_constraint_system_PR_original(), and Parma_Polyhedra_Library::Polyhedron::strongly_minimize_constraints().
|
inline |
Returns an adapter after one-level unwrapping.
Definition at line 39 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if *this
is equal to y
.
Note that (*this == y)
has a completely different meaning.
Definition at line 100 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if (*this)[i]
is equal to y[i]
, for each i in [start,end).
Definition at line 183 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if (*this)[i]*c1
is equal to y[i]*c2
, for each i in [start,end).
Definition at line 192 of file Expression_Adapter_inlines.hh.
|
inline |
Returns true
if and only if *this
is zero.
Definition at line 87 of file Expression_Adapter_inlines.hh.
|
inline |
Returns the index of the last nonzero element, or zero if there are no nonzero elements.
Definition at line 146 of file Expression_Adapter_inlines.hh.
|
inline |
Returns the index of the last nonzero element in [first,last), or last
if there are no nonzero elements.
Definition at line 152 of file Expression_Adapter_inlines.hh.
|
inline |
Iterator pointing to the first nonzero variable coefficient of a variable bigger than or equal to v
.
Definition at line 63 of file Expression_Adapter_inlines.hh.
Referenced by Parma_Polyhedra_Library::Congruence::operator<<().
|
inline |
Returns the number of zero coefficient in [start, end).
Definition at line 132 of file Expression_Adapter_inlines.hh.
|
inline |
Returns the current representation of *this
.
Definition at line 45 of file Expression_Adapter_inlines.hh.
|
inline |
Returns the dimension of the vector space enclosing *this
.
Definition at line 69 of file Expression_Adapter_inlines.hh.
|
protected |
The raw, completely unwrapped object subject to adaptation.
Definition at line 189 of file Expression_Adapter_defs.hh.