Class Abstract1
- All Implemented Interfaces:
Cloneable
A level 1 numerical abstract value object represents a set of points in an environment.
An Abstract1 is implemented as a pair containing an
Abstract0
and an Environment
,
manipulated in conjunction.
Direct access to the fields is prohibited, to avoid desynchronizing them.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Abstract0
Level 0 abstract element.protected Environment
Environment. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a copy of the abstract element a.Abstract1
(Manager man, Environment e) Creates a new universal abstract element.Abstract1
(Manager man, Environment e, boolean empty) Creates a new universal or empty abstract element.Abstract1
(Manager man, Environment e, Var[] vars, Interval[] box) Creates a new abstract element from a box.Abstract1
(Manager man, Environment e, String[] vars, Interval[] box) Creates a new abstract element from a set of constraints.Creates a new abstract element from a set of constraints. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addRay
(Manager man, Generator1 r) Replaces this with (an over-approximation of) this with one ray added.void
addRay
(Manager man, Generator1[] ar) Replaces this with (an over-approximation of) this with some rays added.addRayCopy
(Manager man, Generator1 r) Returns a new abstract element that contains (an over-approximation of) this with one ray added.addRayCopy
(Manager man, Generator1[] ar) Returns a new abstract element that contains (an over-approximation of) this with some rays added.void
approximate
(Manager man, int algorithm) Tries to simplify the representation of the element, maybe at the expense of precision.void
Replaces this with (an over-approximation of) this after assigning ar[i] to var[i], in parallel.void
assign
(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) Replaces this with (an over-approximation of) this after assigning ar[i] to var[i], in parallel.void
Replaces this with (an over-approximation of) this after assigning expr to var.void
assign
(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) Replaces this with (an over-approximation of) this after assigning expr to var.void
void
assign
(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) void
void
assign
(Manager man, String var, Texpr1Intern expr, Abstract1 dest) assignCopy
(Manager man, Var[] var, Linexpr1[] ar, Abstract1 dest) Returns a new element containing (an over-approximation of) this after assigning ar[i] to var[i], in parallel.assignCopy
(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) Returns a new element containing (an over-approximation of) this after assigning ar[i] to var[i], in parallel.assignCopy
(Manager man, Var var, Linexpr1 expr, Abstract1 dest) Returns a new element containing (an over-approximation of) this after assigning expr to var.assignCopy
(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) Returns a new element containing (an over-approximation of) this after assigning expr to var.assignCopy
(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) assignCopy
(Manager man, String var, Linexpr1 expr, Abstract1 dest) assignCopy
(Manager man, String var, Texpr1Intern expr, Abstract1 dest) void
canonicalize
(Manager man) Tries to put the element in canonical form.void
changeEnvironment
(Manager man, Environment e, boolean project) Changes the environment into e.changeEnvironmentCopy
(Manager man, Environment e, boolean project) Returns a copy of this with new environment e.void
Replaces this with (an over-approximation of) its topological closure.closureCopy
(Manager man) Returns a new element which is (an over-approximation of) the topological closure of this.static Abstract1
deserialize
(Manager man, Environment e, byte[] buf) Restores an abstract element from a byte array.void
Duplicates the variable org as dst[0] ... dst[dst.length-1].void
expandCopy
(Manager man, Var org, Var[] dst) Returns a new element where variable org is duplicated as dst[0] ... dst[dst.length-1].expandCopy
(Manager man, String org, String[] dst) void
Folds all variables var[i] into variable var[0].void
Returns a new element where all the variables var[i] are folded into the variable var[0].void
Replaces this with (an over-approximation of) this after forgetting the value of the variables in var.void
Replaces this with (an over-approximation of) this after forgetting the value of the variable var.void
void
forgetCopy
(Manager man, Var[] var, boolean project) Returns a new element containing (an over-approximation of) this after forgetting the value of the variables in var.forgetCopy
(Manager man, Var var, boolean project) Returns a new element containing (an over-approximation of) this after forgetting the value of the variable var.forgetCopy
(Manager man, String[] var, boolean project) forgetCopy
(Manager man, String var, boolean project) getAbstract0
(Manager man) Returns a copy of the Abstract0 underlying this.Returns a (read-only) reference to the Abstract0 underlying this.Returns (an over-approximation of) the set of values e can take on this.getBound
(Manager man, Texpr1Intern e) Returns (an over-approximation of) the set of values e can take on this.Returns (an over-approximation of) the set of values the variable var can take on this.Returns the Manager which was used to create the the abstract element.Returns the environment of the abstract element.int
Returns the size in memory of the abstract element.int
Returns a hash of the element value.boolean
Whether the element is definitely empty (true) or maybe not empty (false).boolean
isDimensionUnconstrained
(Manager man, Var var) Whether the variable var is definitely unbounded in this (true) or may be bounded (false).boolean
isDimensionUnconstrained
(Manager man, String var) boolean
Whether this is definitely equal to x (true) or maybe not equal (false).boolean
isIncluded
(Manager man, Abstract1 x) Whether this is definitely included in x (true) or maybe not included (false).boolean
Whether the element is definitely universal (true) or maybe not universal (false).void
Replaces this with (an over-approximation of) the set-union of this and op.static Abstract1
Returns a new abstract element that contains (an over-approximation of) the set-union of the elements in ar.Returns a new abstract element that contains (an over-approximation of) the set-union of this and op.void
Replaces this with (an over-approximation of) the set-intersection of this and op.static Abstract1
Returns a new abstract element that contains (an over-approximation of) the set-intersection of the elements in ar.void
Replaces this with (an over-approximation of) the set-intersection of this with the constraint c.void
Replaces this with (an over-approximation of) the set-intersection of this with the constraints in ar.void
Replaces this with (an over-approximation of) the set-intersection of this with the constraint c.void
Replaces this with (an over-approximation of) the set-intersection of this with the constraints in ar.Returns a new abstract element that contains (an over-approximation of) the set-intersection of this and op.Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraint cr.Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraints in ar.Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraint in c.Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraints in ar.void
Tries to minimize the memory representation of the element.void
Removes all unconstrained variables.Returns a copy of this with all unconstrained variables removed.void
Renames variable org[i] as dst[i].void
renameCopy
(Manager man, Var[] org, Var[] dst) Returns a copy of this with variable org[i] renamed as dst[i].renameCopy
(Manager man, String[] org, String[] dst) boolean
Whether this definitely satisfies the constraint c (true) or maybe does not satisfy it (false).boolean
Whether this definitely satisfies the constraint c (true) or maybe does not satisfy it (false).boolean
Whether the projection of this on variable var is definitely included in the interval i (true) or maybe is not included (false).boolean
byte[]
Converts the abstract element to a byte array.void
substitute
(Manager man, Var[] var, Linexpr1[] ar, Abstract1 dest) Replaces this with (an over-approximation of) this after substituting var[i] with ar[i], in parallel.void
substitute
(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) Replaces this with (an over-approximation of) this after substituting var[i] with ar[i], in parallel.void
substitute
(Manager man, Var var, Linexpr1 expr, Abstract1 dest) Replaces this with (an over-approximation of) this after substituting var with expr.void
substitute
(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) Replaces this with (an over-approximation of) this after substituting var with expr.void
substitute
(Manager man, String[] var, Linexpr1[] ar, Abstract1 dest) void
substitute
(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) void
substitute
(Manager man, String var, Linexpr1 expr, Abstract1 dest) void
substitute
(Manager man, String var, Texpr1Intern expr, Abstract1 dest) substituteCopy
(Manager man, Var[] var, Linexpr1[] ar, Abstract1 dest) Returns a new element containing (an over-approximation of) this after substituting var[i] with ar[i], in parallel.substituteCopy
(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) Returns a new element containing (an over-approximation of) this after substituting var[i] with ar[i], in parallel.substituteCopy
(Manager man, Var var, Linexpr1 expr, Abstract1 dest) Returns a new element containing (an over-approximation of) this after substituting var with expr.substituteCopy
(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) Returns a new element containing (an over-approximation of) this after substituting var with expr.substituteCopy
(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) substituteCopy
(Manager man, String var, Linexpr1 expr, Abstract1 dest) substituteCopy
(Manager man, String var, Texpr1Intern expr, Abstract1 dest) Interval[]
Returns a box describing (an over-approximation of) this.toGenerator
(Manager man) Returns a set of generators describing (an over-approximation of) this.Lincons1[]
Returns a set of linear constraints describing (an over-approximation of) this.toString()
Returns a String representation of the element as a list of constraints.Returns a String representation of the element as a list of constraints.Tcons1[]
Returns a set of constraints describing (an over-approximation of) this.void
Replaces this with the meet of this and op on their least common environment.Returns the meet of this and op on their least common environment.Returns a new element equal to this widened with op.wideningThreshold
(Manager man, Abstract1 op, Lincons1[] c) Returns a new element equal to this widened with op, with thresholds constraints set c.
-
Field Details
-
abs
Level 0 abstract element. -
env
Environment.
-
-
Constructor Details
-
Abstract1
Creates a copy of the abstract element a.- Throws:
ApronException
-
Abstract1
Creates a new universal abstract element.- Throws:
ApronException
-
Abstract1
Creates a new universal or empty abstract element.- Throws:
ApronException
-
Abstract1
Creates a new abstract element from a box.The element is such that vars[i] is in interval box[i]. Variables not in vars have interval [-oo,+oo].
All variables from vars must be exist in the environment e.
vars and box must have the same length.
- Throws:
ApronException
-
Abstract1
- Throws:
ApronException
-
Abstract1
Creates a new abstract element from a set of constraints.All constraints must have the same environment.
The array must not be empty (to get an environment).
- Throws:
ApronException
-
Abstract1
Creates a new abstract element from a set of constraints.All constraints must have the same environment.
The array must not be empty (to get an environment).
- Throws:
ApronException
-
-
Method Details
-
getSize
Returns the size in memory of the abstract element.The unit is domain-specific.
- Throws:
ApronException
-
hashCode
Returns a hash of the element value.- Throws:
ApronException
-
getEnvironment
Returns the environment of the abstract element. -
getAbstract0
Returns a copy of the Abstract0 underlying this.- Throws:
ApronException
-
getAbstract0Ref
Returns a (read-only) reference to the Abstract0 underlying this.Warning: it is dangerous to add, remove, or permute dimensions as it may desynchrnonize the Abstract0 dimensions form the environment.
-
getCreationManager
Returns the Manager which was used to create the the abstract element. -
toString
Returns a String representation of the element as a list of constraints.This method uses the Manager that was used to create this.
-
toString
Returns a String representation of the element as a list of constraints. -
getBound
Returns (an over-approximation of) the set of values e can take on this.this and e must have the same environment.
- Throws:
ApronException
-
getBound
Returns (an over-approximation of) the set of values e can take on this.this and e must have the same environment.
- Throws:
ApronException
-
getBound
- Throws:
ApronException
-
getBound
Returns (an over-approximation of) the set of values the variable var can take on this.- Throws:
ApronException
-
toLincons
Returns a set of linear constraints describing (an over-approximation of) this.- Throws:
ApronException
-
toTcons
Returns a set of constraints describing (an over-approximation of) this.- Throws:
ApronException
-
toBox
Returns a box describing (an over-approximation of) this.The variable order in the returned array is that of the environment, i.e.,
getEnvironment().getVars()
.- Throws:
ApronException
-
toGenerator
Returns a set of generators describing (an over-approximation of) this.- Throws:
ApronException
-
isBottom
Whether the element is definitely empty (true) or maybe not empty (false).If
Manager.wasExact()
returns true, then false indicates that the element is definitely empty.- Throws:
ApronException
-
isTop
Whether the element is definitely universal (true) or maybe not universal (false).If
Manager.wasExact()
returns true, then false indicates that the element is definitely not universal.- Throws:
ApronException
-
isIncluded
Whether this is definitely included in x (true) or maybe not included (false).If
Manager.wasExact()
returns true, then false indicates that this is definitely not included in x.this and x must have the same environment.
- Throws:
ApronException
-
isEqual
Whether this is definitely equal to x (true) or maybe not equal (false).If
Manager.wasExact()
returns true, then false indicates that this is definitely not equal to x.this and x must have the same environment.
- Throws:
ApronException
-
satisfy
Whether this definitely satisfies the constraint c (true) or maybe does not satisfy it (false).If
Manager.wasExact()
returns true, then false indicates that this definitely does not satisfy c.this and c must have the same environment.
- Throws:
ApronException
-
satisfy
Whether this definitely satisfies the constraint c (true) or maybe does not satisfy it (false).If
Manager.wasExact()
returns true, then false indicates that this definitely does not satisfy c.this and c must have the same environment.
- Throws:
ApronException
-
satisfy
- Throws:
ApronException
-
satisfy
Whether the projection of this on variable var is definitely included in the interval i (true) or maybe is not included (false).If
Manager.wasExact()
returns true, then false indicates that it is definitely not included.- Throws:
ApronException
-
isDimensionUnconstrained
- Throws:
ApronException
-
isDimensionUnconstrained
Whether the variable var is definitely unbounded in this (true) or may be bounded (false).If
Manager.wasExact()
returns true, then false indicates that the dimension is definitely bounded.- Throws:
ApronException
-
minimize
Tries to minimize the memory representation of the element.Use this to gain memory space. However, this may cause subsequent operations to be less efficients as cached information may be discarded.
- Throws:
ApronException
-
canonicalize
Tries to put the element in canonical form.The notion of canonical form is not fully defined yet.
- Throws:
ApronException
-
approximate
Tries to simplify the representation of the element, maybe at the expense of precision.The algorithm argument indicates how aggressive the simplification should be. Its interpretation is domain-dependant.
- Throws:
ApronException
-
meetCopy
Returns a new abstract element that contains (an over-approximation of) the set-intersection of this and op.this and op are not modified.
this and op must have the same environment.
- Throws:
ApronException
-
meet
Returns a new abstract element that contains (an over-approximation of) the set-intersection of the elements in ar.The elements of ar are not modified.
The array must not be empty.
All array elements must have the same environment.
- Throws:
ApronException
-
meet
Replaces this with (an over-approximation of) the set-intersection of this and op.op is not modified.
this and op must have the same environment.
- Throws:
ApronException
-
joinCopy
Returns a new abstract element that contains (an over-approximation of) the set-union of this and op.this and op are not modified.
this and op must have the same environment.
- Throws:
ApronException
-
join
Returns a new abstract element that contains (an over-approximation of) the set-union of the elements in ar.The elements of ar are not modified.
The array must not be empty.
All array elements must have the same environment.
- Throws:
ApronException
-
join
Replaces this with (an over-approximation of) the set-union of this and op.op is not modified.
this and op must have the same environment.
- Throws:
ApronException
-
meetCopy
Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraints in ar.this is not changed.
this and all array elements must have the same environment.
- Throws:
ApronException
-
meetCopy
Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraints in ar.this is not changed.
this and all array elements must have the same environment.
- Throws:
ApronException
-
meet
Replaces this with (an over-approximation of) the set-intersection of this with the constraints in ar.this and all array elements must have the same environment.
- Throws:
ApronException
-
meet
Replaces this with (an over-approximation of) the set-intersection of this with the constraints in ar.this and all array elements must have the same environment.
- Throws:
ApronException
-
meetCopy
Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraint cr.this is not changed.
this and c must have the same environment.
- Throws:
ApronException
-
meetCopy
Returns a new abstract element that contains (an over-approximation of) the set-intersection of this with the constraint in c.this is not changed.
this and c must have the same environment.
- Throws:
ApronException
-
meet
Replaces this with (an over-approximation of) the set-intersection of this with the constraint c.this and c must have the same environment.
- Throws:
ApronException
-
meet
Replaces this with (an over-approximation of) the set-intersection of this with the constraint c.this and c must have the same environment.
- Throws:
ApronException
-
addRayCopy
Returns a new abstract element that contains (an over-approximation of) this with some rays added.this is not changed.
ar can only contain ray and lines, not vertices.
this and all array elements must have the same environment.
- Throws:
ApronException
-
addRay
Replaces this with (an over-approximation of) this with some rays added.ar can only contain ray and lines, not vertices.
this and all array elements must have the same environment.
- Throws:
ApronException
-
addRayCopy
Returns a new abstract element that contains (an over-approximation of) this with one ray added.this is not changed.
this and r must have the same environment.
- Throws:
ApronException
-
addRay
Replaces this with (an over-approximation of) this with one ray added.this and r must have the same environment.
- Throws:
ApronException
-
assign
- Throws:
ApronException
-
assign
Replaces this with (an over-approximation of) this after assigning ar[i] to var[i], in parallel.The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, Var[] var, Linexpr1[] ar, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after assigning ar[i] to var[i], in parallel.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
assign
public void assign(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException - Throws:
ApronException
-
assign
Replaces this with (an over-approximation of) this after assigning ar[i] to var[i], in parallel.The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException - Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after assigning ar[i] to var[i], in parallel.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
substitute
public void substitute(Manager man, String[] var, Linexpr1[] ar, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substitute
Replaces this with (an over-approximation of) this after substituting var[i] with ar[i], in parallel.The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, Var[] var, Linexpr1[] ar, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after substituting var[i] with ar[i], in parallel.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
substitute
public void substitute(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substitute
public void substitute(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException Replaces this with (an over-approximation of) this after substituting var[i] with ar[i], in parallel.The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, String[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, Var[] var, Texpr1Intern[] ar, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after substituting var[i] with ar[i], in parallel.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and the array must have the same environment.
- Throws:
ApronException
-
assign
- Throws:
ApronException
-
assign
Replaces this with (an over-approximation of) this after assigning expr to var.The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, String var, Linexpr1 expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, Var var, Linexpr1 expr, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after assigning expr to var.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
assign
public void assign(Manager man, String var, Texpr1Intern expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
assign
Replaces this with (an over-approximation of) this after assigning expr to var.The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, String var, Texpr1Intern expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
assignCopy
public Abstract1 assignCopy(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after assigning expr to var.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
substitute
public void substitute(Manager man, String var, Linexpr1 expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substitute
Replaces this with (an over-approximation of) this after substituting var with expr.The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, String var, Linexpr1 expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, Var var, Linexpr1 expr, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after substituting var with expr.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
substitute
public void substitute(Manager man, String var, Texpr1Intern expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substitute
public void substitute(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) throws ApronException Replaces this with (an over-approximation of) this after substituting var with expr.The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, String var, Texpr1Intern expr, Abstract1 dest) throws ApronException - Throws:
ApronException
-
substituteCopy
public Abstract1 substituteCopy(Manager man, Var var, Texpr1Intern expr, Abstract1 dest) throws ApronException Returns a new element containing (an over-approximation of) this after substituting var with expr.this is not modified.
The result is intersected with dest, if dest is not null.
this, dest, and expr must have the same environment.
- Throws:
ApronException
-
forgetCopy
- Throws:
ApronException
-
forgetCopy
Returns a new element containing (an over-approximation of) this after forgetting the value of the variables in var.this is not modified.
If project is true, the variables are set to 0. Otherwise, they are set to [-oo,+oo].
- Throws:
ApronException
-
forget
- Throws:
ApronException
-
forget
Replaces this with (an over-approximation of) this after forgetting the value of the variables in var.If project is true, the variables are set to 0. Otherwise, they are set to [-oo,+oo].
- Throws:
ApronException
-
forgetCopy
- Throws:
ApronException
-
forgetCopy
Returns a new element containing (an over-approximation of) this after forgetting the value of the variable var.this is not modified.
- Throws:
ApronException
-
forget
- Throws:
ApronException
-
forget
Replaces this with (an over-approximation of) this after forgetting the value of the variable var.- Throws:
ApronException
-
changeEnvironmentCopy
public Abstract1 changeEnvironmentCopy(Manager man, Environment e, boolean project) throws ApronException Returns a copy of this with new environment e.Variables in this and not in e are removed, while variables in e and not in this are created.
project indicates whether added variables are set to 0 (true) or [-oo,+oo] (false).
this and e must have compatible environments.
this is not modified.
- Throws:
ApronException
-
changeEnvironment
Changes the environment into e.Variables in this and not in e are removed, while variables in e and not in this are created.
project indicates whether added variables are set to 0 (true) or [-oo,+oo] (false).
this and e must have compatible environments.
- Throws:
ApronException
-
minimizeEnvironmentCopy
Returns a copy of this with all unconstrained variables removed.this is not modified.
- Throws:
ApronException
-
minimizeEnvironment
Removes all unconstrained variables.- Throws:
ApronException
-
renameCopy
- Throws:
ApronException
-
renameCopy
Returns a copy of this with variable org[i] renamed as dst[i].org and dst must have the same size.
this is not modified.
- Throws:
ApronException
-
rename
- Throws:
ApronException
-
rename
Renames variable org[i] as dst[i].org and dst must have the same size.
- Throws:
ApronException
-
unifyCopy
Returns the meet of this and op on their least common environment.- Throws:
ApronException
-
unify
Replaces this with the meet of this and op on their least common environment.- Throws:
ApronException
-
expandCopy
- Throws:
ApronException
-
expandCopy
Returns a new element where variable org is duplicated as dst[0] ... dst[dst.length-1].this is not modified.
- Throws:
ApronException
-
expand
- Throws:
ApronException
-
expand
Duplicates the variable org as dst[0] ... dst[dst.length-1].- Throws:
ApronException
-
foldCopy
- Throws:
ApronException
-
foldCopy
Returns a new element where all the variables var[i] are folded into the variable var[0].The array must contain either only integer-valued or real-valued variables.
this is not modified.
- Throws:
ApronException
-
fold
- Throws:
ApronException
-
fold
Folds all variables var[i] into variable var[0].The array must contain either only integer-valued or real-valued variables.
- Throws:
ApronException
-
widening
Returns a new element equal to this widened with op.this and op are not modified.
this and op must have the same environment.
- Throws:
ApronException
-
wideningThreshold
Returns a new element equal to this widened with op, with thresholds constraints set c.this and op are not modified.
this, op, and c must have the same environment.
- Throws:
ApronException
-
closureCopy
Returns a new element which is (an over-approximation of) the topological closure of this.this is not modified.
- Throws:
ApronException
-
closure
Replaces this with (an over-approximation of) its topological closure.- Throws:
ApronException
-
serialize
Converts the abstract element to a byte array.The byte array can be stored to and retrieved from disk, or sent through a network. However, the sending and receiving parties must use compatible managers and identical environments.
- Throws:
ApronException
-
deserialize
Restores an abstract element from a byte array.The specified manager must be compatible with that used during the
serialize(apron.Manager)
call. The environments must be identical.- Throws:
ApronException
-