PPL Java Language Interface
1.2
|
A topologically closed convex polyhedron. More...
Public Member Functions | |
Standard Constructors and Destructor | |
C_Polyhedron (long d, Degenerate_Element kind) | |
Builds a new C polyhedron of dimension d . More... | |
C_Polyhedron (C_Polyhedron y) | |
Builds a new C polyhedron that is copy of y . | |
C_Polyhedron (C_Polyhedron y, Complexity_Class complexity) | |
Builds a new C polyhedron that is a copy of ph . More... | |
C_Polyhedron (Constraint_System cs) | |
Builds a new C polyhedron from the system of constraints cs . More... | |
C_Polyhedron (Congruence_System cgs) | |
Builds a new C polyhedron from the system of congruences cgs . More... | |
native void | free () |
Releases all resources managed by this , also resetting it to a null reference. | |
Constructors Behaving as Conversion Operators | |
Besides the conversions listed here below, the library also provides conversion operators that build a semantic geometric description starting from any other semantic geometric description (e.g., | |
C_Polyhedron (NNC_Polyhedron y) | |
Builds a C polyhedron that is a copy of the topological closure of the NNC polyhedron y . | |
C_Polyhedron (NNC_Polyhedron y, Complexity_Class complexity) | |
Builds a C polyhedron that is a copy of the topological closure of the NNC polyhedron y . More... | |
C_Polyhedron (Generator_System gs) | |
Builds a new C polyhedron from the system of generators gs . More... | |
Other Methods | |
native boolean | upper_bound_assign_if_exact (C_Polyhedron y) |
If the upper bound of this and y is exact it is assigned to this and true is returned; otherwise false is returned. More... | |
![]() | |
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 . 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. | |
boolean | equals (Object y) |
Returns true if and only if this and y are equal. | |
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 . | |
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 . More... | |
native boolean | OK () |
Checks if all the invariants are satisfied. | |
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. | |
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... | |
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... | |
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). 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. | |
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 . 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... | |
Static Public Member Functions | |
static native Pair< C_Polyhedron, Pointset_Powerset_NNC_Polyhedron > | linear_partition (C_Polyhedron p, C_Polyhedron q) |
Partitions q with respect to p . More... | |
Protected Member Functions | |
native void | finalize () |
Releases all resources managed by this . | |
A topologically closed convex polyhedron.
parma_polyhedra_library.C_Polyhedron.C_Polyhedron | ( | long | d, |
Degenerate_Element | kind | ||
) |
Builds a new C polyhedron of dimension d
.
If kind
is EMPTY
, the newly created polyhedron will be empty; otherwise, it will be a universe polyhedron.
parma_polyhedra_library.C_Polyhedron.C_Polyhedron | ( | C_Polyhedron | y, |
Complexity_Class | complexity | ||
) |
Builds a new C polyhedron that is a copy of ph
.
The complexity argument is ignored.
parma_polyhedra_library.C_Polyhedron.C_Polyhedron | ( | Constraint_System | cs | ) |
Builds a new C polyhedron from the system of constraints cs
.
The new polyhedron will inherit the space dimension of cs
.
parma_polyhedra_library.C_Polyhedron.C_Polyhedron | ( | Congruence_System | cgs | ) |
Builds a new C polyhedron from the system of congruences cgs
.
The new polyhedron will inherit the space dimension of cgs
.
parma_polyhedra_library.C_Polyhedron.C_Polyhedron | ( | NNC_Polyhedron | y, |
Complexity_Class | complexity | ||
) |
Builds a C polyhedron that is a copy of the topological closure of the NNC polyhedron y
.
The complexity argument is ignored, since the exact constructor has polynomial complexity.
parma_polyhedra_library.C_Polyhedron.C_Polyhedron | ( | Generator_System | gs | ) |
Builds a new C polyhedron from the system of generators gs
.
The new polyhedron will inherit the space dimension of gs
.
native boolean parma_polyhedra_library.C_Polyhedron.upper_bound_assign_if_exact | ( | C_Polyhedron | y | ) |
If the upper bound of this
and y
is exact it is assigned to this
and true
is returned; otherwise false
is returned.
Invalid_Argument_Exception | Thrown if this and y are dimension-incompatible. |
|
static |
Partitions q
with respect to p
.
Let p
and q
be two polyhedra. The function returns a pair object r
such that
r.first
is the intersection of p
and q
;r.second
has the property that all its elements are pairwise disjoint and disjoint from p
;r.first
with all the elements of r.second
gives q
(i.e., r
is the representation of a partition of q
).