PPL Java Language Interface  1.2
parma_polyhedra_library.Polyhedron Class Reference

The Java base class for (C and NNC) convex polyhedra. More...

Inheritance diagram for parma_polyhedra_library.Polyhedron:
Collaboration diagram for parma_polyhedra_library.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. 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...
 
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 $\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...
 
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 $\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...
 

Additional Inherited Members

- Protected Member Functions inherited from parma_polyhedra_library.PPL_Object
 PPL_Object ()
 Builds an object that points to `null'. More...
 

Detailed Description

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.

Member Function Documentation

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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
cgsThe congruences to be added.
Exceptions
Invalid_Argument_ExceptionThrown 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).

Parameters
cThe constraint that will be added to the system of constraints of this.
Exceptions
Invalid_Argument_ExceptionThrown 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).

Parameters
csContains the constraints that will be added to the system of constraints of this.
Exceptions
Invalid_Argument_ExceptionThrown 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).

Exceptions
Invalid_Argument_ExceptionThrown 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).

Parameters
gsContains the generators that will be added to the system of generators of this.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
mThe number of dimensions to add.
Exceptions
Length_Error_ExceptionThrown 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.

Parameters
mThe number of space dimensions to add.
Exceptions
Length_Error_ExceptionThrown 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 $0$, 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.

Parameters
varThe variable to which the affine expression is assigned;
exprThe numerator of the affine expression;
denominatorThe denominator of the affine expression (optional argument with default value 1).
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
varThe variable to which the affine expression is substituted;
exprThe numerator of the affine expression;
denominatorThe denominator of the affine expression (optional argument with default value 1).
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
yA polyhedron that must be contained in this;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown 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 $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$.

Parameters
varThe variable updated by the affine relation;
lb_exprThe numerator of the lower bounding affine expression;
ub_exprThe numerator of the upper bounding affine expression;
denominatorThe (common) denominator for the lower and upper bounding affine expressions (optional argument with default value 1).
Exceptions
Invalid_Argument_ExceptionThrown 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 $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$.

Parameters
varThe variable updated by the affine relation;
lb_exprThe numerator of the lower bounding affine expression;
ub_exprThe numerator of the upper bounding affine expression;
denominatorThe (common) denominator for the lower and upper bounding affine expressions (optional argument with default value 1).
Exceptions
Invalid_Argument_ExceptionThrown 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 $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of this.

Parameters
yA polyhedron that must be contained in this;
csThe system of constraints used to improve the widened polyhedron;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown 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 $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of this.

Parameters
yA polyhedron that must be contained in this;
csThe system of constraints used to improve the widened polyhedron;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown if this and y are topology-incompatible.
Length_Error_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

native void parma_polyhedra_library.Polyhedron.expand_space_dimension ( Variable  var,
long  m 
)

Creates m copies of the space dimension corresponding to var.

Parameters
varThe variable corresponding to the space dimension to be replicated;
mThe number of replicas to be created.
Exceptions
Invalid_Argument_ExceptionThrown if var does not correspond to a dimension of the vector space.
Length_Error_ExceptionThrown 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.

Parameters
varsThe set of Variable objects corresponding to the space dimensions to be folded;
destThe variable corresponding to the space dimension that is the destination of the folding operation.
Exceptions
Invalid_Argument_ExceptionThrown 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 $\mathrm{var}' \relsym \frac{\mathrm{expr}}{\mathrm{denominator}}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters
varThe left hand side variable of the generalized affine relation;
relsymThe relation symbol;
exprThe numerator of the right hand side affine expression;
denominatorThe denominator of the right hand side affine expression (optional argument with default value 1).
Exceptions
Invalid_Argument_ExceptionThrown 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 $\mathrm{lhs}' \relsym \mathrm{rhs}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters
lhsThe left hand side affine expression;
relsymThe relation symbol;
rhsThe right hand side affine expression.
Exceptions
Invalid_Argument_ExceptionThrown 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 $\mathrm{var}' \relsym \frac{\mathrm{expr}}{\mathrm{denominator}}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters
varThe left hand side variable of the generalized affine relation;
relsymThe relation symbol;
exprThe numerator of the right hand side affine expression;
denominatorThe denominator of the right hand side affine expression (optional argument with default value 1).
Exceptions
Invalid_Argument_ExceptionThrown 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 $\mathrm{lhs}' \relsym \mathrm{rhs}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters
lhsThe left hand side affine expression;
relsymThe relation symbol;
rhsThe right hand side affine expression.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
yA polyhedron that must be contained in this;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
yA polyhedron that must be contained in this;
csThe system of constraints used to improve the widened polyhedron;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
yA polyhedron that must be contained in this;
csThe system of constraints used to improve the widened polyhedron;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
pfuncThe 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.

Parameters
exprThe linear expression to be maximized subject to this;
sup_nThe numerator of the supremum value;
sup_dThe denominator of the supremum value;
maximumtrue if and only if the supremum is also the maximum value.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
exprThe linear expression to be maximized subject to this;
sup_nThe numerator of the supremum value;
sup_dThe denominator of the supremum value;
maximumtrue if and only if the supremum is also the maximum value;
gWhen maximization succeeds, will be assigned the point or closure point where expr reaches its supremum value.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
exprThe linear expression to be minimized subject to this;
inf_nThe numerator of the infimum value;
inf_dThe denominator of the infimum value;
minimumtrue if and only if the infimum is also the minimum value.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
exprThe linear expression to be minimized subject to this;
inf_nThe numerator of the infimum value;
inf_dThe denominator of the infimum value;
minimumtrue if and only if the infimum is also the minimum value;
gWhen minimization succeeds, will be assigned a point or closure point where expr reaches its infimum value.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
cgsContains the congruences used to refine the system of constraints of this.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
csContains the constraints used to refine the system of constraints of this.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
varsThe set of Variable objects corresponding to the space dimensions to be removed.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.)

Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
varThe space dimension that will be unconstrained.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
varsThe set of space dimension that will be unconstrained.
Exceptions
Invalid_Argument_ExceptionThrown 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.

Exceptions
Invalid_Argument_ExceptionThrown 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.

Parameters
yA polyhedron that must be contained in this;
tpA reference to an unsigned variable storing the number of available tokens (to be used when applying the widening with tokens delay technique).
Exceptions
Invalid_Argument_ExceptionThrown if this and y are topology-incompatible or dimension-incompatible.

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