Class Manager
Each abstract domain subclasses the Manager class to provide a
Manager factory for the domain.
The Manager is itself a factory for abstract elements in the
corresponding abstract domain: abstract elements can be constructed
and manipulated by passing the Manager instance to the
Abstract0
and Abstract1
classes.
A Manager stores a set of abstract domain configuration parameters to tune the cost/precision of the instance of the abstract domain.
Finally, a Manager stores thread-local information. It is safe to call all Apron methods in concurrent threads as long as all arguments (including this, and including the Manager argument) are distinct in all threads.
A Manager object encapsulates an ap_manager_t
Apron object
allocated in the C heap.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Manager()
Managers can only be constructed from an abstract domain Manager subclass. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
finalize()
Deallocates the Apron ap_manager_t object.int
getAlgorithm
(int funid) Returns the current precision level chosen for the given operation (FUNID_COPY
, etc.).boolean
getFlagBestWanted
(int funid) Whether the given operation updates the best-precision flag (FUNID_COPY
, etc.).boolean
getFlagExactWanted
(int funid) Whether the given operation updates the exactness flag (FUNID_COPY
, etc.)..Returns the name of the numerical abstract domain library that created the manager.int
getMaxObjectSize
(int funid) Returns the memory size limit chosen for the given operation (FUNID_COPY
, etc.).int
Gets the currently chosen preferred scalar type (SCALAR_DOUBLE
, etc.).int
getTimeout
(int funid) Returns the current timeout value chosen for the given operation (FUNID_COPY
, etc.).Returns the version of the numerical abstract domain library that created the manager.void
setAlgorithm
(int funid, int precision) Sets the current precision level for the given operationvoid
setFlagBestWanted
(int funid, boolean wanted) Whether the given operation (FUNID_COPY
, etc.)void
setFlagExactWanted
(int funid, boolean wanted) Whether the given operation (FUNID_COPY
, etc.)void
setMaxObjectSize
(int funid, int size) Sets a size limit on the memory used by the given operation (FUNID_COPY
, etc.).void
setPreferedScalarType
(int t) Sets a preferred scalar type (SCALAR_DOUBLE
, etc.).void
setTimeout
(int funid, int time) Sets a timeout for the given operation (FUNID_COPY
, etc.).boolean
wasBest()
Whether the last operation withsetFlagBestWanted(int, boolean)
set returned a result which is optimal with respect to the abstraction.boolean
wasExact()
Whether the last operation withsetFlagExactWanted(int, boolean)
set returned an exact result.
-
Field Details
-
FUNID_COPY
public static final int FUNID_COPY- See Also:
-
FUNID_FREE
public static final int FUNID_FREE- See Also:
-
FUNID_SIZE
public static final int FUNID_SIZE- See Also:
-
FUNID_MINIMIZE
public static final int FUNID_MINIMIZE- See Also:
-
FUNID_CANONICALIZE
public static final int FUNID_CANONICALIZE- See Also:
-
FUNID_HASH
public static final int FUNID_HASH- See Also:
-
FUNID_APPROXIMATE
public static final int FUNID_APPROXIMATE- See Also:
-
FUNID_FPRINT
public static final int FUNID_FPRINT- See Also:
-
FUNID_FPRINTDIFF
public static final int FUNID_FPRINTDIFF- See Also:
-
FUNID_FDUMP
public static final int FUNID_FDUMP- See Also:
-
FUNID_SERIALIZE_RAW
public static final int FUNID_SERIALIZE_RAW- See Also:
-
FUNID_DESERIALIZE_RAW
public static final int FUNID_DESERIALIZE_RAW- See Also:
-
FUNID_BOTTOM
public static final int FUNID_BOTTOM- See Also:
-
FUNID_TOP
public static final int FUNID_TOP- See Also:
-
FUNID_OF_BOX
public static final int FUNID_OF_BOX- See Also:
-
FUNID_DIMENSION
public static final int FUNID_DIMENSION- See Also:
-
FUNID_IS_BOTTOM
public static final int FUNID_IS_BOTTOM- See Also:
-
FUNID_IS_TOP
public static final int FUNID_IS_TOP- See Also:
-
FUNID_IS_LEQ
public static final int FUNID_IS_LEQ- See Also:
-
FUNID_IS_EQ
public static final int FUNID_IS_EQ- See Also:
-
FUNID_IS_DIMENSION_UNCONSTRAINED
public static final int FUNID_IS_DIMENSION_UNCONSTRAINED- See Also:
-
FUNID_SAT_INTERVAL
public static final int FUNID_SAT_INTERVAL- See Also:
-
FUNID_SAT_LINCONS
public static final int FUNID_SAT_LINCONS- See Also:
-
FUNID_SAT_TCONS
public static final int FUNID_SAT_TCONS- See Also:
-
FUNID_BOUND_DIMENSION
public static final int FUNID_BOUND_DIMENSION- See Also:
-
FUNID_BOUND_LINEXPR
public static final int FUNID_BOUND_LINEXPR- See Also:
-
FUNID_BOUND_TEXPR
public static final int FUNID_BOUND_TEXPR- See Also:
-
FUNID_TO_BOX
public static final int FUNID_TO_BOX- See Also:
-
FUNID_TO_LINCONS_ARRAY
public static final int FUNID_TO_LINCONS_ARRAY- See Also:
-
FUNID_TO_TCONS_ARRAY
public static final int FUNID_TO_TCONS_ARRAY- See Also:
-
FUNID_TO_GENERATOR_ARRAY
public static final int FUNID_TO_GENERATOR_ARRAY- See Also:
-
FUNID_MEET
public static final int FUNID_MEET- See Also:
-
FUNID_MEET_ARRAY
public static final int FUNID_MEET_ARRAY- See Also:
-
FUNID_MEET_LINCONS_ARRAY
public static final int FUNID_MEET_LINCONS_ARRAY- See Also:
-
FUNID_MEET_TCONS_ARRAY
public static final int FUNID_MEET_TCONS_ARRAY- See Also:
-
FUNID_JOIN
public static final int FUNID_JOIN- See Also:
-
FUNID_JOIN_ARRAY
public static final int FUNID_JOIN_ARRAY- See Also:
-
FUNID_ADD_RAY_ARRAY
public static final int FUNID_ADD_RAY_ARRAY- See Also:
-
FUNID_ASSIGN_LINEXPR_ARRAY
public static final int FUNID_ASSIGN_LINEXPR_ARRAY- See Also:
-
FUNID_SUBSTITUTE_LINEXPR_ARRAY
public static final int FUNID_SUBSTITUTE_LINEXPR_ARRAY- See Also:
-
FUNID_ASSIGN_TEXPR_ARRAY
public static final int FUNID_ASSIGN_TEXPR_ARRAY- See Also:
-
FUNID_SUBSTITUTE_TEXPR_ARRAY
public static final int FUNID_SUBSTITUTE_TEXPR_ARRAY- See Also:
-
FUNID_ADD_DIMENSIONS
public static final int FUNID_ADD_DIMENSIONS- See Also:
-
FUNID_REMOVE_DIMENSIONS
public static final int FUNID_REMOVE_DIMENSIONS- See Also:
-
FUNID_PERMUTE_DIMENSIONS
public static final int FUNID_PERMUTE_DIMENSIONS- See Also:
-
FUNID_FORGET_ARRAY
public static final int FUNID_FORGET_ARRAY- See Also:
-
FUNID_EXPAND
public static final int FUNID_EXPAND- See Also:
-
FUNID_FOLD
public static final int FUNID_FOLD- See Also:
-
FUNID_WIDENING
public static final int FUNID_WIDENING- See Also:
-
FUNID_CLOSURE
public static final int FUNID_CLOSURE- See Also:
-
SCALAR_DOUBLE
public static final int SCALAR_DOUBLE- See Also:
-
SCALAR_MPQ
public static final int SCALAR_MPQ- See Also:
-
SCALAR_MPFR
public static final int SCALAR_MPFR- See Also:
-
-
Constructor Details
-
Manager
protected Manager()Managers can only be constructed from an abstract domain Manager subclass.
-
-
Method Details
-
finalize
protected void finalize()Deallocates the Apron ap_manager_t object. -
getLibrary
Returns the name of the numerical abstract domain library that created the manager. -
getVersion
Returns the version of the numerical abstract domain library that created the manager. -
getAlgorithm
public int getAlgorithm(int funid) Returns the current precision level chosen for the given operation (FUNID_COPY
, etc.). -
getTimeout
public int getTimeout(int funid) Returns the current timeout value chosen for the given operation (FUNID_COPY
, etc.). -
getMaxObjectSize
public int getMaxObjectSize(int funid) Returns the memory size limit chosen for the given operation (FUNID_COPY
, etc.). -
getFlagExactWanted
public boolean getFlagExactWanted(int funid) Whether the given operation updates the exactness flag (FUNID_COPY
, etc.).. -
getFlagBestWanted
public boolean getFlagBestWanted(int funid) Whether the given operation updates the best-precision flag (FUNID_COPY
, etc.). -
setAlgorithm
public void setAlgorithm(int funid, int precision) Sets the current precision level for the given operation. (FUNID_COPY
, etc.).0 is the default. Negative numbers indicate less precision, while positive numbers indicate more precision.
The exact meaning of each value depends on the abstract domain.
-
setTimeout
public void setTimeout(int funid, int time) Sets a timeout for the given operation (FUNID_COPY
, etc.).Note: timeouts are currently unimplemented.
-
setMaxObjectSize
public void setMaxObjectSize(int funid, int size) Sets a size limit on the memory used by the given operation (FUNID_COPY
, etc.).By default, there is no limit.
The unit is domain-specific but is consistent with the result of
Abstract0.getSize(apron.Manager)
.0 indicates no limit.
-
setFlagExactWanted
public void setFlagExactWanted(int funid, boolean wanted) Whether the given operation (FUNID_COPY
, etc.) should update the exactness flag.As computing the exactness information may be costly, it is disabled by default for all operations.
-
setFlagBestWanted
public void setFlagBestWanted(int funid, boolean wanted) Whether the given operation (FUNID_COPY
, etc.) should update the best-precision flag.As computing the best-precision information may be costly, it is disabled by default for all operations.
-
wasExact
public boolean wasExact()Whether the last operation withsetFlagExactWanted(int, boolean)
set returned an exact result. -
wasBest
public boolean wasBest()Whether the last operation withsetFlagBestWanted(int, boolean)
set returned a result which is optimal with respect to the abstraction. -
getPreferedScalarType
public int getPreferedScalarType()Gets the currently chosen preferred scalar type (SCALAR_DOUBLE
, etc.). -
setPreferedScalarType
public void setPreferedScalarType(int t) Sets a preferred scalar type (SCALAR_DOUBLE
, etc.).
-