Classes | |
struct | Is_Checked |
struct | Is_Checked< Checked_Number< T, P > > |
struct | Is_Native_Or_Checked |
class | Checked_Number |
A wrapper for numeric types implementing a given policy. More... | |
class | Throwable |
User objects the PPL can throw. More... | |
struct | From_Covering_Box |
A tag class. More... | |
struct | Recycle_Input |
A tag class. More... | |
class | Interval |
A generic, not necessarily closed, possibly restricted interval. More... | |
class | Variable |
A dimension of the vector space. More... | |
class | Linear_Expression |
A linear expression. More... | |
class | Constraint_System |
A system of constraints. More... | |
class | Constraint |
A linear equality or inequality. More... | |
class | Box |
A not necessarily closed, iso-oriented hyperrectangle. More... | |
class | Congruence_System |
A system of congruences. More... | |
class | Congruence |
A linear congruence. More... | |
class | Variables_Set |
An std::set of variables' indexes. More... | |
class | Poly_Con_Relation |
The relation between a polyhedron and a constraint. More... | |
class | Generator_System |
A system of generators. More... | |
class | Generator |
A line, ray, point or closure point. More... | |
class | Poly_Gen_Relation |
The relation between a polyhedron and a generator. More... | |
class | Grid_Generator_System |
A system of grid generators. More... | |
class | Grid_Generator |
A grid line, parameter or grid point. More... | |
class | Polyhedron |
The base class for convex polyhedra. More... | |
class | MIP_Problem |
A Mixed Integer (linear) Programming problem. More... | |
class | Grid |
A grid. More... | |
class | BD_Shape |
A bounded difference shape. More... | |
class | C_Polyhedron |
A closed convex polyhedron. More... | |
class | Octagonal_Shape |
An octagonal shape. More... | |
class | BHRZ03_Certificate |
The convergence certificate for the BHRZ03 widening operator. More... | |
class | H79_Certificate |
A convergence certificate for the H79 widening operator. More... | |
class | Grid_Certificate |
The convergence certificate for the Grid widening operator. More... | |
class | NNC_Polyhedron |
A not necessarily closed convex polyhedron. More... | |
class | Determinate |
Wraps a PPL class into a determinate constraint system interface. More... | |
class | Powerset |
The powerset construction on a base-level domain. More... | |
class | Smash_Reduction |
This class provides the reduction method for the Smash_Product domain. More... | |
class | Constraints_Reduction |
This class provides the reduction method for the Constraints_Product domain. More... | |
class | No_Reduction |
class | Partially_Reduced_Product |
The partially reduced product of two abstractions. More... | |
class | Domain_Product |
This class is temporary and will be removed when template typedefs will be supported in C++. More... | |
class | Pointset_Powerset |
The powerset construction instantiated on PPL pointset domains. More... | |
class | GMP_Integer |
Unbounded integers as provided by the GMP library. More... | |
Namespaces | |
namespace | IO_Operators |
All input/output operators are confined to this namespace. | |
Typedefs | |
typedef size_t | dimension_type |
An unsigned integral type for representing space dimensions. | |
typedef size_t | memory_size_type |
An unsigned integral type for representing memory size in bytes. | |
typedef PPL_COEFFICIENT_TYPE | Coefficient |
An alias for easily naming the type of PPL coefficients. | |
Enumerations | |
enum | Result { VC_NORMAL, V_LT, V_GT, V_EQ, V_NE, V_LE, V_GE, V_LGE, VC_MINUS_INFINITY, V_NEG_OVERFLOW, VC_PLUS_INFINITY, V_POS_OVERFLOW, VC_NAN, V_CVT_STR_UNK, V_DIV_ZERO, V_INF_ADD_INF, V_INF_DIV_INF, V_INF_MOD, V_INF_MUL_ZERO, V_INF_SUB_INF, V_MOD_ZERO, V_SQRT_NEG, V_UNKNOWN_NEG_OVERFLOW, V_UNKNOWN_POS_OVERFLOW, V_UNORD_COMP } |
Possible outcomes of a checked arithmetic computation. More... | |
enum | Rounding_Dir { ROUND_DOWN, ROUND_UP, ROUND_IGNORE , ROUND_NOT_NEEDED } |
Rounding directions for arithmetic computations. More... | |
enum | Degenerate_Element { UNIVERSE, EMPTY } |
Kinds of degenerate abstract elements. More... | |
enum | Relation_Symbol { LESS_THAN, LESS_OR_EQUAL, EQUAL, GREATER_OR_EQUAL, GREATER_THAN, NOT_EQUAL } |
Relation symbols. More... | |
enum | Complexity_Class { POLYNOMIAL_COMPLEXITY, SIMPLEX_COMPLEXITY, ANY_COMPLEXITY } |
Complexity pseudo-classes. More... | |
enum | Optimization_Mode { MINIMIZATION, MAXIMIZATION } |
Possible optimization modes. More... | |
enum | MIP_Problem_Status { UNFEASIBLE_MIP_PROBLEM, UNBOUNDED_MIP_PROBLEM, OPTIMIZED_MIP_PROBLEM } |
Possible outcomes of the MIP_Problem solver. More... | |
Functions | |
unsigned | version_major () |
Returns the major number of the PPL version. | |
unsigned | version_minor () |
Returns the minor number of the PPL version. | |
unsigned | version_revision () |
Returns the revision number of the PPL version. | |
unsigned | version_beta () |
Returns the beta number of the PPL version. | |
const char * | version () |
Returns a character string containing the PPL version. | |
const char * | banner () |
Returns a character string containing the PPL banner. | |
Result | classify (Result r) |
Extracts the class part of r (normal, minus/plus infinity or nan). | |
bool | is_special (Result r) |
Returns true if and only if the class or r is not normal. | |
void | fpu_initialize_control_functions () |
Initializes the FPU control functions. | |
fpu_rounding_direction_type | fpu_get_rounding_direction () |
Returns the current FPU rounding direction. | |
void | fpu_set_rounding_direction (fpu_rounding_direction_type dir) |
Sets the FPU rounding direction to dir . | |
fpu_rounding_control_word_type | fpu_save_rounding_direction (fpu_rounding_direction_type dir) |
Sets the FPU rounding direction to dir and returns the rounding control word previously in use. | |
fpu_rounding_control_word_type | fpu_save_rounding_direction_reset_inexact (fpu_rounding_direction_type dir) |
Sets the FPU rounding direction to dir , clears the inexact computation status, and returns the rounding control word previously in use. | |
void | fpu_restore_rounding_direction (fpu_rounding_control_word_type w) |
Restores the FPU rounding rounding control word to cw . | |
void | fpu_reset_inexact () |
Clears the inexact computation status. | |
int | fpu_check_inexact () |
Queries the inexact computation status. | |
Rounding_Dir | inverse (Rounding_Dir dir) |
Returns the inverse rounding mode of dir , ROUND_IGNORE being the inverse of itself. | |
unsigned | rational_sqrt_precision_parameter () |
Returns the precision parameter used for rational square root calculations. | |
void | set_rational_sqrt_precision_parameter (const unsigned p) |
Sets the precision parameter used for rational square root calculations. | |
dimension_type | not_a_dimension () |
Returns a value that does not designate a valid dimension. | |
Coefficient_traits::const_reference | Coefficient_zero () |
Returns a const reference to a Coefficient with value 0. | |
Coefficient_traits::const_reference | Coefficient_one () |
Returns a const reference to a Coefficient with value 1. | |
unsigned long | isqrt (unsigned long x) |
Returns the integer square root of x . | |
void | set_rounding_for_PPL () |
Sets the FPU rounding mode so that the PPL abstractions based on floating point numbers work correctly. | |
void | restore_pre_PPL_rounding () |
Sets the FPU rounding mode as it was before initialization of the PPL. | |
void | initialize () |
Initializes the library. | |
void | finalize () |
Finalizes the library. | |
dimension_type | max_space_dimension () |
Returns the maximum space dimension this library can handle. | |
Relational Operators and Comparison Functions | |
template<typename T1, typename T2> | |
Enable_If < Is_Native_Or_Checked< T1 > ::value &&Is_Native_Or_Checked < T2 >::value, bool >::type | equal (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If < Is_Native_Or_Checked< T1 > ::value &&Is_Native_Or_Checked < T2 >::value, bool >::type | not_equal (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If < Is_Native_Or_Checked< T1 > ::value &&Is_Native_Or_Checked < T2 >::value, bool >::type | greater_or_equal (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If < Is_Native_Or_Checked< T1 > ::value &&Is_Native_Or_Checked < T2 >::value, bool >::type | greater_than (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If < Is_Native_Or_Checked< T1 > ::value &&Is_Native_Or_Checked < T2 >::value, bool >::type | less_or_equal (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If < Is_Native_Or_Checked< T1 > ::value &&Is_Native_Or_Checked < T2 >::value, bool >::type | less_than (const T1 &x, const T2 &y) |
Input-Output Operators | |
template<typename T> | |
Enable_If < Is_Native_Or_Checked< T > ::value, void >::type | ascii_dump (std::ostream &s, const T &t) |
Ascii dump for native or checked. | |
template<typename T> | |
Enable_If < Is_Native_Or_Checked< T > ::value, bool >::type | ascii_load (std::ostream &s, T &t) |
Ascii load for native or checked. | |
Memory Size Inspection Functions | |
template<typename T> | |
Enable_If< Is_Native< T > ::value, memory_size_type > ::type | total_memory_in_bytes (const T &) |
template<typename T> | |
Enable_If< Is_Native< T > ::value, memory_size_type > ::type | external_memory_in_bytes (const T &) |
memory_size_type | total_memory_in_bytes (const mpz_class &x) |
memory_size_type | external_memory_in_bytes (const mpz_class &x) |
memory_size_type | total_memory_in_bytes (const mpq_class &x) |
memory_size_type | external_memory_in_bytes (const mpq_class &x) |
Variables | |
const Throwable *volatile | abandon_expensive_computations |
A pointer to an exception object. |
const char* Parma_Polyhedra_Library::banner | ( | ) |
Returns a character string containing the PPL banner.
The banner provides information about the PPL version, the licensing, the lack of any warranty whatsoever, the C++ compiler used to build the library, where to report bugs and where to look for further information.
int Parma_Polyhedra_Library::fpu_check_inexact | ( | ) | [inline] |
Queries the inexact computation status.
Returns 0 if the computation was definitely exact, 1 if it was definitely inexact, -1 if definite exactness information is unavailable.
void Parma_Polyhedra_Library::set_rational_sqrt_precision_parameter | ( | const unsigned | p | ) | [inline] |
Sets the precision parameter used for rational square root calculations.
If p
is less than or equal to INT_MAX
, sets the precision parameter used for rational square root calculations to p
.
std::invalid_argument | Thrown if p is greater than INT_MAX . |
void Parma_Polyhedra_Library::set_rounding_for_PPL | ( | ) | [inline] |
Sets the FPU rounding mode so that the PPL abstractions based on floating point numbers work correctly.
This is performed automatically at initialization-time. Calling this function is needed only if restore_pre_PPL_rounding() has been previously called.
void Parma_Polyhedra_Library::restore_pre_PPL_rounding | ( | ) | [inline] |
Sets the FPU rounding mode as it was before initialization of the PPL.
After calling this function it is absolutely necessary to call set_rounding_for_PPL() before using any PPL abstractions based on floating point numbers. This is performed automatically at finalization-time.