PPL Java Language Interface
1.2
|
The Java base class for (C and NNC) convex polyhedra. More...
Public Member Functions | |
Member Functions that Do Not Modify the Polyhedron | |
native long | space_dimension () |
Returns the dimension of the vector space enclosing this . More... | |
native long | affine_dimension () |
Returns ![]() this is empty; otherwise, returns the affine dimension of this . More... | |
native Constraint_System | constraints () |
Returns the system of constraints. More... | |
native Congruence_System | congruences () |
Returns a system of (equality) congruences satisfied by this . More... | |
native Constraint_System | minimized_constraints () |
Returns the system of constraints, with no redundant constraint. More... | |
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 . More... | |
native boolean | is_empty () |
Returns true if and only if this is an empty polyhedron. More... | |
native boolean | is_universe () |
Returns true if and only if this is a universe polyhedron. More... | |
native boolean | is_bounded () |
Returns true if and only if this is a bounded polyhedron. More... | |
native boolean | is_discrete () |
Returns true if and only if this is discrete. More... | |
native boolean | is_topologically_closed () |
Returns true if and only if this is a topologically closed subset of the vector space. More... | |
native boolean | contains_integer_point () |
Returns true if and only if this contains at least one integer point. More... | |
native boolean | constrains (Variable var) |
Returns true if and only if var is constrained in this . More... | |
native boolean | bounds_from_above (Linear_Expression expr) |
Returns true if and only if expr is bounded from above in this . More... | |
native boolean | bounds_from_below (Linear_Expression expr) |
Returns true if and only if expr is bounded from below in this . More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
native Poly_Con_Relation | relation_with (Constraint c) |
Returns the relations holding between the polyhedron this and the constraint c . More... | |
native Poly_Gen_Relation | relation_with (Generator c) |
Returns the relations holding between the polyhedron this and the generator g . More... | |
native Poly_Con_Relation | relation_with (Congruence c) |
Returns the relations holding between the polyhedron this and the congruence c . More... | |
native boolean | contains (Polyhedron y) |
Returns true if and only if this contains y . More... | |
native boolean | strictly_contains (Polyhedron y) |
Returns true if and only if this strictly contains y . More... | |
native boolean | is_disjoint_from (Polyhedron y) |
Returns true if and only if this and y are disjoint. More... | |
native boolean | equals (Polyhedron y) |
Returns true if and only if this and y are equal. More... | |
boolean | equals (Object y) |
Returns true if and only if this and y are equal. More... | |
native int | hashCode () |
Returns a hash code for this . More... | |
native long | external_memory_in_bytes () |
Returns the size in bytes of the memory managed by this . More... | |
native long | total_memory_in_bytes () |
Returns the total size in bytes of the memory occupied by this . More... | |
native String | toString () |
Returns a string representing this . More... | |
native String | ascii_dump () |
Returns a string containing a low-level representation of this . More... | |
native boolean | OK () |
Checks if all the invariants are satisfied. More... | |
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). More... | |
native void | add_congruence (Congruence cg) |
Adds a copy of congruence cg to this , if cg can be exactly represented by a polyhedron. More... | |
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). More... | |
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. More... | |
native void | refine_with_constraint (Constraint c) |
Uses a copy of constraint c to refine this . More... | |
native void | refine_with_congruence (Congruence cg) |
Uses a copy of congruence cg to refine this . More... | |
native void | refine_with_constraints (Constraint_System cs) |
Uses a copy of the constraints in cs to refine this . More... | |
native void | refine_with_congruences (Congruence_System cgs) |
Uses a copy of the congruences in cgs to refine this . More... | |
native void | intersection_assign (Polyhedron y) |
Assigns to this the intersection of this and y . The result is not guaranteed to be minimized. More... | |
native void | upper_bound_assign (Polyhedron y) |
Assigns to this the upper bound of this and y . More... | |
native void | difference_assign (Polyhedron y) |
Assigns to this the poly-difference of this and y . The result is not guaranteed to be minimized. More... | |
native void | time_elapse_assign (Polyhedron y) |
Assigns to this the result of computing the time-elapse between this and y . More... | |
native void | topological_closure_assign () |
Assigns to this its topological closure. More... | |
native boolean | simplify_using_context_assign (Polyhedron y) |
Assigns to this a meet-preserving simplification of this with respect to y . If false is returned, then the intersection is empty. More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
native void | unconstrain_space_dimension (Variable var) |
Computes the cylindrification of this with respect to space dimension var , assigning the result to this . More... | |
native void | unconstrain_space_dimensions (Variables_Set vars) |
Computes the cylindrification of this with respect to the set of space dimensions vars , assigning the result to this . More... | |
native void | widening_assign (Polyhedron y, By_Reference< Integer > tp) |
Assigns to this the result of computing the H79-widening between this and y . More... | |
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.) More... | |
native void | add_space_dimensions_and_embed (long m) |
Adds m new space dimensions and embeds the old polyhedron in the new vector space. More... | |
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. More... | |
native void | concatenate_assign (Polyhedron y) |
Assigns to this the concatenation of this and y , taken in this order. More... | |
native void | remove_space_dimensions (Variables_Set vars) |
Removes all the specified dimensions from the vector space. More... | |
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 . More... | |
native void | expand_space_dimension (Variable var, long m) |
Creates m copies of the space dimension corresponding to var . More... | |
native void | fold_space_dimensions (Variables_Set vars, Variable dest) |
Folds the space dimensions in vars into dest . More... | |
native void | map_space_dimensions (Partial_Function pfunc) |
Remaps the dimensions of the vector space according to a partial function. More... | |
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. More... | |
native Generator_System | minimized_generators () |
Returns the system of generators, with no redundant generator. More... | |
native void | add_generator (Generator g) |
Adds a copy of generator g to the system of generators of this (without minimizing the result). More... | |
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). More... | |
native void | poly_hull_assign (Polyhedron y) |
Same as upper_bound_assign. More... | |
native void | poly_difference_assign (Polyhedron y) |
Same as difference_assign. More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
Additional Inherited Members | |
![]() | |
PPL_Object () | |
Builds an object that points to `null'. More... | |
The Java base class for (C and NNC) convex polyhedra.
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.
Definition at line 38 of file Fake_Class_for_Doxygen.java.
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_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.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_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_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.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 long parma_polyhedra_library.Polyhedron.affine_dimension | ( | ) |
Returns , if
this
is empty; otherwise, returns the affine dimension of this
.
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 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.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.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.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. |
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 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 Congruence_System parma_polyhedra_library.Polyhedron.congruences | ( | ) |
Returns a system of (equality) congruences satisfied by this
.
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 Constraint_System parma_polyhedra_library.Polyhedron.constraints | ( | ) |
Returns the system of constraints.
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.contains_integer_point | ( | ) |
Returns true
if and only if this
contains at least one integer point.
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 boolean parma_polyhedra_library.Polyhedron.equals | ( | Polyhedron | y | ) |
Returns true
if and only if this
and y
are equal.
boolean parma_polyhedra_library.Polyhedron.equals | ( | Object | y | ) |
Returns true
if and only if this
and y
are equal.
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 long parma_polyhedra_library.Polyhedron.external_memory_in_bytes | ( | ) |
Returns the size in bytes of the memory managed by this
.
native void parma_polyhedra_library.Polyhedron.fold_space_dimensions | ( | 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. |
Invalid_Argument_Exception | 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 . |
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_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 | ( | 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_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 Generator_System parma_polyhedra_library.Polyhedron.generators | ( | ) |
Returns the system of generators.
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 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 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 boolean parma_polyhedra_library.Polyhedron.is_bounded | ( | ) |
Returns true
if and only if this
is a bounded polyhedron.
native boolean parma_polyhedra_library.Polyhedron.is_discrete | ( | ) |
Returns true
if and only if this
is discrete.
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 boolean parma_polyhedra_library.Polyhedron.is_empty | ( | ) |
Returns true
if and only if this
is an empty polyhedron.
native boolean parma_polyhedra_library.Polyhedron.is_topologically_closed | ( | ) |
Returns true
if and only if this
is a topologically closed subset of the vector space.
native boolean parma_polyhedra_library.Polyhedron.is_universe | ( | ) |
Returns true
if and only if this
is a universe polyhedron.
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.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 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. |
If 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.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. |
If 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 | ||
) |
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. |
If 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.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. |
If 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 Congruence_System parma_polyhedra_library.Polyhedron.minimized_congruences | ( | ) |
Returns a system of (equality) congruences satisfied by this
, with no redundant congruences and having the same affine dimension as this
.
native Constraint_System parma_polyhedra_library.Polyhedron.minimized_constraints | ( | ) |
Returns the system of constraints, with no redundant constraint.
native Generator_System parma_polyhedra_library.Polyhedron.minimized_generators | ( | ) |
Returns the system of generators, with no redundant generator.
native boolean parma_polyhedra_library.Polyhedron.OK | ( | ) |
Checks if all the invariants are satisfied.
native void parma_polyhedra_library.Polyhedron.poly_difference_assign | ( | Polyhedron | y | ) |
Same as difference_assign.
native void parma_polyhedra_library.Polyhedron.poly_hull_assign | ( | Polyhedron | y | ) |
Same as upper_bound_assign.
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_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.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_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 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 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.remove_space_dimensions | ( | Variables_Set | vars | ) |
Removes all the specified dimensions from the vector space.
vars | 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 vars . |
native boolean parma_polyhedra_library.Polyhedron.simplify_using_context_assign | ( | Polyhedron | y | ) |
Assigns to this
a 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 long parma_polyhedra_library.Polyhedron.space_dimension | ( | ) |
Returns the dimension of the vector space enclosing this
.
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 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.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 void parma_polyhedra_library.Polyhedron.topological_closure_assign | ( | ) |
Assigns to this
its topological closure.
native String parma_polyhedra_library.Polyhedron.toString | ( | ) |
Returns a string representing this
.
native long parma_polyhedra_library.Polyhedron.total_memory_in_bytes | ( | ) |
Returns the total size in bytes of the memory occupied by this
.
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 | vars | ) |
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. |
Invalid_Argument_Exception | Thrown if this is dimension-incompatible with one of the Variable objects contained in vars . |
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.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. |