|
PPL C Language Interface
0.12.1
|
Functions | |
| int | ppl_initialize (void) |
| Initializes the Parma Polyhedra Library. This function must be called before any other function. | |
| int | ppl_finalize (void) |
| Finalizes the Parma Polyhedra Library. This function must be called after any other function. | |
| int | ppl_set_rounding_for_PPL (void) |
| Sets the FPU rounding mode so that the PPL abstractions based on floating point numbers work correctly. | |
| int | ppl_restore_pre_PPL_rounding (void) |
| Sets the FPU rounding mode as it was before initialization of the PPL. | |
| int | ppl_irrational_precision (unsigned *p) |
Writes to p the precision parameter used for irrational calculations. | |
| int | ppl_set_irrational_precision (unsigned p) |
| Sets the precision parameter used for irrational calculations. | |
Functions for initialization/finalization of the library, as well as setting/resetting of floating-point rounding mode.
| int ppl_finalize | ( | void | ) |
Finalizes the Parma Polyhedra Library. This function must be called after any other function.
PPL_ERROR_INVALID_ARGUMENT if the library was already finalized. Definition at line 235 of file ppl_c_implementation_common.cc.
References Parma_Polyhedra_Library::finalize(), and Parma_Polyhedra_Library::Variable::set_output_function().
| int ppl_initialize | ( | void | ) |
Initializes the Parma Polyhedra Library. This function must be called before any other function.
PPL_ERROR_INVALID_ARGUMENT if the library was already initialized. Definition at line 173 of file ppl_c_implementation_common.cc.
References Parma_Polyhedra_Library::ANY_COMPLEXITY, Parma_Polyhedra_Library::PIP_Problem::CUTTING_STRATEGY, Parma_Polyhedra_Library::PIP_Problem::CUTTING_STRATEGY_ALL, Parma_Polyhedra_Library::PIP_Problem::CUTTING_STRATEGY_DEEPEST, Parma_Polyhedra_Library::PIP_Problem::CUTTING_STRATEGY_FIRST, Parma_Polyhedra_Library::Poly_Con_Relation::get_flags(), Parma_Polyhedra_Library::Poly_Gen_Relation::get_flags(), Parma_Polyhedra_Library::Variable::get_output_function(), Parma_Polyhedra_Library::initialize(), Parma_Polyhedra_Library::Poly_Con_Relation::is_disjoint(), Parma_Polyhedra_Library::Poly_Con_Relation::is_included(), Parma_Polyhedra_Library::MAXIMIZATION, Parma_Polyhedra_Library::MINIMIZATION, Parma_Polyhedra_Library::OPTIMIZED_MIP_PROBLEM, Parma_Polyhedra_Library::OPTIMIZED_PIP_PROBLEM, Parma_Polyhedra_Library::PIP_Problem::PIVOT_ROW_STRATEGY, Parma_Polyhedra_Library::PIP_Problem::PIVOT_ROW_STRATEGY_FIRST, Parma_Polyhedra_Library::PIP_Problem::PIVOT_ROW_STRATEGY_MAX_COLUMN, Parma_Polyhedra_Library::POLYNOMIAL_COMPLEXITY, PPL_COMPLEXITY_CLASS_ANY, PPL_COMPLEXITY_CLASS_POLYNOMIAL, PPL_COMPLEXITY_CLASS_SIMPLEX, PPL_MIP_PROBLEM_CONTROL_PARAMETER_NAME_PRICING, PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_EXACT, PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_FLOAT, PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK, PPL_MIP_PROBLEM_STATUS_OPTIMIZED, PPL_MIP_PROBLEM_STATUS_UNBOUNDED, PPL_MIP_PROBLEM_STATUS_UNFEASIBLE, PPL_OPTIMIZATION_MODE_MAXIMIZATION, PPL_OPTIMIZATION_MODE_MINIMIZATION, PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL, PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST, PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST, PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY, PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY, PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_FIRST, PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_COLUMN, PPL_PIP_PROBLEM_STATUS_OPTIMIZED, PPL_PIP_PROBLEM_STATUS_UNFEASIBLE, PPL_POLY_CON_RELATION_IS_DISJOINT, PPL_POLY_CON_RELATION_IS_INCLUDED, PPL_POLY_CON_RELATION_SATURATES, PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS, PPL_POLY_GEN_RELATION_SUBSUMES, Parma_Polyhedra_Library::MIP_Problem::PRICING, Parma_Polyhedra_Library::MIP_Problem::PRICING_STEEPEST_EDGE_EXACT, Parma_Polyhedra_Library::MIP_Problem::PRICING_STEEPEST_EDGE_FLOAT, Parma_Polyhedra_Library::MIP_Problem::PRICING_TEXTBOOK, Parma_Polyhedra_Library::Poly_Con_Relation::saturates(), Parma_Polyhedra_Library::Variable::set_output_function(), Parma_Polyhedra_Library::SIMPLEX_COMPLEXITY, Parma_Polyhedra_Library::Poly_Con_Relation::strictly_intersects(), Parma_Polyhedra_Library::Poly_Gen_Relation::subsumes(), Parma_Polyhedra_Library::UNBOUNDED_MIP_PROBLEM, Parma_Polyhedra_Library::UNFEASIBLE_MIP_PROBLEM, and Parma_Polyhedra_Library::UNFEASIBLE_PIP_PROBLEM.
| int ppl_irrational_precision | ( | unsigned * | p | ) |
Writes to p the precision parameter used for irrational calculations.
Definition at line 297 of file ppl_c_implementation_common.cc.
References Parma_Polyhedra_Library::irrational_precision().
| int ppl_restore_pre_PPL_rounding | ( | void | ) |
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.
Definition at line 290 of file ppl_c_implementation_common.cc.
References Parma_Polyhedra_Library::restore_pre_PPL_rounding().
| int ppl_set_irrational_precision | ( | unsigned | p | ) |
Sets the precision parameter used for irrational calculations.
If p is less than or equal to INT_MAX, sets the precision parameter used for irrational calculations to p. Then, in the irrational calculations returning an unbounded rational, (e.g., when computing a square root), the lesser between numerator and denominator will be limited to 2**p.
Definition at line 304 of file ppl_c_implementation_common.cc.
References Parma_Polyhedra_Library::set_irrational_precision().
| int ppl_set_rounding_for_PPL | ( | void | ) |
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.
Definition at line 283 of file ppl_c_implementation_common.cc.
References Parma_Polyhedra_Library::set_rounding_for_PPL().