|
PPL
0.12.1
|
#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"
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::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_< T, v, prefer_signed, typename Enable_If<(Fit< typename C_Integer< T >::smaller_signed_type, v >::value &&(prefer_signed||!Fit< typename C_Integer< T >::smaller_unsigned_type, v >::value))>::type > |
| struct | Parma_Polyhedra_Library::Constant_< T, v, prefer_signed, typename Enable_If<(Fit< typename C_Integer< T >::smaller_unsigned_type, v >::value &&(!prefer_signed||!Fit< typename C_Integer< T >::smaller_signed_type, v >::value))>::type > |
| 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 | |
| namespace | Parma_Polyhedra_Library |
| The entire library is confined to this namespace. | |
| namespace | Parma_Polyhedra_Library::Implementation |
| Implementation related data and functions. | |
Macros | |
| #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. | |
| #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 |
| #define | PPL_PROFILE_ADD_WEIGHT 0 |
| #define | WEIGHT_BEGIN() |
| #define | WEIGHT_ADD(delta) |
| #define | WEIGHT_ADD_MUL(delta, factor) |
Functions | |
| dimension_type | Parma_Polyhedra_Library::not_a_dimension () |
| Returns a value that does not designate a valid dimension. | |
| int32_t | Parma_Polyhedra_Library::hash_code_from_dimension (dimension_type dim) |
Returns the hash code for space dimension dim. | |
| template<typename T > | |
| Enable_If< Slow_Copy< T > ::value, void >::type | Parma_Polyhedra_Library::swap (T &, T &) |
| Make sure swap() is specialized when needed. | |
| dimension_type | Parma_Polyhedra_Library::compute_capacity (dimension_type requested_size, dimension_type maximum_size) |
| Speculative allocation function. | |
| bool | Parma_Polyhedra_Library::is_space (char c) |
Returns true if c is any kind of space character. | |
| template<typename T > | |
| Enable_If< Has_OK< T >::value, bool >::type | Parma_Polyhedra_Library::f_OK (const T &to) |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| #define FOK | ( | T | ) | inline bool f_OK(const T&) { return true; } |
Definition at line 442 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 69 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::Octagonal_Shape< T >::affine_preimage(), Parma_Polyhedra_Library::Affine_Space::Affine_Space(), Parma_Polyhedra_Library::Implementation::Termination::all_affine_ranking_functions_PR(), Parma_Polyhedra_Library::Implementation::Termination::all_affine_ranking_functions_PR_original(), Parma_Polyhedra_Library::Pointset_Powerset< PSET >::approximate_partition_aux(), Parma_Polyhedra_Library::PIP_Tree_Node::Artificial_Parameter::Artificial_Parameter(), 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::Polyhedron::BHRZ03_evolving_rays(), 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::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::BD_Shape< T >::constraints(), Parma_Polyhedra_Library::Octagonal_Shape< T >::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::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::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_Row::linear_combine(), Parma_Polyhedra_Library::MIP_Problem::linear_combine(), Parma_Polyhedra_Library::Sparse_Row::m_swap(), Parma_Polyhedra_Library::BD_Shape< T >::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::Dense_Row::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::Implementation::Termination::one_affine_ranking_function_PR(), Parma_Polyhedra_Library::Implementation::Termination::one_affine_ranking_function_PR_original(), Parma_Polyhedra_Library::Congruence::operator<<(), Parma_Polyhedra_Library::Generator::operator<<(), Parma_Polyhedra_Library::Constraint::operator<<(), Parma_Polyhedra_Library::Grid_Generator::operator<<(), Parma_Polyhedra_Library::Linear_Expression::operator<<(), Parma_Polyhedra_Library::Sparse_Matrix::permute_columns(), Parma_Polyhedra_Library::Dense_Matrix::permute_columns(), Parma_Polyhedra_Library::Polyhedron::Polyhedron(), 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::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::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 268 of file globals.defs.hh.
| #define PPL_OUTPUT_3_PARAM_TEMPLATE_DEFINITIONS | ( | type_symbol1, | |
| type_symbol2, | |||
| type_symbol3, | |||
| class_prefix | |||
| ) |
Definition at line 286 of file globals.defs.hh.
| #define PPL_OUTPUT_DECLARATIONS |
Definition at line 222 of file globals.defs.hh.
| #define PPL_OUTPUT_DEFINITIONS | ( | class_name | ) |
Definition at line 230 of file globals.defs.hh.
| #define PPL_OUTPUT_DEFINITIONS_ASCII_ONLY | ( | class_name | ) |
Definition at line 242 of file globals.defs.hh.
| #define PPL_OUTPUT_TEMPLATE_DEFINITIONS | ( | type_symbol, | |
| class_prefix | |||
| ) |
Definition at line 254 of file globals.defs.hh.
| #define PPL_OUTPUT_TEMPLATE_DEFINITIONS_ASCII_ONLY | ( | type_symbol, | |
| class_prefix | |||
| ) |
Definition at line 309 of file globals.defs.hh.
| #define PPL_PROFILE_ADD_WEIGHT 0 |
Definition at line 487 of file globals.defs.hh.
| #define PPL_STR | ( | s | ) | #s |
Definition at line 218 of file globals.defs.hh.
| #define PPL_USE_SPARSE_MATRIX 1 |
Definition at line 483 of file globals.defs.hh.
Definition at line 220 of file globals.defs.hh.
| #define WEIGHT_ADD | ( | delta | ) |
do { \ if (Implementation::in_assert == 0) \ Weightwatch_Traits::weight += delta; \ } while (false)
Definition at line 522 of file globals.defs.hh.
Referenced by Parma_Polyhedra_Library::PIP_Tree_Node::add_constraint(), Parma_Polyhedra_Library::PIP_Tree_Node::compatibility_check(), Parma_Polyhedra_Library::MIP_Problem::compute_simplex_using_steepest_edge_float(), Parma_Polyhedra_Library::PIP_Solution_Node::generate_cut(), Parma_Polyhedra_Library::MIP_Problem::get_exiting_base_index(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::is_better_pivot(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::normalize(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::scale(), Parma_Polyhedra_Library::PIP_Solution_Node::solve(), Parma_Polyhedra_Library::MIP_Problem::steepest_edge_float_entering_index(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().
| #define WEIGHT_ADD_MUL | ( | delta, | |
| factor | |||
| ) |
do { \ if (Implementation::in_assert == 0) \ Weightwatch_Traits::weight += delta * factor; \ } while (false)
Definition at line 527 of file globals.defs.hh.
Referenced by Parma_Polyhedra_Library::Polyhedron::conversion(), Parma_Polyhedra_Library::MIP_Problem::linear_combine(), Parma_Polyhedra_Library::Box< ITV >::propagate_constraints_no_check(), Parma_Polyhedra_Library::MIP_Problem::steepest_edge_exact_entering_index(), and Parma_Polyhedra_Library::MIP_Problem::steepest_edge_float_entering_index().
| #define WEIGHT_BEGIN | ( | ) |
Definition at line 521 of file globals.defs.hh.
Referenced by Parma_Polyhedra_Library::PIP_Tree_Node::add_constraint(), Parma_Polyhedra_Library::PIP_Tree_Node::compatibility_check(), Parma_Polyhedra_Library::MIP_Problem::compute_simplex_using_steepest_edge_float(), Parma_Polyhedra_Library::Polyhedron::conversion(), Parma_Polyhedra_Library::PIP_Solution_Node::generate_cut(), Parma_Polyhedra_Library::MIP_Problem::get_exiting_base_index(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::is_better_pivot(), Parma_Polyhedra_Library::MIP_Problem::linear_combine(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::normalize(), Parma_Polyhedra_Library::Box< ITV >::propagate_constraints_no_check(), Parma_Polyhedra_Library::PIP_Solution_Node::Tableau::scale(), Parma_Polyhedra_Library::PIP_Solution_Node::solve(), Parma_Polyhedra_Library::MIP_Problem::steepest_edge_exact_entering_index(), Parma_Polyhedra_Library::MIP_Problem::steepest_edge_float_entering_index(), and Parma_Polyhedra_Library::PIP_Solution_Node::update_tableau().