24 #include "ppl-config.h"
35 PPL_ASSERT_HEAVY(
OK());
42 "NNC_Polyhedron(cgs)",
43 "the space dimension of cgs "
44 "exceeds the maximum allowed "
48 PPL_ASSERT_HEAVY(
OK());
55 "NNC_Polyhedron(cgs, recycle)",
56 "the space dimension of cgs "
57 "exceeds the maximum allowed "
61 PPL_ASSERT_HEAVY(
OK());
68 "NNC_Polyhedron(grid)",
69 "the space dimension of grid "
70 "exceeds the maximum allowed "
79 #if USE_BHZ09 // [BagnaraHZ09]
82 throw_dimension_incompatible(
"poly_hull_assign_if_exact(y)",
"y", y);
84 return BHZ09_poly_hull_assign_if_exact(y);
85 #else // Old implementation.
86 return PPL::poly_hull_assign_if_exact(*
this, y);
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 ...
const Constraint_System & constraints() const
Returns the system of constraints.
Complexity_Class
Complexity pseudo-classes.
The base class for convex polyhedra.
NNC_Polyhedron(dimension_type num_dimensions=0, Degenerate_Element kind=UNIVERSE)
Builds either the universe or the empty NNC polyhedron.
dimension_type check_space_dimension_overflow(const dimension_type dim, const dimension_type max, const char *domain, const char *method, const char *reason)
A not necessarily closed convex polyhedron.
A closed convex polyhedron.
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 poly_hull_assign_if_exact(const NNC_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.
bool OK(bool check_not_empty=false) const
Checks if all the invariants are satisfied.
dimension_type space_dimension() const
Returns the dimension of the vector space enclosing *this.