PPL Java Language Interface  1.2
parma_polyhedra_library.C_Polyhedron Class Reference

A topologically closed convex polyhedron. More...

Inheritance diagram for parma_polyhedra_library.C_Polyhedron:
Collaboration diagram for parma_polyhedra_library.C_Polyhedron:

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. More...
 
 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. More...
 
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., Grid(C_Polyhedron y), C_Polyhedron(BD_Shape_mpq_class y), etc.). Clearly, the conversion operators are only available if both the source and the target semantic geometric descriptions have been enabled when configuring the library. The conversions also taking as argument a complexity class sometimes provide non-trivial precision/efficiency trade-offs.

 C_Polyhedron (NNC_Polyhedron y)
 Builds a C polyhedron that is a copy of the topological closure of the NNC polyhedron y. More...
 
 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...
 
- Public Member Functions inherited from parma_polyhedra_library.Polyhedron
native long space_dimension ()
 Returns the dimension of the vector space enclosing this. More...
 
native long affine_dimension ()
 Returns $0$, if 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...
 
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 $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$. More...
 
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 $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$. More...
 
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 $\mathrm{var}' \relsym \frac{\mathrm{expr}}{\mathrm{denominator}}$, where $\mathord{\relsym}$ is the relation symbol encoded by 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 $\mathrm{var}' \relsym \frac{\mathrm{expr}}{\mathrm{denominator}}$, where $\mathord{\relsym}$ is the relation symbol encoded by 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 $\mathrm{lhs}' \relsym \mathrm{rhs}$, where $\mathord{\relsym}$ is the relation symbol encoded by 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 $\mathrm{lhs}' \relsym \mathrm{rhs}$, where $\mathord{\relsym}$ is the relation symbol encoded by 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. 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 $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of 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 $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of 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. More...
 
- Protected Member Functions inherited from parma_polyhedra_library.PPL_Object
 PPL_Object ()
 Builds an object that points to `null'. More...
 

Detailed Description

A topologically closed convex polyhedron.

Definition at line 1059 of file Fake_Class_for_Doxygen.java.

Constructor & Destructor Documentation

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)

Builds a new C polyhedron that is copy of y.

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)

Builds a C polyhedron that is a copy of the topological closure of the NNC polyhedron y.

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.

Member Function Documentation

native void parma_polyhedra_library.C_Polyhedron.finalize ( )
protected

Releases all resources managed by this.

native void parma_polyhedra_library.C_Polyhedron.free ( )

Releases all resources managed by this, also resetting it to a null reference.

static native Pair<C_Polyhedron, Pointset_Powerset_NNC_Polyhedron> parma_polyhedra_library.C_Polyhedron.linear_partition ( C_Polyhedron  p,
C_Polyhedron  q 
)
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;
  • the set-theoretical union of r.first with all the elements of r.second gives q (i.e., r is the representation of a partition of q).
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.

Exceptions
Invalid_Argument_ExceptionThrown if this and y are dimension-incompatible.

The documentation for this class was generated from the following file: