|
PPL
1.2
|
Any PPL pointset. More...
#include <Any_Pointset_defs.hh>
Public Member Functions | |
| Any_Pointset () | |
| Default constructor. More... | |
| Any_Pointset (const Any_Pointset &y) | |
| Ordinary copy constructor. More... | |
Member Functions that Do Not Modify the Pointset | |
| virtual dimension_type | space_dimension () const =0 |
Returns the dimension of the vector space enclosing *this. More... | |
| virtual dimension_type | affine_dimension () const =0 |
Returns , if *this is empty; otherwise, returns the affine dimension of *this. More... | |
| virtual Constraint_System | constraints () const =0 |
Returns a system of constraints that *this satisfies. More... | |
| Poly_Con_Relation | relation_with (const Constraint &c) const |
Returns the relations holding between the pointset *this and the constraint c. More... | |
| Poly_Gen_Relation | relation_with (const Generator &g) const |
Returns the relations holding between the pointset *this and the generator g. More... | |
| virtual bool | is_empty () const =0 |
Returns true if and only if *this is an empty pointset. More... | |
| virtual bool | is_universe () const =0 |
Returns true if and only if *this is a universe pointset. More... | |
| virtual bool | is_topologically_closed () const =0 |
Returns true if and only if *this is a topologically closed subset of the vector space. More... | |
| virtual bool | is_discrete () const =0 |
Returns true if and only if *this is discrete. More... | |
| virtual bool | is_bounded () const =0 |
Returns true if and only if *this is a bounded pointset. More... | |
| virtual bool | contains_integer_point () const =0 |
Returns true if and only if *this contains at least one integer point. More... | |
| virtual bool | bounds_from_above (const Linear_Expression &expr) const =0 |
Returns true if and only if expr is bounded from above in *this. More... | |
| virtual bool | bounds_from_below (const Linear_Expression &expr) const =0 |
Returns true if and only if expr is bounded from below in *this. More... | |
| virtual bool | maximize (const Linear_Expression &expr, Coefficient &sup_n, Coefficient &sup_d, bool &maximum) const =0 |
Returns true if and only if *this is not empty and expr is bounded from above in *this, in which case the supremum value is computed. More... | |
| virtual bool | maximize (const Linear_Expression &expr, Coefficient &sup_n, Coefficient &sup_d, bool &maximum, Generator &point) const =0 |
Returns true if and only if *this is not empty and expr is bounded from above in *this, in which case the supremum value and a point where expr reaches it are computed. More... | |
| virtual bool | minimize (const Linear_Expression &expr, Coefficient &inf_n, Coefficient &inf_d, bool &minimum) const =0 |
Returns true if and only if *this is not empty and expr is bounded from below in *this, in which case the infimum value is computed. More... | |
| virtual bool | minimize (const Linear_Expression &expr, Coefficient &inf_n, Coefficient &inf_d, bool &minimum, Generator &point) const =0 |
Returns true if and only if *this is not empty and expr is bounded from below in *this, in which case the infimum value and a point where expr reaches it are computed. More... | |
| virtual bool | contains (const Any_Pointset &y) const =0 |
Returns true if and only if *this contains y. More... | |
| virtual bool | strictly_contains (const Any_Pointset &y) const =0 |
Returns true if and only if *this strictly contains y. More... | |
| virtual bool | is_disjoint_from (const Any_Pointset &y) const =0 |
Returns true if and only if *this and y are disjoint. More... | |
| virtual bool | OK () const =0 |
| Checks if all the invariants are satisfied. More... | |
Space Dimension Preserving Member Functions that May Modify the Any_Pointset | |
| virtual void | add_constraint (const Constraint &c)=0 |
Adds a copy of constraint c to the system of constraints of *this (without minimizing the result). More... | |
| virtual void | add_constraints (const Constraint_System &cs)=0 |
Adds a copy of the constraints in cs to the system of constraints of *this (without minimizing the result). More... | |
| virtual void | unconstrain (Variable var)=0 |
Computes the cylindrification of *this with respect to space dimension var, assigning the result to *this. More... | |
| virtual void | unconstrain (const Variables_Set &vars)=0 |
Computes the cylindrification of *this with respect to the set of space dimensions vars, assigning the result to *this. More... | |
| virtual void | intersection_assign (const Any_Pointset &y)=0 |
Assigns to *this the intersection of *this and y. The result is not guaranteed to be minimized. More... | |
| virtual void | upper_bound_assign (const Any_Pointset &y)=0 |
Assigns to *this the smallest pointset, in the class of *this and y, that contains both *this and y. More... | |
| virtual void | difference_assign (const Any_Pointset &y)=0 |
Assigns to *this the smallest pointset, in the class of this and y, that contains the set-theoretic difference of this and y. More... | |
| virtual void | affine_image (Variable var, const Linear_Expression &expr, Coefficient_traits::const_reference denominator=Coefficient_one())=0 |
Assigns to *this the affine image of *this under the function mapping variable var to the affine expression specified by expr and denominator. More... | |
| virtual void | affine_preimage (Variable var, const Linear_Expression &expr, Coefficient_traits::const_reference denominator=Coefficient_one())=0 |
Assigns to *this the affine preimage of *this under the function mapping variable var to the affine expression specified by expr and denominator. More... | |
| virtual void | generalized_affine_image (Variable var, Relation_Symbol relsym, const Linear_Expression &expr, Coefficient_traits::const_reference denominator=Coefficient_one())=0 |
Assigns to *this the image of *this with respect to the generalized affine relation , where is the relation symbol encoded by relsym. More... | |
| virtual void | generalized_affine_preimage (Variable var, Relation_Symbol relsym, const Linear_Expression &expr, Coefficient_traits::const_reference denominator=Coefficient_one())=0 |
Assigns to *this the preimage of *this with respect to the generalized affine relation , where is the relation symbol encoded by relsym. More... | |
| virtual void | generalized_affine_image (const Linear_Expression &lhs, Relation_Symbol relsym, const Linear_Expression &rhs)=0 |
Assigns to *this the image of *this with respect to the generalized affine relation , where is the relation symbol encoded by relsym. More... | |
| virtual void | generalized_affine_preimage (const Linear_Expression &lhs, Relation_Symbol relsym, const Linear_Expression &rhs)=0 |
Assigns to *this the preimage of *this with respect to the generalized affine relation , where is the relation symbol encoded by relsym. More... | |
| virtual void | bounded_affine_image (Variable var, const Linear_Expression &lb_expr, const Linear_Expression &ub_expr, Coefficient_traits::const_reference denominator=Coefficient_one())=0 |
Assigns to *this the image of *this with respect to the bounded affine relation . More... | |
| virtual void | bounded_affine_preimage (Variable var, const Linear_Expression &lb_expr, const Linear_Expression &ub_expr, Coefficient_traits::const_reference denominator=Coefficient_one())=0 |
Assigns to *this the preimage of *this with respect to the bounded affine relation . More... | |
| virtual void | time_elapse_assign (const Any_Pointset &y)=0 |
Assigns to *this the result of computing the time-elapse between *this and y. More... | |
| void | topological_closure_assign () |
Assigns to *this its topological closure. More... | |
Member Functions that May Modify the Dimension of the Vector Space | |
| virtual void | add_space_dimensions_and_embed (dimension_type m)=0 |
Adds m new space dimensions and embeds the old pointset in the new vector space. More... | |
| virtual void | add_space_dimensions_and_project (dimension_type m)=0 |
Adds m new space dimensions to the pointset and does not embed it in the new vector space. More... | |
| virtual void | concatenate_assign (const Any_Pointset &y)=0 |
Assigns to *this the concatenation of *this and y, taken in this order. More... | |
| virtual void | remove_space_dimensions (const Variables_Set &vars)=0 |
| Removes all the specified dimensions from the vector space. More... | |
| virtual void | remove_higher_space_dimensions (dimension_type new_dimension)=0 |
Removes the higher dimensions of the vector space so that the resulting space will have dimension new_dimension. More... | |
| void | expand_space_dimension (Variable var, dimension_type m) |
Creates m copies of the space dimension corresponding to var. More... | |
| void | fold_space_dimensions (const Variables_Set &vars, Variable dest) |
Folds the space dimensions in vars into dest. More... | |
Miscellaneous Member Functions | |
| virtual | ~Any_Pointset () |
| Destructor. More... | |
| void | m_swap (Any_Pointset &y) |
Swaps *this with pointset y. (*this and y can be dimension-incompatible.) 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 | ascii_load (std::istream &s) |
Loads from s an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets *this accordingly. Returns true if successful, false otherwise. More... | |
| virtual memory_size_type | total_memory_in_bytes () const =0 |
Returns the total size in bytes of the memory occupied by *this. More... | |
| virtual memory_size_type | external_memory_in_bytes () const =0 |
Returns the size in bytes of the memory managed by *this. More... | |
| virtual int32_t | hash_code () const =0 |
Returns a 32-bit hash code for *this. More... | |
Related Functions | |
(Note that these are not member functions.) | |
| std::ostream & | operator<< (std::ostream &s, const Any_Pointset &ph) |
| Output operator. More... | |
| void | swap (Any_Pointset &x, Any_Pointset &y) |
Swaps x with y. More... | |
| bool | operator== (const Any_Pointset &x, const Any_Pointset &y) |
Returns true if and only if x and y are the same pointset. More... | |
| bool | operator!= (const Any_Pointset &x, const Any_Pointset &y) |
Returns true if and only if x and y are different pointsets. More... | |
Any PPL pointset.
Definition at line 82 of file Any_Pointset_defs.hh.
|
inline |
| Parma_Polyhedra_Library::Any_Pointset::Any_Pointset | ( | const Any_Pointset & | y | ) |
Ordinary copy constructor.
|
inlinevirtual |
|
pure virtual |
Adds a copy of constraint c to the system of constraints of *this (without minimizing the result).
| std::invalid_argument | Thrown if *this and constraint c are topology-incompatible or dimension-incompatible. |
|
pure virtual |
Adds a copy of the constraints in cs to the system of constraints of *this (without minimizing the result).
| cs | Contains the constraints that will be added to the system of constraints of *this. |
| std::invalid_argument | Thrown if *this and cs are topology-incompatible or dimension-incompatible. |
|
pure virtual |
Adds m new space dimensions and embeds the old pointset in the new vector space.
| m | The number of dimensions to add. |
| std::length_error | Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension(). |
The new space dimensions will be those having the highest indexes in the new pointset, which is characterized by a system of constraints in which the variables running through the new dimensions are not constrained. For instance, when starting from the pointset
and adding a third space dimension, the result will be the pointset
|
pure virtual |
Adds m new space dimensions to the pointset and does not embed it in the new vector space.
| m | The number of space dimensions to add. |
| std::length_error | Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension(). |
The new space dimensions will be those having the highest indexes in the new pointset, which is characterized by a system of constraints in which the variables running through the new dimensions are all constrained to be equal to 0. For instance, when starting from the pointset
and adding a third space dimension, the result will be the pointset
|
pure virtual |
Returns
, if *this is empty; otherwise, returns the affine dimension of *this.
|
pure virtual |
Assigns to *this the affine image of *this under the function mapping variable var to the affine expression specified by expr and denominator.
| var | The variable to which the affine expression is assigned; |
| expr | The numerator of the affine expression; |
| denominator | The denominator of the affine expression (optional argument with default value 1). |
| std::invalid_argument | Thrown if denominator is zero or if expr and *this are dimension-incompatible or if var is not a space dimension of *this. |
When considering the generators of a pointset, the affine transformation
is assigned to var where expr is
(
is the inhomogeneous term).
If constraints are up-to-date, it uses the specialized function affine_preimage() (for the system of constraints) and inverse transformation to reach the same result. To obtain the inverse transformation we use the following observation.
Observation:
var in this transformation (i.e.,
) is different from zero.
Then, if the transformation is invertible, all the entities that were up-to-date remain up-to-date. Otherwise only generators remain up-to-date.
In other words, if
is a
matrix representing the rays of the pointset,
is a
matrix representing the points of the pointset and
and
is the affine transformation to apply to
, then the resulting pointset is
Affine transformations are, for example:
|
pure virtual |
Assigns to *this the affine preimage of *this under the function mapping variable var to the affine expression specified by expr and denominator.
| var | The variable to which the affine expression is substituted; |
| expr | The numerator of the affine expression; |
| denominator | The denominator of the affine expression (optional argument with default value 1). |
| std::invalid_argument | Thrown if denominator is zero or if expr and *this are dimension-incompatible or if var is not a space dimension of *this. |
When considering constraints of a pointset, the affine transformation
is assigned to var where expr is
(
is the inhomogeneous term).
If generators are up-to-date, then the specialized function affine_image() is used (for the system of generators) and inverse transformation to reach the same result. To obtain the inverse transformation, we use the following observation.
Observation:
var in this transformation (i.e.
) is different from zero.
Then, if the transformation is invertible, all the entities that were up-to-date remain up-to-date. Otherwise only constraints remain up-to-date.
In other words, if
is a
matrix representing the constraints of the pointset,
is the affine transformation to apply to
and
The resulting pointset is
where
is defined as follows:
| void Parma_Polyhedra_Library::Any_Pointset::ascii_dump | ( | ) | const |
Writes to std::cerr an ASCII representation of *this.
| void Parma_Polyhedra_Library::Any_Pointset::ascii_dump | ( | std::ostream & | s | ) | const |
Writes to s an ASCII representation of *this.
| bool Parma_Polyhedra_Library::Any_Pointset::ascii_load | ( | std::istream & | s | ) |
Loads from s an ASCII representation (as produced by ascii_dump(std::ostream&) const) and sets *this accordingly. Returns true if successful, false otherwise.
|
pure virtual |
Assigns to *this the image of *this with respect to the bounded affine relation
.
| var | The variable updated by the affine relation; |
| lb_expr | The numerator of the lower bounding affine expression; |
| ub_expr | The numerator of the upper bounding affine expression; |
| denominator | The (common) denominator for the lower and upper bounding affine expressions (optional argument with default value 1). |
| std::invalid_argument | Thrown if denominator is zero or if lb_expr (resp., ub_expr) and *this are dimension-incompatible or if var is not a space dimension of *this. |
|
pure virtual |
Assigns to *this the preimage of *this with respect to the bounded affine relation
.
| var | The variable updated by the affine relation; |
| lb_expr | The numerator of the lower bounding affine expression; |
| ub_expr | The numerator of the upper bounding affine expression; |
| denominator | The (common) denominator for the lower and upper bounding affine expressions (optional argument with default value 1). |
| std::invalid_argument | Thrown if denominator is zero or if lb_expr (resp., ub_expr) and *this are dimension-incompatible or if var is not a space dimension of *this. |
|
pure virtual |
Returns true if and only if expr is bounded from above in *this.
| std::invalid_argument | Thrown if expr and *this are dimension-incompatible. |
|
pure virtual |
Returns true if and only if expr is bounded from below in *this.
| std::invalid_argument | Thrown if expr and *this are dimension-incompatible. |
|
pure virtual |
Assigns to *this the concatenation of *this and y, taken in this order.
| std::invalid_argument | Thrown if *this and y are topology-incompatible. |
| std::length_error | Thrown if the concatenation would cause the vector space to exceed dimension max_space_dimension(). |
|
pure virtual |
Returns a system of constraints that *this satisfies.
|
pure virtual |
Returns true if and only if *this contains y.
| std::invalid_argument | Thrown if *this and y are topology-incompatible or dimension-incompatible. |
|
pure virtual |
Returns true if and only if *this contains at least one integer point.
|
pure virtual |
Assigns to *this the smallest pointset, in the class of this and y, that contains the set-theoretic difference of this and y.
| std::invalid_argument | Thrown if *this and y are topology-incompatible or dimension-incompatible. |
| void Parma_Polyhedra_Library::Any_Pointset::expand_space_dimension | ( | Variable | var, |
| dimension_type | m | ||
| ) |
Creates m copies of the space dimension corresponding to var.
| var | The variable corresponding to the space dimension to be replicated; |
| m | The number of replicas to be created. |
| std::invalid_argument | Thrown if var does not correspond to a dimension of the vector space. |
| std::length_error | Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension(). |
If *this has space dimension
, with
, and var has space dimension
, then the
-th space dimension is expanded to m new space dimensions
,
,
,
.
|
pure virtual |
Returns the size in bytes of the memory managed by *this.
| void Parma_Polyhedra_Library::Any_Pointset::fold_space_dimensions | ( | const Variables_Set & | vars, |
| Variable | dest | ||
| ) |
Folds the space dimensions in vars into dest.
| vars | The set of Variable objects corresponding to the space dimensions to be folded; |
| dest | The variable corresponding to the space dimension that is the destination of the folding operation. |
| std::invalid_argument | Thrown if *this is dimension-incompatible with dest or with one of the Variable objects contained in vars. Also thrown if dest is contained in vars. |
If *this has space dimension
, with
, dest has space dimension
, vars is a set of variables whose maximum space dimension is also less than or equal to
, and dest is not a member of vars, then the space dimensions corresponding to variables in vars are folded into the
-th space dimension.
|
pure virtual |
Assigns to *this the image of *this with respect to the generalized affine relation
, where
is the relation symbol encoded by relsym.
| var | The left hand side variable of the generalized affine relation; |
| relsym | The relation symbol; |
| expr | The numerator of the right hand side affine expression; |
| denominator | The denominator of the right hand side affine expression (optional argument with default value 1). |
| std::invalid_argument | Thrown if denominator is zero or if expr and *this are dimension-incompatible or if var is not a space dimension of *this or if *this is a Any_Pointset and relsym is a strict relation symbol. |
|
pure virtual |
Assigns to *this the image of *this with respect to the generalized affine relation
, where
is the relation symbol encoded by relsym.
| lhs | The left hand side affine expression; |
| relsym | The relation symbol; |
| rhs | The right hand side affine expression. |
| std::invalid_argument | Thrown if *this is dimension-incompatible with lhs or rhs or if *this is a C_Any_Pointset and relsym is a strict relation symbol. |
|
pure virtual |
Assigns to *this the preimage of *this with respect to the generalized affine relation
, where
is the relation symbol encoded by relsym.
| var | The left hand side variable of the generalized affine relation; |
| relsym | The relation symbol; |
| expr | The numerator of the right hand side affine expression; |
| denominator | The denominator of the right hand side affine expression (optional argument with default value 1). |
| std::invalid_argument | Thrown if denominator is zero or if expr and *this are dimension-incompatible or if var is not a space dimension of *this or if *this is a C_Any_Pointset and relsym is a strict relation symbol. |
|
pure virtual |
Assigns to *this the preimage of *this with respect to the generalized affine relation
, where
is the relation symbol encoded by relsym.
| lhs | The left hand side affine expression; |
| relsym | The relation symbol; |
| rhs | The right hand side affine expression. |
| std::invalid_argument | Thrown if *this is dimension-incompatible with lhs or rhs or if *this is a C_Any_Pointset and relsym is a strict relation symbol. |
|
pure virtual |
Returns a 32-bit hash code for *this.
If x and y are such that x == y, then x.hash_code() == y.hash_code().
|
pure virtual |
Assigns to *this the intersection of *this and y. The result is not guaranteed to be minimized.
| std::invalid_argument | Thrown if *this and y are topology-incompatible or dimension-incompatible. |
|
pure virtual |
Returns true if and only if *this is a bounded pointset.
|
pure virtual |
Returns true if and only if *this is discrete.
|
pure virtual |
Returns true if and only if *this and y are disjoint.
| std::invalid_argument | Thrown if x and y are topology-incompatible or dimension-incompatible. |
|
pure virtual |
Returns true if and only if *this is an empty pointset.
|
pure virtual |
Returns true if and only if *this is a topologically closed subset of the vector space.
|
pure virtual |
Returns true if and only if *this is a universe pointset.
| void Parma_Polyhedra_Library::Any_Pointset::m_swap | ( | Any_Pointset & | y | ) |
Swaps *this with pointset y. (*this and y can be dimension-incompatible.)
| std::invalid_argument | Thrown if x and y are topology-incompatible. |
|
pure virtual |
Returns true if and only if *this is not empty and expr is bounded from above in *this, in which case the supremum value is computed.
| expr | The linear expression to be maximized subject to *this; |
| sup_n | The numerator of the supremum value; |
| sup_d | The denominator of the supremum value; |
| maximum | true if and only if the supremum is also the maximum value. |
| std::invalid_argument | Thrown if expr and *this are dimension-incompatible. |
If *this is empty or expr is not bounded from above, false is returned and sup_n, sup_d and maximum are left untouched.
|
pure virtual |
Returns true if and only if *this is not empty and expr is bounded from above in *this, in which case the supremum value and a point where expr reaches it are computed.
| expr | The linear expression to be maximized subject to *this; |
| sup_n | The numerator of the supremum value; |
| sup_d | The denominator of the supremum value; |
| maximum | true if and only if the supremum is also the maximum value; |
| point | When maximization succeeds, will be assigned the point or closure point where expr reaches its supremum value. |
| std::invalid_argument | Thrown if expr and *this are dimension-incompatible. |
If *this is empty or expr is not bounded from above, false is returned and sup_n, sup_d, maximum and point are left untouched.
|
pure virtual |
Returns true if and only if *this is not empty and expr is bounded from below in *this, in which case the infimum value is computed.
| expr | The linear expression to be minimized subject to *this; |
| inf_n | The numerator of the infimum value; |
| inf_d | The denominator of the infimum value; |
| minimum | true if and only if the infimum is also the minimum value. |
| std::invalid_argument | Thrown if expr and *this are dimension-incompatible. |
If *this is empty or expr is not bounded from below, false is returned and inf_n, inf_d and minimum are left untouched.
|
pure virtual |
Returns true if and only if *this is not empty and expr is bounded from below in *this, in which case the infimum value and a point where expr reaches it are computed.
| expr | The linear expression to be minimized subject to *this; |
| inf_n | The numerator of the infimum value; |
| inf_d | The denominator of the infimum value; |
| minimum | true if and only if the infimum is also the minimum value; |
| point | When minimization succeeds, will be assigned a point or closure point where expr reaches its infimum value. |
| std::invalid_argument | Thrown if expr and *this are dimension-incompatible. |
If *this is empty or expr is not bounded from below, false is returned and inf_n, inf_d, minimum and point are left untouched.
|
pure virtual |
Checks if all the invariants are satisfied.
| void Parma_Polyhedra_Library::Any_Pointset::print | ( | ) | const |
Prints *this to std::cerr using operator<<.
| Poly_Con_Relation Parma_Polyhedra_Library::Any_Pointset::relation_with | ( | const Constraint & | c | ) | const |
Returns the relations holding between the pointset *this and the constraint c.
| std::invalid_argument | Thrown if *this and constraint c are dimension-incompatible. |
| Poly_Gen_Relation Parma_Polyhedra_Library::Any_Pointset::relation_with | ( | const Generator & | g | ) | const |
Returns the relations holding between the pointset *this and the generator g.
| std::invalid_argument | Thrown if *this and generator g are dimension-incompatible. |
|
pure virtual |
Removes the higher dimensions of the vector space so that the resulting space will have dimension new_dimension.
| std::invalid_argument | Thrown if new_dimensions is greater than the space dimension of *this. |
|
pure virtual |
|
pure virtual |
Returns the dimension of the vector space enclosing *this.
|
pure virtual |
Returns true if and only if *this strictly contains y.
| std::invalid_argument | Thrown if *this and y are topology-incompatible or dimension-incompatible. |
|
pure virtual |
Assigns to *this the result of computing the time-elapse between *this and y.
| std::invalid_argument | Thrown if *this and y are topology-incompatible or dimension-incompatible. |
| void Parma_Polyhedra_Library::Any_Pointset::topological_closure_assign | ( | ) |
Assigns to *this its topological closure.
|
pure virtual |
Returns the total size in bytes of the memory occupied by *this.
|
pure virtual |
Computes the cylindrification of *this with respect to space dimension var, assigning the result to *this.
| var | The space dimension that will be unconstrained. |
| std::invalid_argument | Thrown if var is not a space dimension of *this. |
|
pure virtual |
Computes the cylindrification of *this with respect to the set of space dimensions vars, assigning the result to *this.
| vars | The set of space dimension that will be unconstrained. |
| std::invalid_argument | Thrown if *this is dimension-incompatible with one of the Variable objects contained in vars. |
|
pure virtual |
Assigns to *this the smallest pointset, in the class of *this and y, that contains both *this and y.
| std::invalid_argument | Thrown if *this and y are topology-incompatible or dimension-incompatible. |
|
related |
Returns true if and only if x and y are different pointsets.
Note that x and y may be topology- and/or dimension-incompatible pointsets: in those cases, the value true is returned.
|
related |
Output operator.
Writes a textual representation of ph on s: false is written if ph is an empty pointset; true is written if ph is a universe pointset; a minimized system of constraints and congruences ph is written otherwise, all constraints in one row separated by ", ".
|
related |
Returns true if and only if x and y are the same pointset.
Note that x and y may be topology- and/or dimension-incompatible pointsets: in those cases, the value false is returned.
|
related |
Swaps x with y.