24 #include "ppl-config.h"
36 cs_end = cs.
end(); i != cs_end; ++i) {
46 PPL_ASSERT_HEAVY(
OK());
54 "the space dimension of cgs "
55 "exceeds the maximum allowed "
65 "C_Polyhedron(cgs, recycle)",
66 "the space dimension of cgs "
67 "exceeds the maximum allowed "
78 "the space dimension of grid "
79 "exceeds the maximum allowed "
89 throw_dimension_incompatible(
"poly_hull_assign_if_exact(y)",
"y", y);
93 #if USE_BHZ09 // [BagnaraHZ09]
94 return BHZ09_poly_hull_assign_if_exact(y);
95 #elif USE_BFT00 // [BemporadFT00TR].
96 return BFT00_poly_hull_assign_if_exact(y);
97 #else // Old implementation.
98 return PPL::poly_hull_assign_if_exact(*
this, y);
An iterator over a system of constraints.
A linear equality or inequality.
C_Polyhedron(dimension_type num_dimensions=0, Degenerate_Element kind=UNIVERSE)
Builds either the universe or the empty C polyhedron.
void add_congruences(const Congruence_System &cgs)
Adds a copy of the congruences in cgs to *this, if all the congruences can be exactly represented by ...
void add_constraint(const Constraint &c)
Adds a copy of constraint c to the system of constraints of *this (without minimizing the result)...
const Constraint_System & constraints() const
Returns the system of constraints.
const_iterator begin() const
Returns the const_iterator pointing to the first constraint, if *this is not empty; otherwise...
void positive_time_elapse_assign(const Polyhedron &y)
Assigns to *this (the best approximation of) the result of computing the positive time-elapse between...
bool is_strict_inequality() const
Returns true if and only if *this is a strict inequality constraint.
Complexity_Class
Complexity pseudo-classes.
The base class for convex polyhedra.
dimension_type check_space_dimension_overflow(const dimension_type dim, const dimension_type max, const char *domain, const char *method, const char *reason)
const_iterator end() const
Returns the past-the-end const_iterator.
A not necessarily closed convex polyhedron.
A closed convex polyhedron.
void positive_time_elapse_assign(const Polyhedron &y)
Assigns to *this the smallest C polyhedron containing the result of computing the positive time-elaps...
The universe element, i.e., the whole vector space.
void add_constraints(const Constraint_System &cs)
Adds a copy of the constraints in cs to the system of constraints of *this (without minimizing the re...
Constraint_System constraints() const
Returns a system of equality constraints satisfied by *this with the same affine dimension as *this...
The entire library is confined to this namespace.
bool OK(bool check_not_empty=false) const
Checks if all the invariants are satisfied.
bool poly_hull_assign_if_exact(const C_Polyhedron &y)
If the poly-hull of *this and y is exact it is assigned to *this and true is returned, otherwise false is returned.
expr_type expression() const
Partial read access to the (adapted) internal expression.
dimension_type space_dimension() const
Returns the dimension of the vector space enclosing *this.