Inherits Parma_Polyhedra_Library::Powerset< Parma_Polyhedra_Library::Determinate< PH > >.
Public Member Functions | |
Constructors | |
| Polyhedra_Powerset (dimension_type num_dimensions=0, Polyhedron::Degenerate_Kind kind=Polyhedron::UNIVERSE) | |
| Builds a universe (top) or empty (bottom) Polyhedra_Powerset. | |
| Polyhedra_Powerset (const Polyhedra_Powerset &y) | |
| Ordinary copy-constructor. | |
| Polyhedra_Powerset (const PH &ph) | |
If ph is nonempty, builds a powerset containing only ph. Builds the empty powerset otherwise. | |
| template<typename QH> | |
| Polyhedra_Powerset (const Polyhedra_Powerset< QH > &y) | |
| Copy-constructor allowing a source powerset with elements of a different polyhedron kind. | |
| Polyhedra_Powerset (const Constraint_System &cs) | |
Member Functions that Do Not Modify the Powerset of Polyhedra | |
| dimension_type | space_dimension () const |
Returns the dimension of the vector space enclosing *this. | |
| bool | geometrically_covers (const Polyhedra_Powerset &y) const |
Returns true if and only if *this geometrically covers y, i.e., if any point (in some element) of y is also a point (of some element) of *this. | |
| bool | geometrically_equals (const Polyhedra_Powerset &y) const |
Returns true if and only if *this is geometrically equal to y, i.e., if (the elements of) *this and y contain the same set of points. | |
| 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. | |
Space Dimension Preserving Member Functions that May Modify the Powerset of Polyhedra | |
| void | add_constraint (const Constraint &c) |
Intersects *this with constraint c. | |
| bool | add_constraint_and_minimize (const Constraint &c) |
Intersects *this with the constraint c, minimizing the result. | |
| void | add_constraints (const Constraint_System &cs) |
Intersects *this with the constraints in cs. | |
| bool | add_constraints_and_minimize (const Constraint_System &cs) |
Intersects *this with the constraints in cs, minimizing the result. | |
| void | pairwise_reduce () |
Assign to *this the result of (recursively) merging together the pairs of polyhedra whose poly-hull is the same as their set-theoretical union. | |
| template<typename Widening> | |
| void | BGP99_extrapolation_assign (const Polyhedra_Powerset &y, Widening wf, unsigned max_disjuncts) |
Assigns to *this the result of applying the BGP99 extrapolation operator to *this and y, using the widening function wf and the cardinality threshold max_disjuncts. | |
| template<typename Cert, typename Widening> | |
| void | BHZ03_widening_assign (const Polyhedra_Powerset &y, Widening wf) |
Assigns to *this the result of computing the BHZ03-widening between *this and y, using the widening function wf certified by the convergence certificate Cert. | |
| template<typename Widening> | |
| void | BHZ03_widening_assign (const Polyhedra_Powerset &y, Widening wf) |
An instance of the BHZ03 framework using the widening function wf certified by BHRZ03_Certificate. | |
Member Functions that May Modify the Dimension of the Vector Space | |
| Polyhedra_Powerset & | operator= (const Polyhedra_Powerset &y) |
The assignment operator (*this and y can be dimension-incompatible). | |
| template<typename QH> | |
| Polyhedra_Powerset & | operator= (const Polyhedra_Powerset< QH > &y) |
Assignment operator allowing a source powerset with elements of a different polyhedron kind (*this and y can be dimension-incompatible). | |
| void | swap (Polyhedra_Powerset &y) |
Swaps *this with y. | |
| void | add_space_dimensions_and_embed (dimension_type m) |
Adds m new dimensions to the vector space containing *this and embeds each polyhedron in *this in the new space. | |
| void | add_space_dimensions_and_project (dimension_type m) |
Adds m new dimensions to the vector space containing *this without embedding the polyhedra in *this in the new space. | |
| void | intersection_assign (const Polyhedra_Powerset &y) |
Assigns to *this the intersection of *this and y. | |
| void | poly_difference_assign (const Polyhedra_Powerset &y) |
Assigns to *this the difference of *this and y. | |
| void | concatenate_assign (const Polyhedra_Powerset &y) |
Assigns to *this the concatenation of *this and y. | |
| void | time_elapse_assign (const Polyhedra_Powerset &y) |
Assigns to *this the result of computing the time-elapse between *this and y. | |
| void | remove_space_dimensions (const Variables_Set &to_be_removed) |
| Removes all the specified space dimensions. | |
| void | remove_higher_space_dimensions (dimension_type new_dimension) |
Removes the higher space dimensions so that the resulting space will have dimension new_dimension. | |
| template<typename Partial_Function> | |
| void | map_space_dimensions (const Partial_Function &pfunc) |
| Remaps the dimensions of the vector space according to a partial function. | |
Static Public Member Functions | |
| dimension_type | max_space_dimension () |
| Returns the maximum space dimension a Polyhedra_Powerset<PH> can handle. | |
Related Functions | |
| (Note that these are not member functions.) | |
| Widening_Function< PH > | widen_fun_ref (void(PH::*wm)(const PH &, unsigned *)) |
| Wraps a widening method into a function object. | |
| Limited_Widening_Function< PH > | widen_fun_ref (void(PH::*lwm)(const PH &, const Constraint_System &, unsigned *), const Constraint_System &cs) |
| Wraps a limited widening method into a function object. | |
| std::pair< PH, Polyhedra_Powerset< NNC_Polyhedron > > | linear_partition (const PH &p, const PH &q) |
Partitions q with respect to p. | |
| void | swap (Parma_Polyhedra_Library::Polyhedra_Powerset< PH > &x, Parma_Polyhedra_Library::Polyhedra_Powerset< PH > &y) |
Specializes std::swap. | |
|
||||||||||||||||
|
Builds a universe (top) or empty (bottom) Polyhedra_Powerset.
|
|
||||||||||
|
Creates a Polyhedra_Powerset with a single polyhedron with the same information contents as |
|
||||||||||
|
Returns
|
|
||||||||||
|
Returns
|
|
||||||||||
|
Intersects
|
|
||||||||||
|
Intersects
|
|
||||||||||
|
Intersects
|
|
||||||||||
|
Intersects
|
|
|||||||||
|
Assign to
On exit, for all the pairs |
|
||||||||||||||||||||||||
|
Assigns to
|
|
||||||||||||||||||||
|
Assigns to
|
|
||||||||||
|
Assigns to
The result is obtained by intersecting each polyhedron in |
|
||||||||||
|
Assigns to
The result is obtained by computing the poly-difference of each polyhedron in |
|
||||||||||
|
Assigns to
The result is obtained by computing the pairwise concatenate "concatenation" of each polyhedron in |
|
||||||||||
|
Assigns to
The result is obtained by computing the pairwise time_elapse "time elapse" of each polyhedron in |
|
||||||||||
|
Removes all the specified space dimensions.
|
|
||||||||||
|
Removes the higher space dimensions so that the resulting space will have dimension
|
|
||||||||||||||
|
Remaps the dimensions of the vector space according to a partial function. See also Polyhedron::map_space_dimensions. |
|
||||||||||
|
Wraps a widening method into a function object.
|
|
||||||||||||||||
|
Wraps a limited widening method into a function object.
|
|
||||||||||||||||
|
Partitions
Let
|
1.3.9.1-20041213