PPL
1.2
|
Implementation related data and functions. More...
Namespaces | |
BD_Shapes | |
Boxes | |
Octagonal_Shapes | |
Pointset_Powersets | |
Termination | |
Watchdog | |
Classes | |
class | Doubly_Linked_Object |
A (base) class for doubly linked objects. More... | |
class | EList |
A simple kind of embedded list (i.e., a doubly linked objects where the links are embedded in the objects themselves). More... | |
class | EList_Iterator |
A class providing iterators for embedded lists. More... | |
struct | Indirect_Sort_Compare |
struct | Indirect_Swapper |
struct | Indirect_Swapper2 |
struct | Indirect_Unique_Compare |
class | Ptr_Iterator |
A class to define STL const and non-const iterators from pointer types. More... | |
struct | Wrap_Dim_Translations |
Typedefs | |
typedef std::vector< Wrap_Dim_Translations > | Wrap_Translations |
Functions | |
unsigned int | first_one (unsigned int u) |
Assuming u is nonzero, returns the index of the first set bit in u . More... | |
unsigned int | first_one (unsigned long ul) |
Assuming ul is nonzero, returns the index of the first set bit in ul . More... | |
unsigned int | first_one (unsigned long long ull) |
Assuming ull is nonzero, returns the index of the first set bit in ull . More... | |
unsigned int | last_one (unsigned int u) |
Assuming u is nonzero, returns the index of the last set bit in u . More... | |
unsigned int | last_one (unsigned long ul) |
Assuming ul is nonzero, returns the index of the last set bit in ul . More... | |
unsigned int | last_one (unsigned long long ull) |
Assuming ull is nonzero, returns the index of the last set bit in ull . More... | |
dimension_type | num_constraints (const Constraint_System &cs) |
Helper returning number of constraints in system. More... | |
template<typename T > | |
bool | operator== (const EList_Iterator< T > &x, const EList_Iterator< T > &y) |
Returns true if and only if x and y are equal. More... | |
template<typename T > | |
bool | operator!= (const EList_Iterator< T > &x, const EList_Iterator< T > &y) |
Returns true if and only if x and y are different. More... | |
void | initialize_aux () |
void | finalize_aux () |
template<typename P , typename Q > | |
bool | operator== (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P , typename Q > | |
bool | operator!= (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P , typename Q > | |
bool | operator< (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P , typename Q > | |
bool | operator<= (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P , typename Q > | |
bool | operator> (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P , typename Q > | |
bool | operator>= (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P , typename Q > | |
Ptr_Iterator< P >::difference_type | operator- (const Ptr_Iterator< P > &x, const Ptr_Iterator< Q > &y) |
template<typename P > | |
Ptr_Iterator< P > | operator+ (typename Ptr_Iterator< P >::difference_type m, const Ptr_Iterator< P > &y) |
template<typename Sort_Comparer , typename Unique_Comparer , typename Swapper > | |
Sort_Comparer::size_type | indirect_sort_and_unique (typename Sort_Comparer::size_type num_elems, Sort_Comparer sort_cmp, Unique_Comparer unique_cmp, Swapper indirect_swap) |
template<typename Iter > | |
Iter | swapping_unique (Iter first, Iter last) |
template<typename PSET > | |
void | wrap_assign_ind (PSET &pointset, Variables_Set &vars, Wrap_Translations::const_iterator first, Wrap_Translations::const_iterator end, Bounded_Integer_Type_Width w, Coefficient_traits::const_reference min_value, Coefficient_traits::const_reference max_value, const Constraint_System &cs, Coefficient &tmp1, Coefficient &tmp2) |
template<typename PSET > | |
void | wrap_assign_col (PSET &dest, const PSET &src, const Variables_Set &vars, Wrap_Translations::const_iterator first, Wrap_Translations::const_iterator end, Bounded_Integer_Type_Width w, Coefficient_traits::const_reference min_value, Coefficient_traits::const_reference max_value, const Constraint_System *cs_p, Coefficient &tmp) |
template<typename PSET > | |
void | wrap_assign (PSET &pointset, const Variables_Set &vars, const Bounded_Integer_Type_Width w, const Bounded_Integer_Type_Representation r, const Bounded_Integer_Type_Overflow o, const Constraint_System *cs_p, const unsigned complexity_threshold, const bool wrap_individually, const char *class_name) |
Implementation related data and functions.
typedef std::vector<Wrap_Dim_Translations> Parma_Polyhedra_Library::Implementation::Wrap_Translations |
Definition at line 48 of file wrap_assign.hh.
void Parma_Polyhedra_Library::Implementation::finalize_aux | ( | ) |
Definition at line 236 of file Init.cc.
Referenced by Parma_Polyhedra_Library::finalize().
|
inline |
Assuming u
is nonzero, returns the index of the first set bit in u
.
Definition at line 168 of file Bit_Row_inlines.hh.
References Parma_Polyhedra_Library::ctz().
Referenced by Parma_Polyhedra_Library::Bit_Row::first(), and Parma_Polyhedra_Library::Bit_Row::next().
|
inline |
Assuming ul
is nonzero, returns the index of the first set bit in ul
.
Definition at line 177 of file Bit_Row_inlines.hh.
References Parma_Polyhedra_Library::ctz().
|
inline |
Assuming ull
is nonzero, returns the index of the first set bit in ull
.
Definition at line 186 of file Bit_Row_inlines.hh.
References Parma_Polyhedra_Library::ctz().
Sort_Comparer::size_type Parma_Polyhedra_Library::Implementation::indirect_sort_and_unique | ( | typename Sort_Comparer::size_type | num_elems, |
Sort_Comparer | sort_cmp, | ||
Unique_Comparer | unique_cmp, | ||
Swapper | indirect_swap | ||
) |
Definition at line 106 of file swapping_sort_templates.hh.
Referenced by Parma_Polyhedra_Library::Linear_System< Row >::sort_and_remove_with_sat(), Parma_Polyhedra_Library::Bit_Matrix::sort_rows(), and Parma_Polyhedra_Library::Linear_System< Row >::sort_rows().
void Parma_Polyhedra_Library::Implementation::initialize_aux | ( | ) |
Definition at line 229 of file Init.cc.
Referenced by Parma_Polyhedra_Library::initialize().
|
inline |
Assuming u
is nonzero, returns the index of the last set bit in u
.
Definition at line 194 of file Bit_Row_inlines.hh.
References Parma_Polyhedra_Library::clz(), and sizeof_to_bits.
Referenced by Parma_Polyhedra_Library::Bit_Row::last(), and Parma_Polyhedra_Library::Bit_Row::prev().
|
inline |
Assuming ul
is nonzero, returns the index of the last set bit in ul
.
Definition at line 204 of file Bit_Row_inlines.hh.
References Parma_Polyhedra_Library::clz(), and sizeof_to_bits.
|
inline |
Assuming ull
is nonzero, returns the index of the last set bit in ull
.
Definition at line 214 of file Bit_Row_inlines.hh.
References Parma_Polyhedra_Library::clz(), and sizeof_to_bits.
|
related |
Helper returning number of constraints in system.
Referenced by Parma_Polyhedra_Library::Implementation::Termination::all_affine_quasi_ranking_functions_MS(), Parma_Polyhedra_Library::Implementation::Termination::all_affine_ranking_functions_MS(), Parma_Polyhedra_Library::Termination_Helpers::all_affine_ranking_functions_PR(), Parma_Polyhedra_Library::Termination_Helpers::all_affine_ranking_functions_PR_original(), Parma_Polyhedra_Library::BHRZ03_Certificate::compare(), Parma_Polyhedra_Library::H79_Certificate::compare(), 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::BHRZ03_Certificate::OK(), Parma_Polyhedra_Library::PIP_Decision_Node::OK(), Parma_Polyhedra_Library::Termination_Helpers::one_affine_ranking_function_PR(), Parma_Polyhedra_Library::Termination_Helpers::one_affine_ranking_function_PR_original(), Parma_Polyhedra_Library::Box< ITV >::propagate_constraints_no_check(), Parma_Polyhedra_Library::PIP_Decision_Node::solve(), and Parma_Polyhedra_Library::Implementation::Termination::termination_test_PR().
|
inline |
Definition at line 141 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Returns true
if and only if x
and y
are different.
Definition at line 101 of file EList_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::EList_Iterator< T >::ptr.
|
inline |
Definition at line 177 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Definition at line 171 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Definition at line 147 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Definition at line 153 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Definition at line 135 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Returns true
if and only if x
and y
are equal.
Definition at line 95 of file EList_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::EList_Iterator< T >::ptr.
|
inline |
Definition at line 159 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
|
inline |
Definition at line 165 of file Ptr_Iterator_inlines.hh.
References Parma_Polyhedra_Library::Implementation::Ptr_Iterator< P >::base().
Iter Parma_Polyhedra_Library::Implementation::swapping_unique | ( | Iter | first, |
Iter | last | ||
) |
Definition at line 176 of file swapping_sort_templates.hh.
void Parma_Polyhedra_Library::Implementation::wrap_assign | ( | PSET & | pointset, |
const Variables_Set & | vars, | ||
const Bounded_Integer_Type_Width | w, | ||
const Bounded_Integer_Type_Representation | r, | ||
const Bounded_Integer_Type_Overflow | o, | ||
const Constraint_System * | cs_p, | ||
const unsigned | complexity_threshold, | ||
const bool | wrap_individually, | ||
const char * | class_name | ||
) |
Definition at line 152 of file wrap_assign.hh.
References Parma_Polyhedra_Library::assign_r(), Parma_Polyhedra_Library::Constraint_System::begin(), c, Parma_Polyhedra_Library::Constraint::coefficient(), Parma_Polyhedra_Library::Coefficient_one(), Parma_Polyhedra_Library::EMPTY, Parma_Polyhedra_Library::Constraint_System::end(), Parma_Polyhedra_Library::Variables_Set::insert(), Parma_Polyhedra_Library::Constraint_System::insert(), Parma_Polyhedra_Library::mul_2exp_assign(), Parma_Polyhedra_Library::neg_assign(), Parma_Polyhedra_Library::OVERFLOW_IMPOSSIBLE, Parma_Polyhedra_Library::OVERFLOW_UNDEFINED, PPL_DIRTY_TEMP_COEFFICIENT, PPL_UNINITIALIZED, Parma_Polyhedra_Library::result_overflow(), Parma_Polyhedra_Library::ROUND_DOWN, Parma_Polyhedra_Library::ROUND_IGNORE, Parma_Polyhedra_Library::SIGNED_2_COMPLEMENT, Parma_Polyhedra_Library::Variables_Set::space_dimension(), Parma_Polyhedra_Library::Constraint_System::space_dimension(), Parma_Polyhedra_Library::UNSIGNED, wrap_assign_col(), and wrap_assign_ind().
Referenced by Parma_Polyhedra_Library::Box< ITV >::wrap_assign(), Parma_Polyhedra_Library::Octagonal_Shape< T >::wrap_assign(), Parma_Polyhedra_Library::BD_Shape< T >::wrap_assign(), and Parma_Polyhedra_Library::Polyhedron::wrap_assign().
void Parma_Polyhedra_Library::Implementation::wrap_assign_col | ( | PSET & | dest, |
const PSET & | src, | ||
const Variables_Set & | vars, | ||
Wrap_Translations::const_iterator | first, | ||
Wrap_Translations::const_iterator | end, | ||
Bounded_Integer_Type_Width | w, | ||
Coefficient_traits::const_reference | min_value, | ||
Coefficient_traits::const_reference | max_value, | ||
const Constraint_System * | cs_p, | ||
Coefficient & | tmp | ||
) |
Definition at line 104 of file wrap_assign.hh.
References Parma_Polyhedra_Library::Implementation::Wrap_Dim_Translations::first_quadrant, Parma_Polyhedra_Library::Implementation::Wrap_Dim_Translations::last_quadrant, Parma_Polyhedra_Library::mul_2exp_assign(), PPL_DIRTY_TEMP_COEFFICIENT, and Parma_Polyhedra_Library::Implementation::Wrap_Dim_Translations::var.
Referenced by wrap_assign().
void Parma_Polyhedra_Library::Implementation::wrap_assign_ind | ( | PSET & | pointset, |
Variables_Set & | vars, | ||
Wrap_Translations::const_iterator | first, | ||
Wrap_Translations::const_iterator | end, | ||
Bounded_Integer_Type_Width | w, | ||
Coefficient_traits::const_reference | min_value, | ||
Coefficient_traits::const_reference | max_value, | ||
const Constraint_System & | cs, | ||
Coefficient & | tmp1, | ||
Coefficient & | tmp2 | ||
) |
Definition at line 52 of file wrap_assign.hh.
References Parma_Polyhedra_Library::Constraint_System::begin(), Parma_Polyhedra_Library::EMPTY, Parma_Polyhedra_Library::Constraint_System::end(), Parma_Polyhedra_Library::Implementation::Wrap_Dim_Translations::first_quadrant, Parma_Polyhedra_Library::Variable::id(), Parma_Polyhedra_Library::Implementation::Wrap_Dim_Translations::last_quadrant, Parma_Polyhedra_Library::mul_2exp_assign(), and Parma_Polyhedra_Library::Implementation::Wrap_Dim_Translations::var.
Referenced by wrap_assign().