PPL  1.2
globals_defs.hh File Reference
#include "globals_types.hh"
#include "C_Integer.hh"
#include "meta_programming.hh"
#include "Slow_Copy.hh"
#include "Temp_defs.hh"
#include <exception>
#include <gmpxx.h>
#include "globals_inlines.hh"
Include dependency graph for globals_defs.hh:

Go to the source code of this file.

Classes

struct  Parma_Polyhedra_Library::Weightwatch_Traits
 Traits class for the deterministic timeout mechanism. More...
 
class  Parma_Polyhedra_Library::In_Assert
 
class  Parma_Polyhedra_Library::Throwable
 User objects the PPL can throw. More...
 
struct  Parma_Polyhedra_Library::Recycle_Input
 A tag class. More...
 
struct  Parma_Polyhedra_Library::Fit< T, v, Enable >
 
struct  Parma_Polyhedra_Library::Fit< T, v, typename Enable_If< C_Integer< T >::value >::type >
 
struct  Parma_Polyhedra_Library::TConstant< T, v >
 
struct  Parma_Polyhedra_Library::Constant_< T, v, prefer_signed, Enable >
 
struct  Parma_Polyhedra_Library::Constant< v, prefer_signed >
 
struct  Parma_Polyhedra_Library::Has_OK< T, Enable >
 
struct  Parma_Polyhedra_Library::Has_OK< T, typename Enable_If_Is< bool(T::*)() const,&T::OK >::type >
 

Namespaces

 Parma_Polyhedra_Library
 The entire library is confined to this namespace.
 

Macros

#define PPL_PROFILE_ADD_WEIGHT   0
 
#define WEIGHT_BEGIN()
 
#define WEIGHT_ADD(delta)
 
#define WEIGHT_ADD_MUL(delta, factor)
 
#define PPL_DIRTY_TEMP_COEFFICIENT(id)   PPL_DIRTY_TEMP(Parma_Polyhedra_Library::Coefficient, id)
 Declare a local variable named id, of type Coefficient, and containing an unknown initial value. More...
 
#define PPL_STR(s)   #s
 
#define PPL_XSTR(s)   PPL_STR(s)
 
#define PPL_OUTPUT_DECLARATIONS
 
#define PPL_OUTPUT_DEFINITIONS(class_name)
 
#define PPL_OUTPUT_DEFINITIONS_ASCII_ONLY(class_name)
 
#define PPL_OUTPUT_TEMPLATE_DEFINITIONS(type_symbol, class_prefix)
 
#define PPL_OUTPUT_2_PARAM_TEMPLATE_DEFINITIONS(type_symbol1, type_symbol2, class_prefix)
 
#define PPL_OUTPUT_3_PARAM_TEMPLATE_DEFINITIONS(type_symbol1, type_symbol2, type_symbol3, class_prefix)
 
#define PPL_OUTPUT_TEMPLATE_DEFINITIONS_ASCII_ONLY(type_symbol, class_prefix)
 
#define FOK(T)   inline bool f_OK(const T&) { return true; }
 
#define PPL_USE_SPARSE_MATRIX   1
 

Functions

dimension_type Parma_Polyhedra_Library::not_a_dimension ()
 Returns a value that does not designate a valid dimension. More...
 
int32_t Parma_Polyhedra_Library::hash_code_from_dimension (dimension_type dim)
 Returns the hash code for space dimension dim. More...
 
template<typename T >
Enable_If< Slow_Copy< T >::value, void >::type Parma_Polyhedra_Library::swap (T &, T &)
 Make sure swap() is specialized when needed. More...
 
dimension_type Parma_Polyhedra_Library::compute_capacity (dimension_type requested_size, dimension_type maximum_size)
 Speculative allocation function. More...
 
bool Parma_Polyhedra_Library::is_space (char c)
 Returns true if c is any kind of space character. More...
 
template<typename T >
Enable_If< Has_OK< T >::value, bool >::type Parma_Polyhedra_Library::f_OK (const T &to)
 
void Parma_Polyhedra_Library::ascii_dump (std::ostream &s, Representation r)
 
bool Parma_Polyhedra_Library::ascii_load (std::istream &s, Representation &r)
 
dimension_type Parma_Polyhedra_Library::check_space_dimension_overflow (const dimension_type dim, const dimension_type max, const char *domain, const char *method, const char *reason)
 
template<typename RA_Container >
RA_Container::iterator Parma_Polyhedra_Library::nth_iter (RA_Container &cont, dimension_type n)
 
template<typename RA_Container >
RA_Container::const_iterator Parma_Polyhedra_Library::nth_iter (const RA_Container &cont, dimension_type n)
 
dimension_type Parma_Polyhedra_Library::least_significant_one_mask (dimension_type i)
 
Memory Size Inspection Functions
template<typename T >
Enable_If< Is_Native< T >::value, memory_size_type >::type Parma_Polyhedra_Library::total_memory_in_bytes (const T &)
 For native types, returns the total size in bytes of the memory occupied by the type of the (unused) parameter, i.e., 0. More...
 
template<typename T >
Enable_If< Is_Native< T >::value, memory_size_type >::type Parma_Polyhedra_Library::external_memory_in_bytes (const T &)
 For native types, returns the size in bytes of the memory managed by the type of the (unused) parameter, i.e., 0. More...
 
memory_size_type Parma_Polyhedra_Library::total_memory_in_bytes (const mpz_class &x)
 Returns the total size in bytes of the memory occupied by x. More...
 
memory_size_type Parma_Polyhedra_Library::external_memory_in_bytes (const mpz_class &x)
 Returns the size in bytes of the memory managed by x. More...
 
memory_size_type Parma_Polyhedra_Library::total_memory_in_bytes (const mpq_class &x)
 Returns the total size in bytes of the memory occupied by x. More...
 
memory_size_type Parma_Polyhedra_Library::external_memory_in_bytes (const mpq_class &x)
 Returns the size in bytes of the memory managed by x. More...
 

Macro Definition Documentation

#define FOK (   T)    inline bool f_OK(const T&) { return true; }

Definition at line 522 of file globals_defs.hh.

#define PPL_DIRTY_TEMP_COEFFICIENT (   id)    PPL_DIRTY_TEMP(Parma_Polyhedra_Library::Coefficient, id)

Declare a local variable named id, of type Coefficient, and containing an unknown initial value.

Use of this macro to declare temporaries of type Coefficient results in decreased memory allocation overhead and in better locality.

Definition at line 133 of file globals_defs.hh.

Referenced by Parma_Polyhedra_Library::BD_Shape< T >::add_constraint(), Parma_Polyhedra_Library::Octagonal_Shape< T >::add_constraint(), Parma_Polyhedra_Library::Polyhedron::affine_form_image(), Parma_Polyhedra_Library::Grid_Generator_System::affine_image(), Parma_Polyhedra_Library::Generator_System::affine_image(), Parma_Polyhedra_Library::Octagonal_Shape< T >::affine_image(), Parma_Polyhedra_Library::BD_Shape< T >::affine_image(), Parma_Polyhedra_Library::Congruence::affine_preimage(), Parma_Polyhedra_Library::Octagonal_Shape< T >::affine_preimage(), Parma_Polyhedra_Library::Affine_Space::Affine_Space(), Parma_Polyhedra_Library::Pointset_Powerset< PSET >::approximate_partition_aux(), Parma_Polyhedra_Library::Linear_Expression_Impl< Row >::ascii_load(), Parma_Polyhedra_Library::Sparse_Row::ascii_load(), Parma_Polyhedra_Library::BD_Shape< T >::BD_Shape(), Parma_Polyhedra_Library::BD_Shape< T >::BFT00_upper_bound_assign_if_exact(), Parma_Polyhedra_Library::Box< ITV >::bounded_affine_image(), Parma_Polyhedra_Library::Octagonal_Shape< T >::bounded_affine_image(), Parma_Polyhedra_Library::BD_Shape< T >::bounded_affine_image(), Parma_Polyhedra_Library::Box< ITV >::bounded_affine_preimage(), Parma_Polyhedra_Library::Octagonal_Shape< T >::bounded_affine_preimage(), Parma_Polyhedra_Library::BD_Shape< T >::bounded_affine_preimage(), Parma_Polyhedra_Library::BD_Shape< T >::bounds(), Parma_Polyhedra_Library::Octagonal_Shape< T >::bounds(), Parma_Polyhedra_Library::Box< ITV >::Box(), Parma_Polyhedra_Library::MIP_Problem::choose_branching_variable(), Parma_Polyhedra_Library::PIP_Tree_Node::compatibility_check(), Parma_Polyhedra_Library::MIP_Problem::compute_generator(), Parma_Polyhedra_Library::MIP_Problem::compute_simplex_using_steepest_edge_float(), Parma_Polyhedra_Library::Box< ITV >::congruences(), Parma_Polyhedra_Library::BD_Shape< T >::constraints(), Parma_Polyhedra_Library::Octagonal_Shape< T >::constraints(), Parma_Polyhedra_Library::Box< ITV >::constraints(), Parma_Polyhedra_Library::Polyhedron::contains_integer_point(), Parma_Polyhedra_Library::Grid::conversion(), Parma_Polyhedra_Library::Polyhedron::conversion(), Parma_Polyhedra_Library::Polyhedron::convert_to_integer_expression(), Parma_Polyhedra_Library::Octagonal_Shape< T >::deduce_minus_v_pm_u_bounds(), Parma_Polyhedra_Library::Octagonal_Shape< T >::deduce_v_pm_u_bounds(), Parma_Polyhedra_Library::Polyhedron::drop_some_non_integer_points(), Parma_Polyhedra_Library::Grid_Generator::fancy_print(), Parma_Polyhedra_Library::Generator::fancy_print(), Parma_Polyhedra_Library::Box< ITV >::frequency(), Parma_Polyhedra_Library::BD_Shape< T >::frequency(), Parma_Polyhedra_Library::Polyhedron::frequency(), Parma_Polyhedra_Library::Octagonal_Shape< T >::frequency(), Parma_Polyhedra_Library::Grid::frequency_no_check(), Parma_Polyhedra_Library::Box< ITV >::generalized_affine_image(), Parma_Polyhedra_Library::Octagonal_Shape< T >::generalized_affine_image(), Parma_Polyhedra_Library::BD_Shape< T >::generalized_affine_image(), Parma_Polyhedra_Library::Grid::generalized_affine_image(), Parma_Polyhedra_Library::Box< ITV >::generalized_affine_preimage(), Parma_Polyhedra_Library::BD_Shape< T >::generalized_affine_preimage(), Parma_Polyhedra_Library::Octagonal_Shape< T >::generalized_affine_preimage(), Parma_Polyhedra_Library::Grid::generalized_affine_preimage(), Parma_Polyhedra_Library::Polyhedron::generalized_affine_preimage(), Parma_Polyhedra_Library::PIP_Solution_Node::generate_cut(), Parma_Polyhedra_Library::MIP_Problem::get_exiting_base_index(), Parma_Polyhedra_Library::Octagonal_Shape< T >::get_limiting_octagon(), Parma_Polyhedra_Library::BD_Shape< T >::get_limiting_shape(), Parma_Polyhedra_Library::Grid::Grid(), Parma_Polyhedra_Library::Scalar_Products::homogeneous_sign(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::is_better_pivot(), Parma_Polyhedra_Library::Generator::is_matching_closure_point(), Parma_Polyhedra_Library::MIP_Problem::is_mip_satisfiable(), Parma_Polyhedra_Library::Linear_Expression_Impl< Row >::linear_combine(), Parma_Polyhedra_Library::MIP_Problem::linear_combine(), Parma_Polyhedra_Library::BD_Shape< T >::max_min(), Parma_Polyhedra_Library::Box< ITV >::max_min(), Parma_Polyhedra_Library::Grid::max_min(), Parma_Polyhedra_Library::Octagonal_Shape< T >::max_min(), Parma_Polyhedra_Library::Polyhedron::max_min(), Parma_Polyhedra_Library::Pointset_Powerset< PSET >::maximize(), Parma_Polyhedra_Library::Partially_Reduced_Product< D1, D2, R >::maximize(), Parma_Polyhedra_Library::Pointset_Powerset< PSET >::minimize(), Parma_Polyhedra_Library::Partially_Reduced_Product< D1, D2, R >::minimize(), Parma_Polyhedra_Library::BD_Shape< T >::minimized_congruences(), Parma_Polyhedra_Library::Octagonal_Shape< T >::minimized_congruences(), Parma_Polyhedra_Library::BD_Shape< T >::minimized_constraints(), Parma_Polyhedra_Library::Box< ITV >::minimized_constraints(), Parma_Polyhedra_Library::Polyhedron::modify_according_to_evolution(), Parma_Polyhedra_Library::Dense_Row::normalize(), Parma_Polyhedra_Library::Congruence::normalize(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::normalize(), Parma_Polyhedra_Library::Sparse_Row::normalize(), Parma_Polyhedra_Library::normalize2(), Parma_Polyhedra_Library::Grid::normalize_divisors(), Parma_Polyhedra_Library::Congruence_System::normalize_moduli(), Parma_Polyhedra_Library::Octagonal_Shape< T >::Octagonal_Shape(), Parma_Polyhedra_Library::MIP_Problem::OK(), Parma_Polyhedra_Library::Congruence::operator<<(), Parma_Polyhedra_Library::Constraint::operator<<(), Parma_Polyhedra_Library::Matrix< Row >::permute_columns(), Parma_Polyhedra_Library::Linear_Expression_Impl< Row >::permute_space_dimensions(), Parma_Polyhedra_Library::Polyhedron::Polyhedron(), Parma_Polyhedra_Library::Linear_Expression_Impl< Row >::print(), Parma_Polyhedra_Library::Shape_Preserving_Reduction< D1, D2 >::product_reduce(), Parma_Polyhedra_Library::Grid::reduce_congruence_with_equality(), Parma_Polyhedra_Library::Grid::reduce_equality_with_equality(), Parma_Polyhedra_Library::Grid::reduce_line_with_line(), Parma_Polyhedra_Library::Grid::reduce_parameter_with_line(), Parma_Polyhedra_Library::Grid::reduce_pc_with_pc(), Parma_Polyhedra_Library::Grid::reduce_reduced(), Parma_Polyhedra_Library::Scalar_Products::reduced_sign(), Parma_Polyhedra_Library::Octagonal_Shape< T >::refine(), Parma_Polyhedra_Library::BD_Shape< T >::refine(), Parma_Polyhedra_Library::Octagonal_Shape< T >::refine_no_check(), Parma_Polyhedra_Library::BD_Shape< T >::refine_no_check(), Parma_Polyhedra_Library::Box< ITV >::relation_with(), Parma_Polyhedra_Library::Polyhedron::relation_with(), Parma_Polyhedra_Library::Grid::relation_with(), Parma_Polyhedra_Library::Octagonal_Shape< T >::relation_with(), Parma_Polyhedra_Library::BD_Shape< T >::relation_with(), Parma_Polyhedra_Library::Congruence_System::satisfies_all_congruences(), Parma_Polyhedra_Library::Linear_Expression_Impl< Row >::scalar_product_sign(), Parma_Polyhedra_Library::Grid_Generator::scale_to_divisor(), Parma_Polyhedra_Library::shrink_to_congruence_no_check(), Parma_Polyhedra_Library::Scalar_Products::sign(), Parma_Polyhedra_Library::Grid::simplify_using_context_assign(), Parma_Polyhedra_Library::PIP_Solution_Node::solve(), Parma_Polyhedra_Library::MIP_Problem::solve_mip(), Parma_Polyhedra_Library::MIP_Problem::steepest_edge_exact_entering_index(), Parma_Polyhedra_Library::Sparse_Row::swap_coefficients(), Parma_Polyhedra_Library::PIP_Solution_Node::update_solution(), Parma_Polyhedra_Library::Implementation::wrap_assign(), Parma_Polyhedra_Library::Box< ITV >::wrap_assign(), Parma_Polyhedra_Library::Grid::wrap_assign(), and Parma_Polyhedra_Library::Implementation::wrap_assign_col().

#define PPL_OUTPUT_2_PARAM_TEMPLATE_DEFINITIONS (   type_symbol1,
  type_symbol2,
  class_prefix 
)

Definition at line 343 of file globals_defs.hh.

#define PPL_OUTPUT_3_PARAM_TEMPLATE_DEFINITIONS (   type_symbol1,
  type_symbol2,
  type_symbol3,
  class_prefix 
)

Definition at line 361 of file globals_defs.hh.

#define PPL_OUTPUT_DECLARATIONS

Definition at line 297 of file globals_defs.hh.

#define PPL_OUTPUT_DEFINITIONS (   class_name)

Definition at line 305 of file globals_defs.hh.

#define PPL_OUTPUT_DEFINITIONS_ASCII_ONLY (   class_name)

Definition at line 317 of file globals_defs.hh.

#define PPL_OUTPUT_TEMPLATE_DEFINITIONS (   type_symbol,
  class_prefix 
)

Definition at line 329 of file globals_defs.hh.

#define PPL_OUTPUT_TEMPLATE_DEFINITIONS_ASCII_ONLY (   type_symbol,
  class_prefix 
)

Definition at line 384 of file globals_defs.hh.

#define PPL_PROFILE_ADD_WEIGHT   0

Definition at line 36 of file globals_defs.hh.

#define PPL_STR (   s)    #s

Definition at line 293 of file globals_defs.hh.

#define PPL_USE_SPARSE_MATRIX   1

Definition at line 566 of file globals_defs.hh.

#define PPL_XSTR (   s)    PPL_STR(s)

Definition at line 295 of file globals_defs.hh.