Inherits parma_polyhedra_library::PPL_Object.
Inherited by parma_polyhedra_library::C_Polyhedron.
Public Member Functions | |
Member Functions that Do Not Modify the Polyhedron | |
native long | space_dimension () |
Returns the dimension of the vector space enclosing this . | |
native long | affine_dimension () |
Returns ![]() this is empty; otherwise, returns the affine dimension of this . | |
native Constraint_System | constraints () |
Returns the system of constraints. | |
native Congruence_System | congruences () |
Returns a system of (equality) congruences satisfied by this . | |
native Constraint_System | minimized_constraints () |
Returns the system of constraints, with no redundant constraint. | |
native Congruence_System | minimized_congruences () |
Returns a system of (equality) congruences satisfied by this , with no redundant congruences and having the same affine dimension as this . | |
native boolean | is_empty () |
Returns true if and only if this is an empty polyhedron. | |
native boolean | is_universe () |
Returns true if and only if this is a universe polyhedron. | |
native boolean | is_bounded () |
Returns true if and only if this is a bounded polyhedron. | |
native boolean | is_discrete () |
Returns true if and only if this is discrete. | |
native boolean | is_topologically_closed () |
Returns true if and only if this is a topologically closed subset of the vector space. | |
native boolean | contains_integer_point () |
Returns true if and only if this contains at least one integer point. | |
native boolean | constrains (Variable var) |
Returns true if and only if var is constrained in this . | |
native boolean | bounds_from_above (Linear_Expression expr) |
Returns true if and only if expr is bounded from above in this . | |
native boolean | bounds_from_below (Linear_Expression expr) |
Returns true if and only if expr is bounded from below in this . | |
native boolean | maximize (Linear_Expression expr, Coefficient sup_n, Coefficient sup_d, By_Reference< Boolean > maximum) |
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. | |
native boolean | minimize (Linear_Expression expr, Coefficient inf_n, Coefficient inf_d, By_Reference< Boolean > minimum) |
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. | |
native boolean | maximize (Linear_Expression expr, Coefficient sup_n, Coefficient sup_d, By_Reference< Boolean > maximum, Generator g) |
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. | |
native boolean | minimize (Linear_Expression expr, Coefficient inf_n, Coefficient inf_d, By_Reference< Boolean > minimum, Generator g) |
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. | |
native Poly_Con_Relation | relation_with (Constraint c) |
Returns the relations holding between the polyhedron this and the constraint c . | |
native Poly_Gen_Relation | relation_with (Generator c) |
Returns the relations holding between the polyhedron this and the generator g . | |
native Poly_Con_Relation | relation_with (Congruence c) |
Returns the relations holding between the polyhedron this and the congruence c . | |
native boolean | contains (Polyhedron y) |
Returns true if and only if this contains y . | |
native boolean | strictly_contains (Polyhedron y) |
Returns true if and only if this strictly contains y . | |
native boolean | is_disjoint_from (Polyhedron y) |
Returns true if and only if this and y are disjoint. | |
native boolean | equals (Polyhedron y) |
Returns true if and only if this and y are equal. | |
boolean | equals (Object y) |
Returns true if and only if this and y are equal. | |
native int | hashCode () |
Returns a hash code for this . | |
native long | external_memory_in_bytes () |
Returns the size in bytes of the memory managed by this . | |
native long | total_memory_in_bytes () |
Returns the total size in bytes of the memory occupied by this . | |
native String | toString () |
Returns a string representing this . | |
native String | ascii_dump () |
Returns a string containing a low-level representation of this . | |
native boolean | OK () |
Checks if all the invariants are satisfied. | |
Space Dimension Preserving Member Functions that May Modify the Polyhedron | |
native void | add_constraint (Constraint c) |
Adds a copy of constraint c to the system of constraints of this (without minimizing the result). | |
native void | add_congruence (Congruence cg) |
Adds a copy of congruence cg to this , if cg can be exactly represented by a polyhedron. | |
native void | add_constraints (Constraint_System cs) |
Adds a copy of the constraints in cs to the system of constraints of this (without minimizing the result). | |
native void | add_congruences (Congruence_System cgs) |
Adds a copy of the congruences in cgs to this , if all the congruences can be exactly represented by a polyhedron. | |
native void | refine_with_constraint (Constraint c) |
Uses a copy of constraint c to refine this . | |
native void | refine_with_congruence (Congruence cg) |
Uses a copy of congruence cg to refine this . | |
native void | refine_with_constraints (Constraint_System cs) |
Uses a copy of the constraints in cs to refine this . | |
native void | refine_with_congruences (Congruence_System cgs) |
Uses a copy of the congruences in cgs to refine this . | |
native void | intersection_assign (Polyhedron y) |
Assigns to this the intersection of this and y . The result is not guaranteed to be minimized. | |
native void | upper_bound_assign (Polyhedron y) |
Assigns to this the upper bound of this and y . | |
native void | difference_assign (Polyhedron y) |
Assigns to this the poly-difference of this and y . The result is not guaranteed to be minimized. | |
native void | time_elapse_assign (Polyhedron y) |
Assigns to this the result of computing the time-elapse between this and y . | |
native void | topological_closure_assign () |
Assigns to this its topological closure. | |
native boolean | simplify_using_context_assign (Polyhedron y) |
Assigns to this a Meet_Preserving_Simplification meet-preserving simplification" of this with respect to y . If false is returned, then the intersection is empty. | |
native void | affine_image (Variable var, Linear_Expression expr, Coefficient denominator) |
Assigns to this the affine image of this under the function mapping variable var to the affine expression specified by expr and denominator . | |
native void | affine_preimage (Variable var, Linear_Expression expr, Coefficient denominator) |
Assigns to this the affine preimage of this under the function mapping variable var to the affine expression specified by expr and denominator . | |
native void | bounded_affine_image (Variable var, Linear_Expression lb_expr, Linear_Expression ub_expr, Coefficient denominator) |
Assigns to this the image of this with respect to the bounded affine relation ![]() | |
native void | bounded_affine_preimage (Variable var, Linear_Expression lb_expr, Linear_Expression ub_expr, Coefficient denominator) |
Assigns to this the preimage of this with respect to the bounded affine relation ![]() | |
native void | generalized_affine_image (Variable var, Relation_Symbol relsym, Linear_Expression expr, Coefficient denominator) |
Assigns to this the image of this with respect to the generalized affine relation ![]() ![]() relsym . | |
native void | generalized_affine_preimage (Variable var, Relation_Symbol relsym, Linear_Expression expr, Coefficient denominator) |
Assigns to this the preimage of this with respect to the generalized affine relation ![]() ![]() relsym . | |
native void | generalized_affine_image (Linear_Expression lhs, Relation_Symbol relsym, Linear_Expression rhs) |
Assigns to this the image of this with respect to the generalized affine relation ![]() ![]() relsym . | |
native void | generalized_affine_preimage (Linear_Expression lhs, Relation_Symbol relsym, Linear_Expression rhs) |
Assigns to this the preimage of this with respect to the generalized affine relation ![]() ![]() relsym . | |
native void | unconstrain_space_dimension (Variable var) |
Computes the cylindrification of this with respect to space dimension var , assigning the result to this . | |
native void | unconstrain_space_dimensions (Variables_Set to_be_unconstrained) |
Computes the cylindrification of this with respect to the set of space dimensions to_be_unconstrained , assigning the result to this . | |
native void | widening_assign (Polyhedron y, By_Reference< Integer > tp) |
Assigns to this the result of computing the H79-widening between this and y . | |
Member Functions that May Modify the Dimension of the Vector Space | |
native void | swap (Polyhedron y) |
Swaps this with polyhedron y . (this and y can be dimension-incompatible.). | |
native void | add_space_dimensions_and_embed (long m) |
Adds m new space dimensions and embeds the old polyhedron in the new vector space. | |
native void | add_space_dimensions_and_project (long m) |
Adds m new space dimensions to the polyhedron and does not embed it in the new vector space. | |
native void | concatenate_assign (Polyhedron y) |
Assigns to this the concatenation of this and y , taken in this order. | |
native void | remove_space_dimensions (Variables_Set to_be_removed) |
Removes all the specified dimensions from the vector space. | |
native void | remove_higher_space_dimensions (long new_dimension) |
Removes the higher dimensions of the vector space so that the resulting space will have dimension new_dimension . | |
native void | expand_space_dimension (Variable var, long m) |
Creates m copies of the space dimension corresponding to var . | |
native void | fold_space_dimensions (Variables_Set to_be_folded, Variable var) |
Folds the space dimensions in to_be_folded into var . | |
native void | map_space_dimensions (Partial_Function pfunc) |
Remaps the dimensions of the vector space according to a partial function. | |
Ad Hoc Functions for (C or NNC) Polyhedra | |
The functions listed here below, being specific of the polyhedron domains, do not have a correspondence in other semantic geometric descriptions. | |
native Generator_System | generators () |
Returns the system of generators. | |
native Generator_System | minimized_generators () |
Returns the system of generators, with no redundant generator. | |
native void | add_generator (Generator g) |
Adds a copy of generator g to the system of generators of this (without minimizing the result). | |
native void | add_generators (Generator_System gs) |
Adds a copy of the generators in gs to the system of generators of this (without minimizing the result). | |
native void | poly_hull_assign (Polyhedron y) |
Same as upper_bound_assign. | |
native void | poly_difference_assign (Polyhedron y) |
Same as difference_assign. | |
native void | BHRZ03_widening_assign (Polyhedron y, By_Reference< Integer > tp) |
Assigns to this the result of computing the BHRZ03-widening between this and y . | |
native void | H79_widening_assign (Polyhedron y, By_Reference< Integer > tp) |
Assigns to this the result of computing the H79-widening between this and y . | |
native void | limited_BHRZ03_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp) |
Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this . | |
native void | limited_H79_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp) |
Improves the result of the H79-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this . | |
native void | bounded_BHRZ03_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp) |
Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this , plus all the constraints of the form ![]() ![]() ![]() this . | |
native void | bounded_H79_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp) |
Improves the result of the H79-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this , plus all the constraints of the form ![]() ![]() ![]() this . |
The base class Polyhedron provides declarations for most of the methods common to classes C_Polyhedron and NNC_Polyhedron. Note that the user should always use the derived classes. Moreover, C and NNC polyhedra can not be freely interchanged: as specified in the main manual, most library functions require their arguments to be topologically compatible.
native boolean parma_polyhedra_library::Polyhedron::constrains | ( | Variable | var | ) |
Returns true
if and only if var
is constrained in this
.
Invalid_Argument_Exception | Thrown if var is not a space dimension of this . |
native boolean parma_polyhedra_library::Polyhedron::bounds_from_above | ( | Linear_Expression | expr | ) |
Returns true
if and only if expr
is bounded from above in this
.
Invalid_Argument_Exception | Thrown if expr and this are dimension-incompatible. |
native boolean parma_polyhedra_library::Polyhedron::bounds_from_below | ( | Linear_Expression | expr | ) |
Returns true
if and only if expr
is bounded from below in this
.
Invalid_Argument_Exception | Thrown if expr and this are dimension-incompatible. |
native boolean parma_polyhedra_library::Polyhedron::maximize | ( | Linear_Expression | expr, | |
Coefficient | sup_n, | |||
Coefficient | sup_d, | |||
By_Reference< Boolean > | maximum | |||
) |
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. |
Invalid_Argument_Exception | Thrown if expr and this are dimension-incompatible. |
this
is empty or expr
is not bounded from above, false
is returned and sup_n
, sup_d
and maximum
are left untouched.
native boolean parma_polyhedra_library::Polyhedron::minimize | ( | Linear_Expression | expr, | |
Coefficient | inf_n, | |||
Coefficient | inf_d, | |||
By_Reference< Boolean > | minimum | |||
) |
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. |
Invalid_Argument_Exception | Thrown if expr and this are dimension-incompatible. |
this
is empty or expr
is not bounded from below, false
is returned and inf_n
, inf_d
and minimum
are left untouched.
native boolean parma_polyhedra_library::Polyhedron::maximize | ( | Linear_Expression | expr, | |
Coefficient | sup_n, | |||
Coefficient | sup_d, | |||
By_Reference< Boolean > | maximum, | |||
Generator | g | |||
) |
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; | |
g | When maximization succeeds, will be assigned the point or closure point where expr reaches its supremum value. |
Invalid_Argument_Exception | Thrown if expr and this are dimension-incompatible. |
this
is empty or expr
is not bounded from above, false
is returned and sup_n
, sup_d
, maximum
and g
are left untouched.
native boolean parma_polyhedra_library::Polyhedron::minimize | ( | Linear_Expression | expr, | |
Coefficient | inf_n, | |||
Coefficient | inf_d, | |||
By_Reference< Boolean > | minimum, | |||
Generator | g | |||
) |
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; | |
g | When minimization succeeds, will be assigned a point or closure point where expr reaches its infimum value. |
Invalid_Argument_Exception | Thrown if expr and this are dimension-incompatible. |
this
is empty or expr
is not bounded from below, false
is returned and inf_n
, inf_d
, minimum
and g
are left untouched.
native Poly_Con_Relation parma_polyhedra_library::Polyhedron::relation_with | ( | Constraint | c | ) |
Returns the relations holding between the polyhedron this
and the constraint c
.
Invalid_Argument_Exception | Thrown if this and constraint c are dimension-incompatible. |
native Poly_Gen_Relation parma_polyhedra_library::Polyhedron::relation_with | ( | Generator | c | ) |
Returns the relations holding between the polyhedron this
and the generator g
.
Invalid_Argument_Exception | Thrown if this and generator g are dimension-incompatible. |
native Poly_Con_Relation parma_polyhedra_library::Polyhedron::relation_with | ( | Congruence | c | ) |
Returns the relations holding between the polyhedron this
and the congruence c
.
Invalid_Argument_Exception | Thrown if this and congruence c are dimension-incompatible. |
native boolean parma_polyhedra_library::Polyhedron::contains | ( | Polyhedron | y | ) |
Returns true
if and only if this
contains y
.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native boolean parma_polyhedra_library::Polyhedron::strictly_contains | ( | Polyhedron | y | ) |
Returns true
if and only if this
strictly contains y
.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native boolean parma_polyhedra_library::Polyhedron::is_disjoint_from | ( | Polyhedron | y | ) |
Returns true
if and only if this
and y
are disjoint.
Invalid_Argument_Exception | Thrown if x and y are topology-incompatible or dimension-incompatible. |
native int parma_polyhedra_library::Polyhedron::hashCode | ( | ) |
Returns a hash code for this
.
If x
and y
are such that x == y
, then x.hash_code() == y.hash_code()
.
native String parma_polyhedra_library::Polyhedron::ascii_dump | ( | ) |
Returns a string containing a low-level representation of this
.
Useful for debugging purposes.
native void parma_polyhedra_library::Polyhedron::add_constraint | ( | Constraint | c | ) |
Adds a copy of constraint c
to the system of constraints of this
(without minimizing the result).
c | The constraint that will be added to the system of constraints of this . |
Invalid_Argument_Exception | Thrown if this and constraint c are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::add_congruence | ( | Congruence | cg | ) |
Adds a copy of congruence cg
to this
, if cg
can be exactly represented by a polyhedron.
Invalid_Argument_Exception | Thrown if this and congruence cg are dimension-incompatible, of if cg is a proper congruence which is neither a tautology, nor a contradiction. |
native void parma_polyhedra_library::Polyhedron::add_constraints | ( | Constraint_System | cs | ) |
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 . |
Invalid_Argument_Exception | Thrown if this and cs are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::add_congruences | ( | Congruence_System | cgs | ) |
Adds a copy of the congruences in cgs
to this
, if all the congruences can be exactly represented by a polyhedron.
cgs | The congruences to be added. |
Invalid_Argument_Exception | Thrown if this and cgs are dimension-incompatible, of if there exists in cgs a proper congruence which is neither a tautology, nor a contradiction. |
native void parma_polyhedra_library::Polyhedron::refine_with_constraint | ( | Constraint | c | ) |
Uses a copy of constraint c
to refine this
.
Invalid_Argument_Exception | Thrown if this and constraint c are dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::refine_with_congruence | ( | Congruence | cg | ) |
Uses a copy of congruence cg
to refine this
.
Invalid_Argument_Exception | Thrown if this and congruence cg are dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::refine_with_constraints | ( | Constraint_System | cs | ) |
Uses a copy of the constraints in cs
to refine this
.
cs | Contains the constraints used to refine the system of constraints of this . |
Invalid_Argument_Exception | Thrown if this and cs are dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::refine_with_congruences | ( | Congruence_System | cgs | ) |
Uses a copy of the congruences in cgs
to refine this
.
cgs | Contains the congruences used to refine the system of constraints of this . |
Invalid_Argument_Exception | Thrown if this and cgs are dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::intersection_assign | ( | Polyhedron | y | ) |
Assigns to this
the intersection of this
and y
. The result is not guaranteed to be minimized.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::upper_bound_assign | ( | Polyhedron | y | ) |
Assigns to this
the upper bound of this
and y
.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::difference_assign | ( | Polyhedron | y | ) |
Assigns to this
the poly-difference of this
and y
. The result is not guaranteed to be minimized.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::time_elapse_assign | ( | Polyhedron | y | ) |
Assigns to this
the result of computing the time-elapse between this
and y
.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native boolean parma_polyhedra_library::Polyhedron::simplify_using_context_assign | ( | Polyhedron | y | ) |
Assigns to this
a Meet_Preserving_Simplification meet-preserving simplification" of this
with respect to y
. If false
is returned, then the intersection is empty.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::affine_image | ( | Variable | var, | |
Linear_Expression | expr, | |||
Coefficient | denominator | |||
) |
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). |
Invalid_Argument_Exception | Thrown if denominator is zero or if expr and this are dimension-incompatible or if var is not a space dimension of this . |
native void parma_polyhedra_library::Polyhedron::affine_preimage | ( | Variable | var, | |
Linear_Expression | expr, | |||
Coefficient | denominator | |||
) |
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). |
Invalid_Argument_Exception | Thrown if denominator is zero or if expr and this are dimension-incompatible or if var is not a space dimension of this . |
native void parma_polyhedra_library::Polyhedron::bounded_affine_image | ( | Variable | var, | |
Linear_Expression | lb_expr, | |||
Linear_Expression | ub_expr, | |||
Coefficient | denominator | |||
) |
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). |
Invalid_Argument_Exception | 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 . |
native void parma_polyhedra_library::Polyhedron::bounded_affine_preimage | ( | Variable | var, | |
Linear_Expression | lb_expr, | |||
Linear_Expression | ub_expr, | |||
Coefficient | denominator | |||
) |
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). |
Invalid_Argument_Exception | 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 . |
native void parma_polyhedra_library::Polyhedron::generalized_affine_image | ( | Variable | var, | |
Relation_Symbol | relsym, | |||
Linear_Expression | expr, | |||
Coefficient | denominator | |||
) |
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). |
Invalid_Argument_Exception | 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_Polyhedron and relsym is a strict relation symbol. |
native void parma_polyhedra_library::Polyhedron::generalized_affine_preimage | ( | Variable | var, | |
Relation_Symbol | relsym, | |||
Linear_Expression | expr, | |||
Coefficient | denominator | |||
) |
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). |
Invalid_Argument_Exception | 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_Polyhedron and relsym is a strict relation symbol. |
native void parma_polyhedra_library::Polyhedron::generalized_affine_image | ( | Linear_Expression | lhs, | |
Relation_Symbol | relsym, | |||
Linear_Expression | rhs | |||
) |
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. |
Invalid_Argument_Exception | Thrown if this is dimension-incompatible with lhs or rhs or if this is a C_Polyhedron and relsym is a strict relation symbol. |
native void parma_polyhedra_library::Polyhedron::generalized_affine_preimage | ( | Linear_Expression | lhs, | |
Relation_Symbol | relsym, | |||
Linear_Expression | rhs | |||
) |
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. |
Invalid_Argument_Exception | Thrown if this is dimension-incompatible with lhs or rhs or if this is a C_Polyhedron and relsym is a strict relation symbol. |
native void parma_polyhedra_library::Polyhedron::unconstrain_space_dimension | ( | Variable | var | ) |
Computes the cylindrification of this
with respect to space dimension var
, assigning the result to this
.
var | The space dimension that will be unconstrained. |
Invalid_Argument_Exception | Thrown if var is not a space dimension of this . |
native void parma_polyhedra_library::Polyhedron::unconstrain_space_dimensions | ( | Variables_Set | to_be_unconstrained | ) |
Computes the cylindrification of this
with respect to the set of space dimensions to_be_unconstrained
, assigning the result to this
.
to_be_unconstrained | The set of space dimension that will be unconstrained. |
Invalid_Argument_Exception | Thrown if this is dimension-incompatible with one of the Variable objects contained in to_be_removed . |
native void parma_polyhedra_library::Polyhedron::widening_assign | ( | Polyhedron | y, | |
By_Reference< Integer > | tp | |||
) |
Assigns to this
the result of computing the H79-widening between this
and y
.
y | A polyhedron that must be contained in this ; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::swap | ( | Polyhedron | y | ) |
Swaps this
with polyhedron y
. (this
and y
can be dimension-incompatible.).
Invalid_Argument_Exception | Thrown if x and y are topology-incompatible. |
native void parma_polyhedra_library::Polyhedron::add_space_dimensions_and_embed | ( | long | m | ) |
Adds m
new space dimensions and embeds the old polyhedron in the new vector space.
m | The number of dimensions to add. |
Length_Error_Exception | Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension() . |
native void parma_polyhedra_library::Polyhedron::add_space_dimensions_and_project | ( | long | m | ) |
Adds m
new space dimensions to the polyhedron and does not embed it in the new vector space.
m | The number of space dimensions to add. |
Length_Error_Exception | Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension() . |
native void parma_polyhedra_library::Polyhedron::concatenate_assign | ( | Polyhedron | y | ) |
Assigns to this
the concatenation of this
and y
, taken in this order.
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible. | |
Length_Error_Exception | Thrown if the concatenation would cause the vector space to exceed dimension max_space_dimension() . |
native void parma_polyhedra_library::Polyhedron::remove_space_dimensions | ( | Variables_Set | to_be_removed | ) |
Removes all the specified dimensions from the vector space.
to_be_removed | The set of Variable objects corresponding to the space dimensions to be removed. |
Invalid_Argument_Exception | Thrown if this is dimension-incompatible with one of the Variable objects contained in to_be_removed . |
native void parma_polyhedra_library::Polyhedron::remove_higher_space_dimensions | ( | long | new_dimension | ) |
Removes the higher dimensions of the vector space so that the resulting space will have dimension new_dimension
.
Invalid_Argument_Exception | Thrown if new_dimensions is greater than the space dimension of this . |
native void parma_polyhedra_library::Polyhedron::expand_space_dimension | ( | Variable | var, | |
long | 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. |
Invalid_Argument_Exception | Thrown if var does not correspond to a dimension of the vector space. | |
Length_Error_Exception | Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension() . |
native void parma_polyhedra_library::Polyhedron::fold_space_dimensions | ( | Variables_Set | to_be_folded, | |
Variable | var | |||
) |
Folds the space dimensions in to_be_folded
into var
.
to_be_folded | The set of Variable objects corresponding to the space dimensions to be folded; | |
var | The variable corresponding to the space dimension that is the destination of the folding operation. |
Invalid_Argument_Exception | Thrown if this is dimension-incompatible with var or with one of the Variable objects contained in to_be_folded . Also thrown if var is contained in to_be_folded . |
native void parma_polyhedra_library::Polyhedron::map_space_dimensions | ( | Partial_Function | pfunc | ) |
Remaps the dimensions of the vector space according to a partial function.
pfunc | The partial function specifying the destiny of each space dimension. |
native void parma_polyhedra_library::Polyhedron::add_generator | ( | Generator | g | ) |
Adds a copy of generator g
to the system of generators of this
(without minimizing the result).
Invalid_Argument_Exception | Thrown if this and generator g are topology-incompatible or dimension-incompatible, or if this is an empty polyhedron and g is not a point. |
native void parma_polyhedra_library::Polyhedron::add_generators | ( | Generator_System | gs | ) |
Adds a copy of the generators in gs
to the system of generators of this
(without minimizing the result).
gs | Contains the generators that will be added to the system of generators of this . |
Invalid_Argument_Exception | Thrown if this and gs are topology-incompatible or dimension-incompatible, or if this is empty and the system of generators gs is not empty, but has no points. |
native void parma_polyhedra_library::Polyhedron::BHRZ03_widening_assign | ( | Polyhedron | y, | |
By_Reference< Integer > | tp | |||
) |
Assigns to this
the result of computing the BHRZ03-widening between this
and y
.
y | A polyhedron that must be contained in this ; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::H79_widening_assign | ( | Polyhedron | y, | |
By_Reference< Integer > | tp | |||
) |
Assigns to this
the result of computing the H79-widening between this
and y
.
y | A polyhedron that must be contained in this ; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this and y are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::limited_BHRZ03_extrapolation_assign | ( | Polyhedron | y, | |
Constraint_System | cs, | |||
By_Reference< Integer > | tp | |||
) |
Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs
that are satisfied by all the points of this
.
y | A polyhedron that must be contained in this ; | |
cs | The system of constraints used to improve the widened polyhedron; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this , y and cs are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::limited_H79_extrapolation_assign | ( | Polyhedron | y, | |
Constraint_System | cs, | |||
By_Reference< Integer > | tp | |||
) |
Improves the result of the H79-widening computation by also enforcing those constraints in cs
that are satisfied by all the points of this
.
y | A polyhedron that must be contained in this ; | |
cs | The system of constraints used to improve the widened polyhedron; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this , y and cs are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::bounded_BHRZ03_extrapolation_assign | ( | Polyhedron | y, | |
Constraint_System | cs, | |||
By_Reference< Integer > | tp | |||
) |
Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs
that are satisfied by all the points of this
, plus all the constraints of the form and
, with
, that are satisfied by all the points of
this
.
y | A polyhedron that must be contained in this ; | |
cs | The system of constraints used to improve the widened polyhedron; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this , y and cs are topology-incompatible or dimension-incompatible. |
native void parma_polyhedra_library::Polyhedron::bounded_H79_extrapolation_assign | ( | Polyhedron | y, | |
Constraint_System | cs, | |||
By_Reference< Integer > | tp | |||
) |
Improves the result of the H79-widening computation by also enforcing those constraints in cs
that are satisfied by all the points of this
, plus all the constraints of the form and
, with
, that are satisfied by all the points of
this
.
y | A polyhedron that must be contained in this ; | |
cs | The system of constraints used to improve the widened polyhedron; | |
tp | A reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique). |
Invalid_Argument_Exception | Thrown if this , y and cs are topology-incompatible or dimension-incompatible. |