PPL
1.2
|
The relation between a polyhedron and a generator. More...
#include <Poly_Gen_Relation_defs.hh>
Public Member Functions | |
flags_t | get_flags () const |
Access the internal flags: this is needed for some language interfaces. More... | |
void | ascii_dump () const |
Writes to std::cerr an ASCII representation of *this . More... | |
void | ascii_dump (std::ostream &s) const |
Writes to s an ASCII representation of *this . More... | |
void | print () const |
Prints *this to std::cerr using operator<< . More... | |
bool | implies (const Poly_Gen_Relation &y) const |
True if and only if *this implies y . More... | |
bool | OK () const |
Checks if all the invariants are satisfied. More... | |
Static Public Member Functions | |
static Poly_Gen_Relation | nothing () |
The assertion that says nothing. More... | |
static Poly_Gen_Relation | subsumes () |
Adding the generator would not change the polyhedron. More... | |
Private Types | |
typedef unsigned int | flags_t |
Poly_Gen_Relation is implemented by means of a finite bitset. More... | |
Private Member Functions | |
Poly_Gen_Relation (flags_t mask) | |
Construct from a bit-mask. More... | |
Static Private Member Functions | |
static bool | implies (flags_t x, flags_t y) |
True if and only if the conjunction x implies the conjunction y . More... | |
Private Attributes | |
flags_t | flags |
This holds the current bitset. More... | |
Static Private Attributes | |
static const flags_t | EVERYTHING = SUBSUMES |
All assertions together. More... | |
Bit-masks for the individual assertions | |
static const flags_t | NOTHING = 0U |
static const flags_t | SUBSUMES = 1U << 0 |
Friends | |
bool | operator== (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
bool | operator!= (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
Poly_Gen_Relation | operator&& (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
Poly_Gen_Relation | operator- (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
std::ostream & | Parma_Polyhedra_Library::IO_Operators::operator<< (std::ostream &s, const Poly_Gen_Relation &r) |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &s, const Poly_Gen_Relation &r) |
bool | operator== (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
True if and only if x and y are logically equivalent. More... | |
bool | operator!= (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
True if and only if x and y are not logically equivalent. More... | |
Poly_Gen_Relation | operator&& (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
Yields the logical conjunction of x and y . More... | |
Poly_Gen_Relation | operator- (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
Yields the assertion with all the conjuncts of x that are not in y . More... | |
std::ostream & | operator<< (std::ostream &s, const Poly_Gen_Relation &r) |
Output operator. More... | |
bool | operator== (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
bool | operator!= (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
Poly_Gen_Relation | operator&& (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
Poly_Gen_Relation | operator- (const Poly_Gen_Relation &x, const Poly_Gen_Relation &y) |
The relation between a polyhedron and a generator.
This class implements conjunctions of assertions on the relation between a polyhedron and a generator.
Definition at line 73 of file Poly_Gen_Relation_defs.hh.
|
private |
Poly_Gen_Relation is implemented by means of a finite bitset.
Definition at line 76 of file Poly_Gen_Relation_defs.hh.
|
inlineprivate |
Construct from a bit-mask.
Definition at line 30 of file Poly_Gen_Relation_inlines.hh.
Referenced by nothing(), and subsumes().
void Parma_Polyhedra_Library::Poly_Gen_Relation::ascii_dump | ( | ) | const |
Writes to std::cerr
an ASCII representation of *this
.
void Parma_Polyhedra_Library::Poly_Gen_Relation::ascii_dump | ( | std::ostream & | s | ) | const |
Writes to s
an ASCII representation of *this
.
Definition at line 33 of file Poly_Gen_Relation.cc.
References flags, implies(), NOTHING, and SUBSUMES.
|
inline |
Access the internal flags: this is needed for some language interfaces.
Definition at line 35 of file Poly_Gen_Relation_inlines.hh.
References flags.
|
inlinestaticprivate |
True if and only if the conjunction x
implies the conjunction y
.
Definition at line 50 of file Poly_Gen_Relation_inlines.hh.
Referenced by ascii_dump(), implies(), and Parma_Polyhedra_Library::Pointset_Powerset< PSET >::relation_with().
|
inline |
True if and only if *this
implies y
.
Definition at line 55 of file Poly_Gen_Relation_inlines.hh.
References flags, and implies().
|
inlinestatic |
The assertion that says nothing.
Definition at line 40 of file Poly_Gen_Relation_inlines.hh.
References NOTHING, and Poly_Gen_Relation().
Referenced by Parma_Polyhedra_Library::Polyhedron::BFT00_poly_hull_assign_if_exact(), Parma_Polyhedra_Library::Polyhedron::BHRZ03_evolving_points(), Parma_Polyhedra_Library::Polyhedron::BHRZ03_evolving_rays(), Parma_Polyhedra_Library::Pointset_Powerset< PSET >::relation_with(), Parma_Polyhedra_Library::Box< ITV >::relation_with(), Parma_Polyhedra_Library::Polyhedron::relation_with(), Parma_Polyhedra_Library::Grid::relation_with(), Parma_Polyhedra_Library::Octagonal_Shape< T >::relation_with(), Parma_Polyhedra_Library::Partially_Reduced_Product< D1, D2, R >::relation_with(), and Parma_Polyhedra_Library::BD_Shape< T >::relation_with().
bool Parma_Polyhedra_Library::Poly_Gen_Relation::OK | ( | ) | const |
Checks if all the invariants are satisfied.
Definition at line 64 of file Poly_Gen_Relation.cc.
void Parma_Polyhedra_Library::Poly_Gen_Relation::print | ( | ) | const |
Prints *this
to std::cerr
using operator<<
.
|
inlinestatic |
Adding the generator would not change the polyhedron.
Definition at line 45 of file Poly_Gen_Relation_inlines.hh.
References Poly_Gen_Relation(), and SUBSUMES.
Referenced by Parma_Polyhedra_Library::Polyhedron::BFT00_poly_hull_assign_if_exact(), Parma_Polyhedra_Library::Polyhedron::BHZ09_C_poly_hull_assign_if_exact(), Parma_Polyhedra_Library::Polyhedron::BHZ09_NNC_poly_hull_assign_if_exact(), Parma_Polyhedra_Library::Pointset_Powerset< PSET >::relation_with(), Parma_Polyhedra_Library::Box< ITV >::relation_with(), Parma_Polyhedra_Library::Polyhedron::relation_with(), Parma_Polyhedra_Library::Grid::relation_with(), Parma_Polyhedra_Library::Octagonal_Shape< T >::relation_with(), Parma_Polyhedra_Library::Partially_Reduced_Product< D1, D2, R >::relation_with(), and Parma_Polyhedra_Library::BD_Shape< T >::relation_with().
|
related |
True if and only if x
and y
are not logically equivalent.
|
related |
Definition at line 67 of file Poly_Gen_Relation_inlines.hh.
References flags.
|
friend |
|
related |
Yields the logical conjunction of x
and y
.
|
related |
Definition at line 73 of file Poly_Gen_Relation_inlines.hh.
References flags.
|
friend |
|
related |
Yields the assertion with all the conjuncts of x
that are not in y
.
|
related |
Definition at line 79 of file Poly_Gen_Relation_inlines.hh.
References flags.
|
friend |
|
related |
Definition at line 58 of file Poly_Gen_Relation.cc.
|
related |
Output operator.
|
related |
True if and only if x
and y
are logically equivalent.
|
related |
Definition at line 61 of file Poly_Gen_Relation_inlines.hh.
References flags.
|
friend |
|
friend |
All assertions together.
Definition at line 86 of file Poly_Gen_Relation_defs.hh.
|
private |
This holds the current bitset.
Definition at line 89 of file Poly_Gen_Relation_defs.hh.
Referenced by ascii_dump(), get_flags(), implies(), operator!=(), operator&&(), operator-(), and operator==().
|
staticprivate |
Definition at line 80 of file Poly_Gen_Relation_defs.hh.
Referenced by ascii_dump(), and nothing().
|
staticprivate |
Definition at line 81 of file Poly_Gen_Relation_defs.hh.
Referenced by ascii_dump(), and subsumes().