PPL
1.2
|
A wrapper for PPL pointsets, providing them with a determinate constraint system interface, as defined in [Bag98]. More...
#include <ppl.hh>
Public Member Functions | |
Constructors and Destructor | |
Determinate (const PSET &pset) | |
Constructs a COW-wrapped object corresponding to the pointset pset . | |
Determinate (const Constraint_System &cs) | |
Constructs a COW-wrapped object corresponding to the pointset defined by cs . | |
Determinate (const Congruence_System &cgs) | |
Constructs a COW-wrapped object corresponding to the pointset defined by cgs . | |
Determinate (const Determinate &y) | |
Copy constructor. | |
~Determinate () | |
Destructor. | |
Member Functions that May Modify the Domain Element | |
void | upper_bound_assign (const Determinate &y) |
Assigns to *this the upper bound of *this and y . | |
void | meet_assign (const Determinate &y) |
Assigns to *this the meet of *this and y . | |
void | weakening_assign (const Determinate &y) |
Assigns to *this the result of weakening *this with y . | |
void | concatenate_assign (const Determinate &y) |
Assigns to *this the concatenation of *this and y , taken in this order. | |
PSET & | pointset () |
Returns a reference to the embedded element. | |
void | mutate () |
Determinate & | operator= (const Determinate &y) |
Assignment operator. | |
void | m_swap (Determinate &y) |
Swaps *this with y . | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename PSET > | |
void | swap (Determinate< PSET > &x, Determinate< PSET > &y) |
Swaps x with y . More... | |
template<typename PSET > | |
bool | operator== (const Determinate< PSET > &x, const Determinate< PSET > &y) |
Returns true if and only if x and y are the same COW-wrapped pointset. | |
template<typename PSET > | |
bool | operator!= (const Determinate< PSET > &x, const Determinate< PSET > &y) |
Returns true if and only if x and y are different COW-wrapped pointsets. | |
template<typename PSET > | |
std::ostream & | operator<< (std::ostream &, const Determinate< PSET > &) |
Output operator. More... | |
template<typename PSET > | |
std::ostream & | operator<< (std::ostream &s, const Determinate< PSET > &x) |
template<typename PSET > | |
bool | operator== (const Determinate< PSET > &x, const Determinate< PSET > &y) |
template<typename PSET > | |
bool | operator!= (const Determinate< PSET > &x, const Determinate< PSET > &y) |
template<typename PSET > | |
void | swap (Determinate< PSET > &x, Determinate< PSET > &y) |
Member Functions that Do Not Modify the Domain Element | |
const PSET & | pointset () const |
Returns a const reference to the embedded pointset. | |
bool | is_top () const |
Returns true if and only if *this embeds the universe element PSET . | |
bool | is_bottom () const |
Returns true if and only if *this embeds the empty element of PSET . | |
bool | definitely_entails (const Determinate &y) const |
Returns true if and only if *this entails y . | |
bool | is_definitely_equivalent_to (const Determinate &y) const |
Returns true if and only if *this and y are definitely equivalent. | |
memory_size_type | total_memory_in_bytes () const |
Returns a lower bound to the total size in bytes of the memory occupied by *this . | |
memory_size_type | external_memory_in_bytes () const |
Returns a lower bound to the size in bytes of the memory managed by *this . | |
bool | OK () const |
Checks if all the invariants are satisfied. | |
static bool | has_nontrivial_weakening () |
A wrapper for PPL pointsets, providing them with a determinate constraint system interface, as defined in [Bag98].
The implementation uses a copy-on-write optimization, making the class suitable for constructions, like the finite powerset and ask-and-tell of [Bag98], that are likely to perform many copies.
|
inlinestatic |
Returns true
if and only if this domain has a nontrivial weakening operator.
|
related |
Swaps x
with y
.
|
related |
Output operator.
|
related |
|
related |
|
related |
|
related |