# Parma_Polyhedra_Library Namespace Reference
[C++ Language Interface]

The entire library is confined to this namespace. More...

## Classes

class | Checked_Number
| A wrapper for numeric types implementing a given policy. More...
class | Throwable
| User objects the PPL can throw. More...
struct | From_Bounding_Box
| A tag class. More...
struct | From_Covering_Box
| A tag class. More...
class | Constraint_System
| A system of constraints. More...
class | Variable
| A dimension of the vector space. More...
class | Poly_Con_Relation
| The relation between a polyhedron and a constraint. More...
class | Generator_System
| A system of generators. More...
class | Grid_Generator_System
| A system of grid generators. More...
class | Congruence_System
| A system of congruences. More...
class | Linear_Expression
| A linear expression. More...
class | Constraint
| A linear equality or inequality. More...
class | Generator
| A line, ray, point or closure point. More...
class | Grid_Generator
| A line, parameter or point. More...
class | Congruence
| A linear congruence. More...
class | LP_Problem
| A Linear Programming problem. More...
class | Poly_Gen_Relation
| The relation between a polyhedron and a generator. 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 | Polyhedron
| The base class for convex polyhedra. More...
class | Grid_Certificate
| The convergence certificate for the Grid widening operator. More...
class | Grid
| A grid. More...
class | C_Polyhedron
| A closed convex polyhedron. More...
class | NNC_Polyhedron
| A not necessarily closed convex polyhedron. More...
class | BD_Shape
| A bounded difference shape. 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 | Polyhedra_Powerset
| The powerset construction instantiated on PPL polyhedra. 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 COEFFICIENT_TYPE | Coefficient
| An alias for easily naming the type of PPL coefficients.
typedef std::set< Variable, Variable::Compare > | Variables_Set
| An std::set containing variables in increasing order of dimension index.

## 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_THAN_OR_EQUAL, EQUAL, GREATER_THAN_OR_EQUAL, GREATER_THAN }
| 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 | LP_Problem_Status { UNFEASIBLE_LP_PROBLEM, UNBOUNDED_LP_PROBLEM, OPTIMIZED_LP_PROBLEM }
| Possible outcomes of the LP_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.
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.
dimension_type | max_space_dimension ()
| Returns the maximum space dimension this library can handle.

## Variables

const Throwable *volatile | abandon_expensive_computations
| A pointer to an exception object.

## Detailed Description

The entire library is confined to this namespace.

## Function Documentation

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`.

Exceptions:

  | std::invalid_argument | Thrown if `p` is greater than `INT_MAX`.