Parma_Polyhedra_Library Namespace Reference

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


Namespaces

namespace  IO_Operators
 All input/output operators are confined to this namespace.

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  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  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  Congruence_System
 A system of congruences. More...
class  Congruence
 A linear congruence. More...
class  Grid_Generator_System
 A system of grid generators. More...
class  Grid_Generator
 A grid line, parameter or grid point. 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  Poly_Gen_Relation
 The relation between a polyhedron and a generator. More...
class  Polyhedron
 The base class for convex polyhedra. More...
class  Variables_Set
 An std::set of variables' indexes. More...
class  MIP_Problem
 A Mixed Integer (linear) Programming problem. More...
class  Grid_Certificate
 The convergence certificate for the Grid widening operator. More...
class  C_Polyhedron
 A closed convex polyhedron. More...
class  NNC_Polyhedron
 A not necessarily closed convex polyhedron. More...
class  Grid
 A grid. More...
class  Interval
 A generic, not necessarily closed, possibly restricted interval. More...
class  Box
 A not necessarily closed, iso-oriented hyperrectangle. More...
class  BD_Shape
 A bounded difference shape. More...
class  Octagonal_Shape
 An octagonal shape. 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
 This class provides the reduction method for the Direct_Product domain. More...
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  Determinate
 Wraps a PPL class into a determinate constraint system interface. More...
class  Powerset
 The powerset construction on a base-level domain. 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...

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.
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 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.
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.
Rounding_Dir inverse (Rounding_Dir dir)
 Returns the inverse rounding mode of dir, ROUND_IGNORE being the inverse of itself.
void initialize ()
 Initializes the library.
void finalize ()
 Finalizes the library.
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.
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.


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.

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.

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.

The lesser between numerator and denominator is limited to 2**p.

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.


Generated on Sat Apr 18 07:13:19 2009 for PPL by  doxygen 1.5.7.1