The core implementation of the Parma Polyhedra Library is written in C++. More...
The core implementation of the Parma Polyhedra Library is written in C++.
See Namespace, Hierarchical and Compound indexes for additional information about each single data type.
| #define const_bool_nodef | ( | name, | |||
| value | ) | enum anonymous_enum_ ## name { name = (value) } |
Declares a per-class constant of type bool, called name and with value value.
Differently from static constants, name needs not (and cannot) be defined (for static constants, the need for a further definition is mandated by Section 9.4.2/4 of the C++ standard).
Definition at line 42 of file meta_programming.hh.
| #define const_int_nodef | ( | name, | |||
| value | ) | enum anonymous_enum_ ## name { name = (value) } |
Declares a per-class constant of type int, called name and with value value.
Differently from static constants, name needs not (and cannot) be defined (for static constants, the need for a further definition is mandated by Section 9.4.2/4 of the C++ standard).
Definition at line 56 of file meta_programming.hh.
| #define const_ref_nodef | ( | type, | |||
| name, | |||||
| value | ) |
static const type& name() { \ static type name(value); \ return name; \ }
Declares a per-class constant of type type, called name and with value value. A constant reference to the constant is accessible by means of the syntax name().
Differently from static constants, name needs not (and cannot) be defined (for static constants, the need for a further definition is mandated by Section 9.4.2/4 of the C++ standard).
Definition at line 88 of file meta_programming.hh.
| #define const_value_nodef | ( | type, | |||
| name, | |||||
| value | ) |
static type name() { \ return value; \ }
Declares a per-class constant of type type, called name and with value value. The value of the constant is accessible by means of the syntax name().
Differently from static constants, name needs not (and cannot) be defined (for static constants, the need for a further definition is mandated by Section 9.4.2/4 of the C++ standard).
Definition at line 71 of file meta_programming.hh.
| #define PPL_COMPILE_TIME_CHECK | ( | e, | |||
| msg | ) | PPL_COMPILE_TIME_CHECK_AUX(e, __LINE__) |
Produces a compilation error if the compile-time constant e does not evaluate to true
Definition at line 134 of file meta_programming.hh.
Referenced by Parma_Polyhedra_Library::BD_Shape< T >::BHZ09_upper_bound_assign_if_exact(), Parma_Polyhedra_Library::Octagonal_Shape< T >::integer_upper_bound_assign_if_exact(), Parma_Polyhedra_Library::BD_Shape< T >::integer_upper_bound_assign_if_exact(), Parma_Polyhedra_Library::swap(), and Parma_Polyhedra_Library::Octagonal_Shape< T >::tight_closure_assign().
| #define PPL_VERSION "0.11.2" |
A string containing the PPL version.
Let M and m denote the numbers associated to PPL_VERSION_MAJOR and PPL_VERSION_MINOR, respectively. The format of PPL_VERSION is M "." m if both PPL_VERSION_REVISION (r) and PPL_VERSION_BETA (b)are zero, M "." m "pre" b if PPL_VERSION_REVISION is zero and PPL_VERSION_BETA is not zero, M "." m "." r if PPL_VERSION_REVISION is not zero and PPL_VERSION_BETA is zero, M "." m "." r "pre" b if neither PPL_VERSION_REVISION nor PPL_VERSION_BETA are zero.
Definition at line 59 of file version.hh.
| #define PPL_VERSION_BETA 0 |
The beta number of the PPL version. This is zero for official releases and nonzero for development snapshots.
Definition at line 45 of file version.hh.
Referenced by Parma_Polyhedra_Library::version_beta().
| #define PPL_VERSION_MAJOR 0 |
The major number of the PPL version.
Definition at line 30 of file version.hh.
Referenced by Parma_Polyhedra_Library::version_major().
| #define PPL_VERSION_MINOR 11 |
The minor number of the PPL version.
Definition at line 34 of file version.hh.
Referenced by Parma_Polyhedra_Library::version_minor().
| #define PPL_VERSION_REVISION 2 |
The revision number of the PPL version.
Definition at line 38 of file version.hh.
Referenced by Parma_Polyhedra_Library::version_revision().
| typedef PPL_COEFFICIENT_TYPE Parma_Polyhedra_Library::Coefficient |
An alias for easily naming the type of PPL coefficients.
Objects of type Coefficient are used to implement the integral valued coefficients occurring in linear expressions, constraints, generators, intervals, bounding boxes and so on. Depending on the chosen configuration options (see file README.configure), a Coefficient may actually be:
mpz_class type implemented by the C++ interface of the GMP library (this is the default configuration).Definition at line 172 of file Coefficient.types.hh.
| typedef Coefficient_traits_template<Coefficient> Parma_Polyhedra_Library::Coefficient_traits |
An alias for easily naming the coefficient traits.
Definition at line 178 of file Coefficient.types.hh.
| typedef size_t Parma_Polyhedra_Library::dimension_type |
An unsigned integral type for representing space dimensions.
Definition at line 22 of file globals.types.hh.
| typedef size_t Parma_Polyhedra_Library::memory_size_type |
An unsigned integral type for representing memory size in bytes.
Definition at line 26 of file globals.types.hh.
Overflow behavior of bounded integer types.
See the section on approximating bounded integers.
Definition at line 121 of file globals.types.hh.
00121 { 00128 OVERFLOW_WRAPS, 00129 00143 OVERFLOW_UNDEFINED, 00144 00153 OVERFLOW_IMPOSSIBLE 00154 };
Representation of bounded integer types.
See the section on approximating bounded integers.
| UNSIGNED |
Unsigned binary. |
| SIGNED_2_COMPLEMENT |
Signed binary where negative values are represented by the two's complement of the absolute value. |
Definition at line 104 of file globals.types.hh.
00104 { 00106 UNSIGNED, 00107 00112 SIGNED_2_COMPLEMENT 00113 };
Widths of bounded integer types.
See the section on approximating bounded integers.
Definition at line 81 of file globals.types.hh.
Complexity pseudo-classes.
| POLYNOMIAL_COMPLEXITY |
Worst-case polynomial complexity. |
| SIMPLEX_COMPLEXITY |
Worst-case exponential complexity but typically polynomial behavior. |
| ANY_COMPLEXITY |
Any complexity. |
Definition at line 57 of file globals.types.hh.
00057 { 00059 POLYNOMIAL_COMPLEXITY, 00061 SIMPLEX_COMPLEXITY, 00063 ANY_COMPLEXITY 00064 };
Kinds of degenerate abstract elements.
| UNIVERSE |
The universe element, i.e., the whole vector space. |
| EMPTY |
The empty element, i.e., the empty set. |
Definition at line 30 of file globals.types.hh.
Possible outcomes of the MIP_Problem solver.
| UNFEASIBLE_MIP_PROBLEM |
The problem is unfeasible. |
| UNBOUNDED_MIP_PROBLEM |
The problem is unbounded. |
| OPTIMIZED_MIP_PROBLEM |
The problem has an optimal solution. |
Definition at line 20 of file MIP_Problem.types.hh.
00020 { 00022 UNFEASIBLE_MIP_PROBLEM, 00024 UNBOUNDED_MIP_PROBLEM, 00026 OPTIMIZED_MIP_PROBLEM 00027 };
Possible optimization modes.
Definition at line 68 of file globals.types.hh.
00068 { 00070 MINIMIZATION, 00072 MAXIMIZATION 00073 };
Possible outcomes of the PIP_Problem solver.
| UNFEASIBLE_PIP_PROBLEM |
The problem is unfeasible. |
| OPTIMIZED_PIP_PROBLEM |
The problem has an optimal solution. |
Definition at line 20 of file PIP_Problem.types.hh.
00020 { 00022 UNFEASIBLE_PIP_PROBLEM, 00024 OPTIMIZED_PIP_PROBLEM 00025 };
Relation symbols.
| EQUAL |
Equal to. |
| LESS_THAN |
Less than. |
| LESS_OR_EQUAL |
Less than or equal to. |
| GREATER_THAN |
Greater than. |
| GREATER_OR_EQUAL |
Greater than or equal to. |
| NOT_EQUAL |
Not equal to. |
Definition at line 40 of file globals.types.hh.
00040 { 00042 EQUAL = 1, 00044 LESS_THAN = 2, 00046 LESS_OR_EQUAL = LESS_THAN | EQUAL, 00048 GREATER_THAN = 4, 00050 GREATER_OR_EQUAL = GREATER_THAN | EQUAL, 00052 NOT_EQUAL = LESS_THAN | GREATER_THAN 00053 };
Kinds of polyhedra domains.
Definition at line 22 of file Topology.hh.
00022 { 00023 NECESSARILY_CLOSED = 0, 00024 NOT_NECESSARILY_CLOSED = 1 00025 };
| const Throwable *volatile Parma_Polyhedra_Library::abandon_expensive_computations = 0 |
A pointer to an exception object.
This pointer, which is initialized to zero, is repeatedly checked along any super-linear (i.e., computationally expensive) computation path in the library. When it is found nonzero the exception it points to is thrown. In other words, making this pointer point to an exception (and leaving it in this state) ensures that the library will return control to the client application, possibly by throwing the given exception, within a time that is a linear function of the size of the representation of the biggest object (powerset of polyhedra, polyhedron, system of constraints or generators) on which the library is operating upon.
Definition at line 32 of file globals.cc.
Referenced by Parma_Polyhedra_Library::Pointset_Powerset< PSET >::concatenate_assign(), Parma_Polyhedra_Library::maybe_abandon(), and Parma_Polyhedra_Library::Powerset< D >::omega_reduce().
1.6.3