parma_polyhedra_library::Polyhedron Class Reference
[Java Language Interface]

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

Inherits parma_polyhedra_library::PPL_Object.

Inherited by parma_polyhedra_library::C_Polyhedron.

List of all members.

Public Member Functions

Member Functions that Do Not Modify the Polyhedron
native long space_dimension ()
 Returns the dimension of the vector space enclosing this.
native long affine_dimension ()
 Returns $0$, if this is empty; otherwise, returns the affine dimension of this.
native Constraint_System constraints ()
 Returns the system of constraints.
native Congruence_System congruences ()
 Returns a system of (equality) congruences satisfied by this.
native Constraint_System minimized_constraints ()
 Returns the system of constraints, with no redundant constraint.
native Congruence_System minimized_congruences ()
 Returns a system of (equality) congruences satisfied by this, with no redundant congruences and having the same affine dimension as this.
native boolean is_empty ()
 Returns true if and only if this is an empty polyhedron.
native boolean is_universe ()
 Returns true if and only if this is a universe polyhedron.
native boolean is_bounded ()
 Returns true if and only if this is a bounded polyhedron.
native boolean is_discrete ()
 Returns true if and only if this is discrete.
native boolean is_topologically_closed ()
 Returns true if and only if this is a topologically closed subset of the vector space.
native boolean contains_integer_point ()
 Returns true if and only if this contains at least one integer point.
native boolean constrains (Variable var)
 Returns true if and only if var is constrained in this.
native boolean bounds_from_above (Linear_Expression expr)
 Returns true if and only if expr is bounded from above in this.
native boolean bounds_from_below (Linear_Expression expr)
 Returns true if and only if expr is bounded from below in this.
native boolean maximize (Linear_Expression expr, Coefficient sup_n, Coefficient sup_d, By_Reference< Boolean > maximum)
 Returns true if and only if this is not empty and expr is bounded from above in this, in which case the supremum value is computed.
native boolean minimize (Linear_Expression expr, Coefficient inf_n, Coefficient inf_d, By_Reference< Boolean > minimum)
 Returns true if and only if this is not empty and expr is bounded from below in this, in which case the infimum value is computed.
native boolean maximize (Linear_Expression expr, Coefficient sup_n, Coefficient sup_d, By_Reference< Boolean > maximum, Generator g)
 Returns true if and only if this is not empty and expr is bounded from above in this, in which case the supremum value and a point where expr reaches it are computed.
native boolean minimize (Linear_Expression expr, Coefficient inf_n, Coefficient inf_d, By_Reference< Boolean > minimum, Generator g)
 Returns true if and only if this is not empty and expr is bounded from below in this, in which case the infimum value and a point where expr reaches it are computed.
native Poly_Con_Relation relation_with (Constraint c)
 Returns the relations holding between the polyhedron this and the constraint c.
native Poly_Gen_Relation relation_with (Generator c)
 Returns the relations holding between the polyhedron this and the generator g.
native Poly_Con_Relation relation_with (Congruence c)
 Returns the relations holding between the polyhedron this and the congruence c.
native boolean contains (Polyhedron y)
 Returns true if and only if this contains y.
native boolean strictly_contains (Polyhedron y)
 Returns true if and only if this strictly contains y.
native boolean is_disjoint_from (Polyhedron y)
 Returns true if and only if this and y are disjoint.
native boolean equals (Polyhedron y)
 Returns true if and only if this and y are equal.
boolean equals (Object y)
 Returns true if and only if this and y are equal.
native int hashCode ()
 Returns a hash code for this.
native long external_memory_in_bytes ()
 Returns the size in bytes of the memory managed by this.
native long total_memory_in_bytes ()
 Returns the total size in bytes of the memory occupied by this.
native String toString ()
 Returns a string representing this.
native String ascii_dump ()
 Returns a string containing a low-level representation of this.
native boolean OK ()
 Checks if all the invariants are satisfied.
Space Dimension Preserving Member Functions that May Modify the Polyhedron
native void add_constraint (Constraint c)
 Adds a copy of constraint c to the system of constraints of this (without minimizing the result).
native void add_congruence (Congruence cg)
 Adds a copy of congruence cg to this, if cg can be exactly represented by a polyhedron.
native void add_constraints (Constraint_System cs)
 Adds a copy of the constraints in cs to the system of constraints of this (without minimizing the result).
native void add_congruences (Congruence_System cgs)
 Adds a copy of the congruences in cgs to this, if all the congruences can be exactly represented by a polyhedron.
native void refine_with_constraint (Constraint c)
 Uses a copy of constraint c to refine this.
native void refine_with_congruence (Congruence cg)
 Uses a copy of congruence cg to refine this.
native void refine_with_constraints (Constraint_System cs)
 Uses a copy of the constraints in cs to refine this.
native void refine_with_congruences (Congruence_System cgs)
 Uses a copy of the congruences in cgs to refine this.
native void intersection_assign (Polyhedron y)
 Assigns to this the intersection of this and y. The result is not guaranteed to be minimized.
native void upper_bound_assign (Polyhedron y)
 Assigns to this the upper bound of this and y.
native void difference_assign (Polyhedron y)
 Assigns to this the poly-difference of this and y. The result is not guaranteed to be minimized.
native void time_elapse_assign (Polyhedron y)
 Assigns to this the result of computing the time-elapse between this and y.
native void topological_closure_assign ()
 Assigns to this its topological closure.
native boolean simplify_using_context_assign (Polyhedron y)
 Assigns to this a Meet_Preserving_Simplification meet-preserving simplification" of this with respect to y. If false is returned, then the intersection is empty.
native void affine_image (Variable var, Linear_Expression expr, Coefficient denominator)
 Assigns to this the affine image of this under the function mapping variable var to the affine expression specified by expr and denominator.
native void affine_preimage (Variable var, Linear_Expression expr, Coefficient denominator)
 Assigns to this the affine preimage of this under the function mapping variable var to the affine expression specified by expr and denominator.
native void bounded_affine_image (Variable var, Linear_Expression lb_expr, Linear_Expression ub_expr, Coefficient denominator)
 Assigns to this the image of this with respect to the bounded affine relation $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$.
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}}$.
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.
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.
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.
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.
native void unconstrain_space_dimension (Variable var)
 Computes the cylindrification of this with respect to space dimension var, assigning the result to this.
native void unconstrain_space_dimensions (Variables_Set to_be_unconstrained)
 Computes the cylindrification of this with respect to the set of space dimensions to_be_unconstrained, assigning the result to this.
native void widening_assign (Polyhedron y, By_Reference< Integer > tp)
 Assigns to this the result of computing the H79-widening between this and y.
Member Functions that May Modify the Dimension of the Vector Space
native void swap (Polyhedron y)
 Swaps this with polyhedron y. (this and y can be dimension-incompatible.).
native void add_space_dimensions_and_embed (long m)
 Adds m new space dimensions and embeds the old polyhedron in the new vector space.
native void add_space_dimensions_and_project (long m)
 Adds m new space dimensions to the polyhedron and does not embed it in the new vector space.
native void concatenate_assign (Polyhedron y)
 Assigns to this the concatenation of this and y, taken in this order.
native void remove_space_dimensions (Variables_Set to_be_removed)
 Removes all the specified dimensions from the vector space.
native void remove_higher_space_dimensions (long new_dimension)
 Removes the higher dimensions of the vector space so that the resulting space will have dimension new_dimension.
native void expand_space_dimension (Variable var, long m)
 Creates m copies of the space dimension corresponding to var.
native void fold_space_dimensions (Variables_Set to_be_folded, Variable var)
 Folds the space dimensions in to_be_folded into var.
native void map_space_dimensions (Partial_Function pfunc)
 Remaps the dimensions of the vector space according to a partial function.
Ad Hoc Functions for (C or NNC) Polyhedra
The functions listed here below, being specific of the polyhedron domains, do not have a correspondence in other semantic geometric descriptions.

native Generator_System generators ()
 Returns the system of generators.
native Generator_System minimized_generators ()
 Returns the system of generators, with no redundant generator.
native void add_generator (Generator g)
 Adds a copy of generator g to the system of generators of this (without minimizing the result).
native void add_generators (Generator_System gs)
 Adds a copy of the generators in gs to the system of generators of this (without minimizing the result).
native void poly_hull_assign (Polyhedron y)
 Same as upper_bound_assign.
native void poly_difference_assign (Polyhedron y)
 Same as difference_assign.
native void BHRZ03_widening_assign (Polyhedron y, By_Reference< Integer > tp)
 Assigns to this the result of computing the BHRZ03-widening between this and y.
native void H79_widening_assign (Polyhedron y, By_Reference< Integer > tp)
 Assigns to this the result of computing the H79-widening between this and y.
native void limited_BHRZ03_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp)
 Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this.
native void limited_H79_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp)
 Improves the result of the H79-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this.
native void bounded_BHRZ03_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp)
 Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this, plus all the constraints of the form $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of this.
native void bounded_H79_extrapolation_assign (Polyhedron y, Constraint_System cs, By_Reference< Integer > tp)
 Improves the result of the H79-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this, plus all the constraints of the form $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of this.


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.


Member Function Documentation

native boolean parma_polyhedra_library::Polyhedron::constrains ( Variable  var  ) 

Returns true if and only if var is constrained in this.

Exceptions:
Invalid_Argument_Exception Thrown if var is not a space dimension of this.

native boolean parma_polyhedra_library::Polyhedron::bounds_from_above ( Linear_Expression  expr  ) 

Returns true if and only if expr is bounded from above in this.

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

Exceptions:
Invalid_Argument_Exception Thrown if expr and this are dimension-incompatible.

native boolean parma_polyhedra_library::Polyhedron::maximize ( Linear_Expression  expr,
Coefficient  sup_n,
Coefficient  sup_d,
By_Reference< Boolean >  maximum 
)

Returns true if and only if this is not empty and expr is bounded from above in this, in which case the supremum value is computed.

Parameters:
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.
Exceptions:
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::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:
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.
Exceptions:
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::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:
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.
Exceptions:
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,
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:
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.
Exceptions:
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 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_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.

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

Exceptions:
Invalid_Argument_Exception Thrown if this and congruence c are dimension-incompatible.

native boolean parma_polyhedra_library::Polyhedron::contains ( Polyhedron  y  ) 

Returns true if and only if this contains y.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native boolean parma_polyhedra_library::Polyhedron::strictly_contains ( Polyhedron  y  ) 

Returns true if and only if this strictly contains y.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native boolean parma_polyhedra_library::Polyhedron::is_disjoint_from ( Polyhedron  y  ) 

Returns true if and only if this and y are disjoint.

Exceptions:
Invalid_Argument_Exception Thrown if x and y are topology-incompatible or dimension-incompatible.

native int parma_polyhedra_library::Polyhedron::hashCode (  ) 

Returns a hash code for this.

If x and y are such that x == y, then x.hash_code() == y.hash_code().

native String parma_polyhedra_library::Polyhedron::ascii_dump (  ) 

Returns a string containing a low-level representation of this.

Useful for debugging purposes.

native void parma_polyhedra_library::Polyhedron::add_constraint ( Constraint  c  ) 

Adds a copy of constraint c to the system of constraints of this (without minimizing the result).

Parameters:
c The constraint that will be added to the system of constraints of this.
Exceptions:
Invalid_Argument_Exception Thrown if this and constraint c are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::add_congruence ( Congruence  cg  ) 

Adds a copy of congruence cg to this, if cg can be exactly represented by a polyhedron.

Exceptions:
Invalid_Argument_Exception Thrown if this and congruence cg are dimension-incompatible, of if cg is a proper congruence which is neither a tautology, nor a contradiction.

native void parma_polyhedra_library::Polyhedron::add_constraints ( Constraint_System  cs  ) 

Adds a copy of the constraints in cs to the system of constraints of this (without minimizing the result).

Parameters:
cs Contains the constraints that will be added to the system of constraints of this.
Exceptions:
Invalid_Argument_Exception Thrown if this and cs are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::add_congruences ( Congruence_System  cgs  ) 

Adds a copy of the congruences in cgs to this, if all the congruences can be exactly represented by a polyhedron.

Parameters:
cgs The congruences to be added.
Exceptions:
Invalid_Argument_Exception Thrown if this and cgs are dimension-incompatible, of if there exists in cgs a proper congruence which is neither a tautology, nor a contradiction.

native void parma_polyhedra_library::Polyhedron::refine_with_constraint ( Constraint  c  ) 

Uses a copy of constraint c to refine this.

Exceptions:
Invalid_Argument_Exception Thrown if this and constraint c are dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::refine_with_congruence ( Congruence  cg  ) 

Uses a copy of congruence cg to refine this.

Exceptions:
Invalid_Argument_Exception Thrown if this and congruence cg are dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::refine_with_constraints ( Constraint_System  cs  ) 

Uses a copy of the constraints in cs to refine this.

Parameters:
cs Contains the constraints used to refine the system of constraints of this.
Exceptions:
Invalid_Argument_Exception Thrown if this and cs are dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::refine_with_congruences ( Congruence_System  cgs  ) 

Uses a copy of the congruences in cgs to refine this.

Parameters:
cgs Contains the congruences used to refine the system of constraints of this.
Exceptions:
Invalid_Argument_Exception Thrown if this and cgs are dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::intersection_assign ( Polyhedron  y  ) 

Assigns to this the intersection of this and y. The result is not guaranteed to be minimized.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::upper_bound_assign ( Polyhedron  y  ) 

Assigns to this the upper bound of this and y.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::difference_assign ( Polyhedron  y  ) 

Assigns to this the poly-difference of this and y. The result is not guaranteed to be minimized.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::time_elapse_assign ( Polyhedron  y  ) 

Assigns to this the result of computing the time-elapse between this and y.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native boolean parma_polyhedra_library::Polyhedron::simplify_using_context_assign ( Polyhedron  y  ) 

Assigns to this a Meet_Preserving_Simplification meet-preserving simplification" of this with respect to y. If false is returned, then the intersection is empty.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::affine_image ( Variable  var,
Linear_Expression  expr,
Coefficient  denominator 
)

Assigns to this the affine image of this under the function mapping variable var to the affine expression specified by expr and denominator.

Parameters:
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).
Exceptions:
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.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if denominator is zero or if expr and this are dimension-incompatible or if var is not a space dimension of this.

native void parma_polyhedra_library::Polyhedron::bounded_affine_image ( Variable  var,
Linear_Expression  lb_expr,
Linear_Expression  ub_expr,
Coefficient  denominator 
)

Assigns to this the image of this with respect to the bounded affine relation $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$.

Parameters:
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).
Exceptions:
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 $\frac{\mathrm{lb\_expr}}{\mathrm{denominator}} \leq \mathrm{var}' \leq \frac{\mathrm{ub\_expr}}{\mathrm{denominator}}$.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if denominator is zero or if lb_expr (resp., ub_expr) and this are dimension-incompatible or if var is not a space dimension of this.

native void parma_polyhedra_library::Polyhedron::generalized_affine_image ( Variable  var,
Relation_Symbol  relsym,
Linear_Expression  expr,
Coefficient  denominator 
)

Assigns to this the image of this with respect to the generalized affine relation $\mathrm{var}' \relsym \frac{\mathrm{expr}}{\mathrm{denominator}}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if denominator is zero or if expr and this are dimension-incompatible or if var is not a space dimension of this or if this is a C_Polyhedron and relsym is a strict relation symbol.

native void parma_polyhedra_library::Polyhedron::generalized_affine_preimage ( Variable  var,
Relation_Symbol  relsym,
Linear_Expression  expr,
Coefficient  denominator 
)

Assigns to this the preimage of this with respect to the generalized affine relation $\mathrm{var}' \relsym \frac{\mathrm{expr}}{\mathrm{denominator}}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters:
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).
Exceptions:
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 $\mathrm{lhs}' \relsym \mathrm{rhs}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters:
lhs The left hand side affine expression;
relsym The relation symbol;
rhs The right hand side affine expression.
Exceptions:
Invalid_Argument_Exception Thrown if this is dimension-incompatible with lhs or rhs or if this is a C_Polyhedron and relsym is a strict relation symbol.

native void parma_polyhedra_library::Polyhedron::generalized_affine_preimage ( Linear_Expression  lhs,
Relation_Symbol  relsym,
Linear_Expression  rhs 
)

Assigns to this the preimage of this with respect to the generalized affine relation $\mathrm{lhs}' \relsym \mathrm{rhs}$, where $\mathord{\relsym}$ is the relation symbol encoded by relsym.

Parameters:
lhs The left hand side affine expression;
relsym The relation symbol;
rhs The right hand side affine expression.
Exceptions:
Invalid_Argument_Exception Thrown if this is dimension-incompatible with lhs or rhs or if this is a C_Polyhedron and relsym is a strict relation symbol.

native void parma_polyhedra_library::Polyhedron::unconstrain_space_dimension ( Variable  var  ) 

Computes the cylindrification of this with respect to space dimension var, assigning the result to this.

Parameters:
var The space dimension that will be unconstrained.
Exceptions:
Invalid_Argument_Exception Thrown if var is not a space dimension of this.

native void parma_polyhedra_library::Polyhedron::unconstrain_space_dimensions ( Variables_Set  to_be_unconstrained  ) 

Computes the cylindrification of this with respect to the set of space dimensions to_be_unconstrained, assigning the result to this.

Parameters:
to_be_unconstrained The set of space dimension that will be unconstrained.
Exceptions:
Invalid_Argument_Exception Thrown if this is dimension-incompatible with one of the Variable objects contained in to_be_removed.

native void parma_polyhedra_library::Polyhedron::widening_assign ( Polyhedron  y,
By_Reference< Integer >  tp 
)

Assigns to this the result of computing the H79-widening between this and y.

Parameters:
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).
Exceptions:
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.).

Exceptions:
Invalid_Argument_Exception Thrown if x and y are topology-incompatible.

native void parma_polyhedra_library::Polyhedron::add_space_dimensions_and_embed ( long  m  ) 

Adds m new space dimensions and embeds the old polyhedron in the new vector space.

Parameters:
m The number of dimensions to add.
Exceptions:
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.

Parameters:
m The number of space dimensions to add.
Exceptions:
Length_Error_Exception Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension().

native void parma_polyhedra_library::Polyhedron::concatenate_assign ( Polyhedron  y  ) 

Assigns to this the concatenation of this and y, taken in this order.

Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible.
Length_Error_Exception Thrown if the concatenation would cause the vector space to exceed dimension max_space_dimension().

native void parma_polyhedra_library::Polyhedron::remove_space_dimensions ( Variables_Set  to_be_removed  ) 

Removes all the specified dimensions from the vector space.

Parameters:
to_be_removed The set of Variable objects corresponding to the space dimensions to be removed.
Exceptions:
Invalid_Argument_Exception Thrown if this is dimension-incompatible with one of the Variable objects contained in to_be_removed.

native void parma_polyhedra_library::Polyhedron::remove_higher_space_dimensions ( long  new_dimension  ) 

Removes the higher dimensions of the vector space so that the resulting space will have dimension new_dimension.

Exceptions:
Invalid_Argument_Exception Thrown if new_dimensions is greater than the space dimension of this.

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

Creates m copies of the space dimension corresponding to var.

Parameters:
var The variable corresponding to the space dimension to be replicated;
m The number of replicas to be created.
Exceptions:
Invalid_Argument_Exception Thrown if var does not correspond to a dimension of the vector space.
Length_Error_Exception Thrown if adding m new space dimensions would cause the vector space to exceed dimension max_space_dimension().

native void parma_polyhedra_library::Polyhedron::fold_space_dimensions ( Variables_Set  to_be_folded,
Variable  var 
)

Folds the space dimensions in to_be_folded into var.

Parameters:
to_be_folded The set of Variable objects corresponding to the space dimensions to be folded;
var The variable corresponding to the space dimension that is the destination of the folding operation.
Exceptions:
Invalid_Argument_Exception Thrown if this is dimension-incompatible with var or with one of the Variable objects contained in to_be_folded. Also thrown if var is contained in to_be_folded.

native void parma_polyhedra_library::Polyhedron::map_space_dimensions ( Partial_Function  pfunc  ) 

Remaps the dimensions of the vector space according to a partial function.

Parameters:
pfunc The partial function specifying the destiny of each space dimension.

native void parma_polyhedra_library::Polyhedron::add_generator ( Generator  g  ) 

Adds a copy of generator g to the system of generators of this (without minimizing the result).

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

Parameters:
gs Contains the generators that will be added to the system of generators of this.
Exceptions:
Invalid_Argument_Exception Thrown if this and gs are topology-incompatible or dimension-incompatible, or if this is empty and the system of generators gs is not empty, but has no points.

native void parma_polyhedra_library::Polyhedron::BHRZ03_widening_assign ( Polyhedron  y,
By_Reference< Integer >  tp 
)

Assigns to this the result of computing the BHRZ03-widening between this and y.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::H79_widening_assign ( Polyhedron  y,
By_Reference< Integer >  tp 
)

Assigns to this the result of computing the H79-widening between this and y.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if this and y are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::limited_BHRZ03_extrapolation_assign ( Polyhedron  y,
Constraint_System  cs,
By_Reference< Integer >  tp 
)

Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this.

Parameters:
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).
Exceptions:
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.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if this, y and cs are topology-incompatible or dimension-incompatible.

native void parma_polyhedra_library::Polyhedron::bounded_BHRZ03_extrapolation_assign ( Polyhedron  y,
Constraint_System  cs,
By_Reference< Integer >  tp 
)

Improves the result of the BHRZ03-widening computation by also enforcing those constraints in cs that are satisfied by all the points of this, plus all the constraints of the form $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of this.

Parameters:
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).
Exceptions:
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 $\pm x \leq r$ and $\pm x < r$, with $r \in \Qset$, that are satisfied by all the points of this.

Parameters:
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).
Exceptions:
Invalid_Argument_Exception Thrown if this, y and cs are topology-incompatible or dimension-incompatible.


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

Generated on Tue Apr 14 07:13:26 2009 for PPL Java Language Interface by  doxygen 1.5.7.1