PPL
1.2
|
An adapter for Linear_Expression that maybe hides the last coefficient. More...
#include <Expression_Hide_Last_defs.hh>
Public Types | |
typedef Expression_Hide_Last< T > | const_reference |
The type of this object. More... | |
typedef base_type::inner_type | inner_type |
The type obtained by one-level unwrapping. More... | |
typedef base_type::raw_type | raw_type |
The raw, completely unwrapped type. More... | |
typedef base_type::const_iterator | const_iterator |
The type of const iterators on coefficients. More... | |
![]() | |
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 | |
Expression_Hide_Last (const raw_type &expr, bool hide_last) | |
Constructor. 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... | |
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 |
![]() | |
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 |
Private Types | |
typedef Expression_Adapter< T > | base_type |
Private Attributes | |
const bool | hide_last_ |
Whether or not the last coefficient is hidden. More... | |
Additional Inherited Members | |
![]() | |
Expression_Adapter (const raw_type &expr) | |
Constructor. More... | |
![]() | |
const raw_type & | raw_ |
The raw, completely unwrapped object subject to adaptation. More... | |
An adapter for Linear_Expression that maybe hides the last coefficient.
Definition at line 37 of file Expression_Hide_Last_defs.hh.
|
private |
Definition at line 39 of file Expression_Hide_Last_defs.hh.
typedef base_type::const_iterator Parma_Polyhedra_Library::Expression_Hide_Last< T >::const_iterator |
The type of const iterators on coefficients.
Definition at line 49 of file Expression_Hide_Last_defs.hh.
typedef Expression_Hide_Last<T> Parma_Polyhedra_Library::Expression_Hide_Last< T >::const_reference |
The type of this object.
Definition at line 42 of file Expression_Hide_Last_defs.hh.
typedef base_type::inner_type Parma_Polyhedra_Library::Expression_Hide_Last< T >::inner_type |
The type obtained by one-level unwrapping.
Definition at line 44 of file Expression_Hide_Last_defs.hh.
typedef base_type::raw_type Parma_Polyhedra_Library::Expression_Hide_Last< T >::raw_type |
The raw, completely unwrapped type.
Definition at line 46 of file Expression_Hide_Last_defs.hh.
|
inlineexplicit |
Constructor.
Definition at line 33 of file Expression_Hide_Last_inlines.hh.
|
inline |
Returns true
if and only if all the homogeneous terms of *this
are zero.
Definition at line 82 of file Expression_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::Polyhedron::is_universe(), Parma_Polyhedra_Library::Polyhedron::strongly_minimize_constraints(), and Parma_Polyhedra_Library::Polyhedron::time_elapse_assign().
|
inline |
Returns true
if the coefficient of each variable in vars
is zero.
Definition at line 101 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Variables_Set::space_dimension().
Referenced by Parma_Polyhedra_Library::Polyhedron::constrains(), Parma_Polyhedra_Library::Grid::constrains(), Parma_Polyhedra_Library::Polyhedron::drop_some_non_integer_points(), Parma_Polyhedra_Library::BD_Shape< T >::extract_bounded_difference(), Parma_Polyhedra_Library::Box_Helpers::extract_interval_constraint(), Parma_Polyhedra_Library::Octagonal_Shape< T >::extract_octagonal_difference(), and Parma_Polyhedra_Library::MIP_Problem::parse_constraints().
|
inline |
Returns true
if (*this)[i] is zero, for each i in [start, end).
Definition at line 122 of file Expression_Hide_Last_inlines.hh.
|
inline |
Returns true
if all coefficients in [start,end), except those corresponding to variables in vars
, are zero.
Definition at line 169 of file Expression_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::PIP_Problem::solve().
|
inline |
Returns the coefficient of v
in *this
.
Definition at line 69 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Variable::space_dimension().
|
inline |
Iterator pointing after the last nonzero variable coefficient.
Definition at line 51 of file Expression_Hide_Last_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::Constraint::operator<<(), Parma_Polyhedra_Library::MIP_Problem::process_pending_constraints(), Parma_Polyhedra_Library::Box< ITV >::relation_with(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
|
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 160 of file Expression_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::BD_Shape< T >::extract_bounded_difference(), Parma_Polyhedra_Library::Box_Helpers::extract_interval_constraint(), Parma_Polyhedra_Library::Octagonal_Shape< T >::extract_octagonal_difference(), and Parma_Polyhedra_Library::MIP_Problem::parse_constraints().
|
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 138 of file Expression_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::Polyhedron::contains_integer_point(), and Parma_Polyhedra_Library::Polyhedron::drop_some_non_integer_points().
|
inline |
Returns the i
-th coefficient.
Definition at line 108 of file Expression_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::BD_Shape< T >::BD_Shape(), and Parma_Polyhedra_Library::BD_Shape< T >::extract_bounded_difference().
|
inline |
Returns the coefficient of variable v
.
Definition at line 115 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Variable::space_dimension().
|
inline |
Sets r
to a copy of the row as adapted by *this
.
Definition at line 212 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Dense_Row::resize(), and Parma_Polyhedra_Library::Dense_Row::size().
|
inline |
Sets r
to a copy of the row as adapted by *this
.
Definition at line 222 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Sparse_Row::resize(), and Parma_Polyhedra_Library::Sparse_Row::size().
|
inline |
Removes from set x
all the indexes of nonzero elements in *this
.
Definition at line 178 of file Expression_Hide_Last_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 234 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Variable::space_dimension().
|
inline |
Returns true
if *this
is equal to y
.
Note that (*this == y)
has a completely different meaning.
Definition at line 90 of file Expression_Hide_Last_inlines.hh.
|
inline |
Returns true
if (*this)[i]
is equal to y[i]
, for each i in [start,end).
Definition at line 190 of file Expression_Hide_Last_inlines.hh.
|
inline |
Returns true
if (*this)[i]*c1
is equal to y[i]*c2
, for each i in [start,end).
Definition at line 201 of file Expression_Hide_Last_inlines.hh.
|
inline |
Returns true
if and only if *this
is zero.
Definition at line 76 of file Expression_Hide_Last_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_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::Box< ITV >::propagate_constraint_no_check().
|
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_Hide_Last_inlines.hh.
|
inline |
Iterator pointing to the first nonzero variable coefficient of a variable bigger than or equal to v
.
Definition at line 62 of file Expression_Hide_Last_inlines.hh.
References Parma_Polyhedra_Library::Variable::space_dimension().
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::Box< ITV >::propagate_constraint_no_check().
|
inline |
Returns the number of zero coefficient in [start, end).
Definition at line 130 of file Expression_Hide_Last_inlines.hh.
|
inline |
Returns the dimension of the vector space enclosing *this
.
Definition at line 40 of file Expression_Hide_Last_inlines.hh.
Referenced by Parma_Polyhedra_Library::Constraint::space_dimension(), Parma_Polyhedra_Library::Grid_Generator::space_dimension(), Parma_Polyhedra_Library::Generator::space_dimension(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
|
private |
Whether or not the last coefficient is hidden.
Definition at line 160 of file Expression_Hide_Last_defs.hh.