24 #ifndef PPL_Poly_Con_Relation_defs_hh
25 #define PPL_Poly_Con_Relation_defs_hh 1
37 bool operator==(
const Poly_Con_Relation& x,
const Poly_Con_Relation& y);
41 bool operator!=(
const Poly_Con_Relation& x,
const Poly_Con_Relation& y);
45 Poly_Con_Relation operator&&(
const Poly_Con_Relation& x,
46 const Poly_Con_Relation& y);
54 Poly_Con_Relation
operator-(
const Poly_Con_Relation& x,
55 const Poly_Con_Relation& y);
57 namespace IO_Operators {
61 std::ostream&
operator<<(std::ostream& s,
const Poly_Con_Relation& r);
98 static bool implies(flags_t x, flags_t y);
119 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
166 #endif // !defined(PPL_Poly_Con_Relation_defs_hh)
bool operator!=(const Box< ITV > &x, const Box< ITV > &y)
static Poly_Con_Relation is_disjoint()
The polyhedron and the set of points satisfying the constraint are disjoint.
bool OK() const
Checks if all the invariants are satisfied.
static bool implies(flags_t x, flags_t y)
True if and only if the conjunction x implies the conjunction y.
std::ostream & operator<<(std::ostream &s, const Ask_Tell< D > &x)
static Poly_Con_Relation is_included()
The polyhedron is included in the set of points satisfying the constraint.
static Poly_Con_Relation saturates()
The polyhedron is included in the set of points saturating the constraint.
flags_t flags
This holds the current bitset.
Poly_Con_Relation(flags_t mask)
Construct from a bit-mask.
static const flags_t IS_INCLUDED
friend Poly_Con_Relation operator-(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
flags_t get_flags() const
Access the internal flags: this is needed for some language interfaces.
#define PPL_OUTPUT_DECLARATIONS
friend bool operator!=(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
static const flags_t NOTHING
static const flags_t IS_DISJOINT
static const flags_t SATURATES
static const flags_t STRICTLY_INTERSECTS
unsigned int flags_t
Poly_Con_Relation is implemented by means of a finite bitset.
The entire library is confined to this namespace.
friend Poly_Con_Relation operator&&(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
bool operator==(const Box< ITV > &x, const Box< ITV > &y)
friend bool operator==(const Poly_Con_Relation &x, const Poly_Con_Relation &y)
Enable_If< Is_Singleton< T >::value, Interval< B, Info > >::type operator-(const Interval< B, Info > &x, const T &y)
static const flags_t EVERYTHING
All assertions together.
static Poly_Con_Relation nothing()
The assertion that says nothing.
static Poly_Con_Relation strictly_intersects()
The polyhedron intersects the set of points satisfying the constraint, but it is not included in it...
The relation between a polyhedron and a constraint.