30 namespace Interfaces {
34 error_handler_type user_error_handler = 0;
36 extern "C" const char*
38 #if PPL_SIZEOF_SIZE_T == PPL_SIZEOF_INT
40 # define CONVERSION (unsigned)
41 #elif PPL_SIZEOF_SIZE_T == PPL_SIZEOF_LONG
43 # define CONVERSION (unsigned long)
44 #elif PPL_SIZEOF_SIZE_T == PPL_SIZEOF_LONG_LONG
45 # define FORMAT "%llu"
46 # define CONVERSION (unsigned long long)
48 # error "Unsupported definition for `size_t'."
53 #if defined(ULLONG_MAX) && ULLONG_MAX > 18446744073709551615ULL
54 # error "Please enlarge the buffer in the following line."
56 static char buffer[20];
57 buffer[0] =
static_cast<char>(
'A' + var % 26);
76 cxx_Variable_output_function(std::ostream& s,
const Variable v) {
77 const char* b = c_variable_output_function(v.
id());
85 extern "C" typedef const char*
93 if (user_error_handler != 0)
94 user_error_handler(code, description);
103 Weightwatch* p_deterministic_timeout_object = 0;
107 if (p_timeout_object != 0) {
108 delete p_timeout_object;
109 p_timeout_object = 0;
115 reset_deterministic_timeout() {
116 if (p_deterministic_timeout_object != 0) {
117 delete p_deterministic_timeout_object;
118 p_deterministic_timeout_object = 0;
168 user_error_handler = h;
176 PPL_POLY_CON_RELATION_IS_DISJOINT
178 PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS
180 PPL_POLY_CON_RELATION_IS_INCLUDED
182 PPL_POLY_CON_RELATION_SATURATES
185 PPL_POLY_GEN_RELATION_SUBSUMES
196 PPL_MIP_PROBLEM_CONTROL_PARAMETER_NAME_PRICING
198 PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_FLOAT
200 PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_EXACT
202 PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK
208 PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY
210 PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST
212 PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST
214 PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL
216 PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY
218 PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_FIRST
220 PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_COLUMN
226 c_variable_output_function = c_variable_default_output_function;
263 unsigned scale)
try {
265 reset_deterministic_timeout();
268 p_deterministic_timeout_object
269 =
new Weightwatch(Traits::compute_delta(unscaled_weight, scale),
277 reset_deterministic_timeout();
374 *pc = to_nonconst(
new Coefficient(reinterpret_mpz_class(z)));
381 ppl_const_Coefficient_t c)
try {
405 ddst = reinterpret_mpz_class(z);
412 ppl_const_Coefficient_t src)
try {
428 return std::numeric_limits<Coefficient>::is_bounded ? 1 : 0;
434 if (std::numeric_limits<Coefficient>::is_bounded) {
435 assign_r(reinterpret_mpz_class(min),
436 std::numeric_limits<Coefficient>::min(),
447 if (std::numeric_limits<Coefficient>::is_bounded) {
448 assign_r(reinterpret_mpz_class(max),
449 std::numeric_limits<Coefficient>::max(),
470 *ple = to_nonconst(d == 0
479 (ppl_Linear_Expression_t* ple, ppl_const_Linear_Expression_t le)
try {
495 (ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
try {
506 ppl_const_Coefficient_t n)
try {
516 ppl_const_Coefficient_t n)
try {
526 (ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
try {
536 (ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
try {
546 ppl_const_Coefficient_t n)
try {
557 *m = to_const(le)->space_dimension();
565 ppl_Coefficient_t n)
try {
575 ppl_Coefficient_t n)
try {
585 return to_const(le)->OK() ? 1 : 0;
591 return to_const(le)->is_zero() ? 1 : 0;
597 (ppl_const_Linear_Expression_t le)
try {
598 return to_const(le)->all_homogeneous_terms_are_zero() ? 1 : 0;
606 ppl_const_Linear_Expression_t le,
627 throw std::invalid_argument(
"ppl_new_Constraint(pc, le, t): "
630 *pc = to_nonconst(ppc);
651 ppl_const_Constraint_t c)
try {
667 ppl_const_Constraint_t src)
try {
678 *m = to_const(c)->space_dimension();
685 switch (to_const(c)->type()) {
700 ppl_Coefficient_t n)
try {
710 ppl_Coefficient_t n)
try {
720 return to_const(c)->OK() ? 1 : 0;
726 ppl_const_Constraint_t c)
try {
744 *pcs = to_nonconst(
new
753 ppl_const_Constraint_t c)
try {
762 (ppl_Constraint_System_t* pcs, ppl_const_Constraint_System_t cs)
try {
778 (ppl_Constraint_System_t dst, ppl_const_Constraint_System_t src)
try {
789 *m = to_const(cs)->space_dimension();
796 (ppl_const_Constraint_System_t cs)
try {
798 return ccs.
empty() ? 1 : 0;
804 (ppl_const_Constraint_System_t cs)
try {
812 to_nonconst(cs)->clear();
819 ppl_const_Constraint_t c)
try {
829 return to_const(cs)->OK() ? 1 : 0;
837 (ppl_Constraint_System_const_iterator_t* pcit)
try {
845 (ppl_Constraint_System_const_iterator_t* pcit,
846 ppl_const_Constraint_System_const_iterator_t cit)
try {
854 (ppl_const_Constraint_System_const_iterator_t cit)
856 delete to_const(cit);
863 (ppl_Constraint_System_const_iterator_t dst,
864 ppl_const_Constraint_System_const_iterator_t src)
try {
874 ppl_Constraint_System_const_iterator_t cit)
try {
884 ppl_Constraint_System_const_iterator_t cit)
try {
894 (ppl_const_Constraint_System_const_iterator_t cit,
895 ppl_const_Constraint_t* pc)
try {
905 (ppl_Constraint_System_const_iterator_t cit)
try {
914 (ppl_const_Constraint_System_const_iterator_t x,
915 ppl_const_Constraint_System_const_iterator_t y)
try {
918 return (xx == yy) ? 1 : 0;
926 ppl_const_Linear_Expression_t le,
928 ppl_const_Coefficient_t d)
try {
946 throw std::invalid_argument(
"ppl_new_Generator(pg, le, t, d): t invalid");
948 *pg = to_nonconst(ppg);
969 ppl_const_Generator_t g)
try {
985 ppl_const_Generator_t src)
try {
996 *m = to_const(g)->space_dimension();
1003 switch (to_const(g)->type()) {
1020 ppl_Coefficient_t n)
try {
1030 ppl_Coefficient_t n)
try {
1040 return to_const(g)->OK() ? 1 : 0;
1046 ppl_const_Generator_t g)
try {
1071 ppl_const_Generator_t g)
try {
1080 (ppl_Generator_System_t* pgs, ppl_const_Generator_System_t gs)
try {
1089 delete to_const(gs);
1096 (ppl_Generator_System_t dst, ppl_const_Generator_System_t src)
try {
1107 *m = to_const(gs)->space_dimension();
1114 (ppl_const_Generator_System_t gs)
try {
1116 return cgs.
empty() ? 1 : 0;
1122 to_nonconst(gs)->clear();
1129 ppl_const_Generator_t g)
try {
1139 return to_const(gs)->OK() ? 1 : 0;
1147 (ppl_Generator_System_const_iterator_t* pgit)
try {
1155 (ppl_Generator_System_const_iterator_t* pgit,
1156 ppl_const_Generator_System_const_iterator_t git)
try {
1164 (ppl_const_Generator_System_const_iterator_t git)
try {
1165 delete to_const(git);
1172 (ppl_Generator_System_const_iterator_t dst,
1173 ppl_const_Generator_System_const_iterator_t src)
try {
1183 ppl_Generator_System_const_iterator_t git)
try {
1193 ppl_Generator_System_const_iterator_t git)
try {
1203 (ppl_const_Generator_System_const_iterator_t git,
1204 ppl_const_Generator_t* pg)
try {
1214 (ppl_Generator_System_const_iterator_t git)
try {
1223 (ppl_const_Generator_System_const_iterator_t x,
1224 ppl_const_Generator_System_const_iterator_t y)
try {
1227 return (xx == yy) ? 1 : 0;
1235 ppl_const_Linear_Expression_t le,
1236 ppl_const_Coefficient_t m)
try {
1241 *pc = to_nonconst(ppc);
1262 ppl_const_Congruence_t c)
try {
1271 delete to_const(le);
1278 ppl_const_Congruence_t src)
try {
1289 *m = to_const(c)->space_dimension();
1297 ppl_Coefficient_t n)
try {
1307 ppl_Coefficient_t n)
try {
1317 ppl_Coefficient_t m)
try {
1327 return to_const(c)->OK() ? 1 : 0;
1333 ppl_const_Congruence_t c)
try {
1351 *pcs = to_nonconst(
new
1360 ppl_const_Congruence_t c)
try {
1369 (ppl_Congruence_System_t* pcs, ppl_const_Congruence_System_t cs)
try {
1378 delete to_const(cs);
1385 (ppl_Congruence_System_t dst, ppl_const_Congruence_System_t src)
try {
1396 *m = to_const(cs)->space_dimension();
1403 (ppl_const_Congruence_System_t cs)
try {
1405 return ccs.
empty() ? 1 : 0;
1411 to_nonconst(cs)->clear();
1418 ppl_const_Congruence_t c)
try {
1428 return to_const(cs)->OK() ? 1 : 0;
1436 (ppl_Congruence_System_const_iterator_t* pcit)
try {
1444 (ppl_Congruence_System_const_iterator_t* pcit,
1445 ppl_const_Congruence_System_const_iterator_t cit)
try {
1453 (ppl_const_Congruence_System_const_iterator_t cit)
1455 delete to_const(cit);
1462 (ppl_Congruence_System_const_iterator_t dst,
1463 ppl_const_Congruence_System_const_iterator_t src)
try {
1473 ppl_Congruence_System_const_iterator_t cit)
try {
1483 ppl_Congruence_System_const_iterator_t cit)
try {
1493 (ppl_const_Congruence_System_const_iterator_t cit,
1494 ppl_const_Congruence_t* pc)
try {
1504 (ppl_Congruence_System_const_iterator_t cit)
try {
1513 (ppl_const_Congruence_System_const_iterator_t x,
1514 ppl_const_Congruence_System_const_iterator_t y)
try {
1517 return (xx == yy) ? 1 : 0;
1525 ppl_const_Linear_Expression_t le,
1527 ppl_const_Coefficient_t d)
try {
1542 throw std::invalid_argument(
"ppl_new_Grid_Generator(pg, le, t, d): "
1545 *pg = to_nonconst(ppg);
1559 ppl_const_Grid_Generator_t g)
try {
1568 delete to_const(le);
1575 (ppl_Grid_Generator_t dst,
1576 ppl_const_Grid_Generator_t src)
try {
1587 *m = to_const(g)->space_dimension();
1594 switch (to_const(g)->type()) {
1609 ppl_Coefficient_t n)
try {
1619 ppl_Coefficient_t n)
try {
1629 return to_const(g)->OK() ? 1 : 0;
1655 (ppl_Grid_Generator_System_t* pgs)
try {
1664 (ppl_Grid_Generator_System_t* pgs, ppl_const_Grid_Generator_t g)
try {
1673 (ppl_Grid_Generator_System_t* pgs, ppl_const_Grid_Generator_System_t gs)
try {
1682 delete to_const(gs);
1689 (ppl_Grid_Generator_System_t dst, ppl_const_Grid_Generator_System_t src)
try {
1700 *m = to_const(gs)->space_dimension();
1707 (ppl_const_Grid_Generator_System_t gs)
try {
1709 return cgs.
empty() ? 1 : 0;
1715 to_nonconst(gs)->clear();
1722 (ppl_Grid_Generator_System_t gs,
1723 ppl_const_Grid_Generator_t g)
try {
1733 return to_const(gs)->OK() ? 1 : 0;
1741 (ppl_Grid_Generator_System_const_iterator_t* pgit)
try {
1742 *pgit = to_nonconst(
new Grid_Generator_System::const_iterator());
1749 (ppl_Grid_Generator_System_const_iterator_t* pgit,
1750 ppl_const_Grid_Generator_System_const_iterator_t git)
try {
1752 (
new Grid_Generator_System::const_iterator(*to_const(git)));
1759 (ppl_const_Grid_Generator_System_const_iterator_t git)
try {
1760 delete to_const(git);
1767 (ppl_Grid_Generator_System_const_iterator_t dst,
1768 ppl_const_Grid_Generator_System_const_iterator_t src)
try {
1769 const Grid_Generator_System::const_iterator& ssrc = *to_const(src);
1770 Grid_Generator_System::const_iterator& ddst = *to_nonconst(dst);
1778 (ppl_const_Grid_Generator_System_t gs,
1779 ppl_Grid_Generator_System_const_iterator_t git)
try {
1781 Grid_Generator_System::const_iterator& ggit = *to_nonconst(git);
1789 (ppl_const_Grid_Generator_System_t gs,
1790 ppl_Grid_Generator_System_const_iterator_t git)
try {
1792 Grid_Generator_System::const_iterator& ggit = *to_nonconst(git);
1800 (ppl_const_Grid_Generator_System_const_iterator_t git,
1801 ppl_const_Grid_Generator_t* pg)
try {
1802 const Grid_Generator_System::const_iterator& ggit = *to_const(git);
1811 (ppl_Grid_Generator_System_const_iterator_t git)
try {
1812 Grid_Generator_System::const_iterator& ggit = *to_nonconst(git);
1820 (ppl_const_Grid_Generator_System_const_iterator_t x,
1821 ppl_const_Grid_Generator_System_const_iterator_t y)
try {
1822 const Grid_Generator_System::const_iterator& xx = *to_const(x);
1823 const Grid_Generator_System::const_iterator& yy = *to_const(y);
1824 return (xx == yy) ? 1 : 0;
1839 ppl_const_Constraint_System_t cs,
1840 ppl_const_Linear_Expression_t le,
int m)
try {
1845 *pmip = to_nonconst(
new MIP_Problem(d, ccs, lle, mm));
1852 ppl_const_MIP_Problem_t mip)
try {
1861 delete to_const(mip);
1868 ppl_const_MIP_Problem_t src)
try {
1879 *m = to_const(mip)->space_dimension();
1896 const Variables_Set& vars = to_const(mip)->integer_space_dimensions();
1898 for (Variables_Set::const_iterator v_iter = vars.begin(),
1899 v_end = vars.end(); v_iter != v_end; ++v_iter, ++ds_i)
1917 ppl_const_Constraint_t* pc)
try {
1921 assert(i < num_constraints);
1932 ppl_const_Linear_Expression_t* ple)
try {
1934 *ple = to_const(&le);
1941 return to_const(mip)->optimization_mode();
1947 to_nonconst(mip)->clear();
1976 ppl_const_Constraint_t c)
try {
1986 ppl_const_Constraint_System_t cs)
try {
1996 ppl_const_Linear_Expression_t le)
try {
2016 return to_const(mip)->is_satisfiable() ? 1 : 0;
2022 return to_const(mip)->solve();
2028 ppl_const_Generator_t g,
2029 ppl_Coefficient_t num,
2030 ppl_Coefficient_t den)
try {
2042 ppl_const_Generator_t* pg)
try {
2043 const Generator& g = to_const(mip)->feasible_point();
2051 ppl_const_Generator_t* pg)
try {
2052 const Generator& g = to_const(mip)->optimizing_point();
2060 ppl_Coefficient_t num,
2061 ppl_Coefficient_t den)
try {
2064 to_const(mip)->optimal_value(nnum, dden);
2074 return to_const(mip)->get_control_parameter(n);
2083 to_nonconst(mip)->set_control_parameter(v);
2090 return to_const(mip)->OK() ? 1 : 0;
2097 *sz = to_const(mip)->total_memory_in_bytes();
2105 *sz = to_const(mip)->external_memory_in_bytes();
2120 ppl_const_PIP_Problem_t pip)
try {
2129 (ppl_PIP_Problem_t* ppip,
2131 ppl_Constraint_System_const_iterator_t first,
2132 ppl_Constraint_System_const_iterator_t last,
2138 *ppip = to_nonconst(
new PIP_Problem(d, *to_const(first),
2139 *to_const(last), p_vars));
2146 ppl_const_PIP_Problem_t src)
try {
2156 delete to_const(pip);
2164 *m = to_const(pip)->space_dimension();
2181 const Variables_Set& vars = to_const(pip)->parameter_space_dimensions();
2183 for (Variables_Set::const_iterator v_iter = vars.begin(),
2184 v_end = vars.end(); v_iter != v_end; ++v_iter, ++ds_i)
2202 ppl_const_Constraint_t* pc)
try {
2206 assert(i < num_constraints);
2216 to_nonconst(pip)->clear();
2244 ppl_const_Constraint_t c)
try {
2254 ppl_const_Constraint_System_t cs)
try {
2263 return to_const(pip)->is_satisfiable() ? 1 : 0;
2268 return to_const(pip)->solve();
2274 ppl_const_PIP_Tree_Node_t* ppip_tree)
try {
2275 *ppip_tree = to_const(to_const(pip)->solution());
2282 ppl_const_PIP_Tree_Node_t* ppip_tree)
try {
2283 *ppip_tree = to_const(to_const(pip)->optimizing_solution());
2290 return to_const(pip)->OK() ? 1 : 0;
2299 return to_const(pip)->get_control_parameter(n);
2308 to_nonconst(pip)->set_control_parameter(v);
2316 *pd = to_const(pip)->get_big_parameter_dimension();
2324 to_nonconst(pip)->set_big_parameter_dimension(d);
2332 *sz = to_const(pip)->total_memory_in_bytes();
2340 *sz = to_const(pip)->external_memory_in_bytes();
2347 ppl_const_PIP_Solution_Node_t* dpip_tree)
try {
2348 *dpip_tree = to_const(to_const(spip_tree)->as_solution());
2355 ppl_const_PIP_Decision_Node_t* dpip_tree)
try {
2356 *dpip_tree = to_const(to_const(spip_tree)->as_decision());
2363 ppl_const_Constraint_System_t* pcs)
try {
2366 *pcs = to_const(&cs);
2373 return to_const(pip_tree)->OK() ? 1 : 0;
2388 (ppl_const_PIP_Tree_Node_t pip_tree,
2389 ppl_Artificial_Parameter_Sequence_const_iterator_t pit)
try {
2390 PIP_Tree_Node::Artificial_Parameter_Sequence::const_iterator& spit
2391 = *to_nonconst(pit);
2392 spit = to_const(pip_tree)->art_parameter_begin();
2399 (ppl_const_PIP_Tree_Node_t pip_tree,
2400 ppl_Artificial_Parameter_Sequence_const_iterator_t pit)
try {
2401 PIP_Tree_Node::Artificial_Parameter_Sequence::const_iterator& spit
2402 = *to_nonconst(pit);
2403 spit = to_const(pip_tree)->art_parameter_end();
2410 (ppl_const_PIP_Solution_Node_t pip_sol,
2412 ppl_const_Linear_Expression_t* le)
try {
2415 *le = to_const(&lle);
2422 return to_const(pip_sol)->OK() ? 1 : 0;
2428 return to_const(pip_dec)->OK() ? 1 : 0;
2435 ppl_const_PIP_Tree_Node_t* pip_tree)
try {
2436 *pip_tree = to_const(to_const(pip_dec)->child_node(b != 0));
2443 (ppl_const_Artificial_Parameter_t ap,
2444 ppl_Linear_Expression_t le)
try {
2445 const Artificial_Parameter& sap = *to_const(ap);
2455 ppl_Coefficient_t n)
try {
2456 const Artificial_Parameter& sap = *to_const(ap);
2458 nn = sap.coefficient(
Variable(var));
2465 (ppl_const_Artificial_Parameter_t ap, ppl_Coefficient_t n)
try {
2466 const Artificial_Parameter& sap = *to_const(ap);
2468 nn = sap.inhomogeneous_term();
2476 ppl_Coefficient_t n)
try {
2477 const Artificial_Parameter& sap = *to_const(ap);
2479 nn = sap.denominator();
2489 (ppl_Artificial_Parameter_Sequence_const_iterator_t* papit)
try {
2490 *papit = to_nonconst(
new Artificial_Parameter_Sequence::const_iterator());
2497 (ppl_Artificial_Parameter_Sequence_const_iterator_t* papit,
2498 ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)
try {
2499 *papit = to_nonconst(
new Artificial_Parameter_Sequence::const_iterator(*to_const(apit)));
2506 (ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)
2508 delete to_const(apit);
2515 (ppl_Artificial_Parameter_Sequence_const_iterator_t dst,
2516 ppl_const_Artificial_Parameter_Sequence_const_iterator_t src)
try {
2517 const Artificial_Parameter_Sequence::const_iterator& ssrc = *to_const(src);
2518 Artificial_Parameter_Sequence::const_iterator& ddst = *to_nonconst(dst);
2526 (ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit,
2527 ppl_const_Artificial_Parameter_t* pap)
try {
2528 const Artificial_Parameter_Sequence::const_iterator& papit = *to_const(apit);
2529 const Artificial_Parameter& ap = *papit;
2530 *pap = to_const(&ap);
2537 (ppl_Artificial_Parameter_Sequence_const_iterator_t apit)
try {
2538 Artificial_Parameter_Sequence::const_iterator& papit = *to_nonconst(apit);
2546 (ppl_const_Artificial_Parameter_Sequence_const_iterator_t x,
2547 ppl_const_Artificial_Parameter_Sequence_const_iterator_t y)
try {
2548 const Artificial_Parameter_Sequence::const_iterator& xx = *to_const(x);
2549 const Artificial_Parameter_Sequence::const_iterator& yy = *to_const(y);
2550 return (xx == yy) ? 1 : 0;
2556 const char* b = c_variable_output_function(var);
2557 if (b == 0 || puts(b) < 0)
2565 const char* b = c_variable_output_function(var);
2566 if (b == 0 || fputs(b, stream) < 0)
2574 const char* b = c_variable_output_function(var);
2619 unsigned indent_depth,
2620 unsigned preferred_first_line_length,
2621 unsigned preferred_line_length) {
2622 using namespace IO_Operators;
2624 preferred_first_line_length,
2625 preferred_line_length).c_str());
2631 c_variable_output_function = p;
2639 *pp = c_variable_output_function;
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Congruence_System_const_iterator_from_Congruence_System_const_iterator(ppl_Congruence_System_const_iterator_t dst, ppl_const_Congruence_System_const_iterator_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION char * ppl_io_wrap_string(const char *src, unsigned indent_depth, unsigned preferred_first_line_length, unsigned preferred_line_length)
Utility function for the wrapping of lines of text.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_OK(ppl_const_MIP_Problem_t mip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_System_from_Congruence_System(ppl_Congruence_System_t *pcs, ppl_const_Congruence_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_System_from_Congruence(ppl_Congruence_System_t *pcs, ppl_const_Congruence_t c)
Enable_If< Is_Native_Or_Checked< To >::value &&Is_Special< From >::value, Result >::type assign_r(To &to, const From &, Rounding_Dir dir)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_total_memory_in_bytes(ppl_const_PIP_Problem_t pip, size_t *sz)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_OK(ppl_const_Grid_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Solution_Node_get_parametric_values(ppl_const_PIP_Solution_Node_t pip_sol, ppl_dimension_type var, ppl_const_Linear_Expression_t *le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Generator_from_Generator(ppl_Generator_t dst, ppl_const_Generator_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_begin(ppl_const_PIP_Tree_Node_t pip_tree, ppl_Artificial_Parameter_Sequence_const_iterator_t pit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_begin(ppl_const_Constraint_System_t cs, ppl_Constraint_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_set_rounding_for_PPL(void)
Sets the FPU rounding mode so that the PPL abstractions based on floating point numbers work correctl...
unsigned int PPL_POLY_CON_RELATION_IS_INCLUDED
Individual bit saying that the polyhedron is included in the set of points satisfying the constraint...
static Poly_Con_Relation is_disjoint()
static Poly_Gen_Relation subsumes()
dimension_type max_space_dimension()
unsigned int PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS
Individual bit saying that the polyhedron intersects the set of points satisfying the constraint...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Constraint_from_Constraint(ppl_Constraint_t dst, ppl_const_Constraint_t src)
int PPL_MIP_PROBLEM_STATUS_UNFEASIBLE
const_iterator constraints_end() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_insert_Congruence(ppl_Congruence_System_t cs, ppl_const_Congruence_t c)
void set_optimization_mode(Optimization_Mode mode)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_divisor(ppl_const_Generator_t g, ppl_Coefficient_t n)
Coefficient_traits::const_reference modulus() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_add_Linear_Expression_to_Linear_Expression(ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
int ppl_initialize(void)
Initializes the Parma Polyhedra Library. This function must be called before any other function...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_const_iterator_increment(ppl_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Constraint_System_from_Constraint_System(ppl_Constraint_System_t dst, ppl_const_Constraint_System_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_OK(ppl_const_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_evaluate_objective_function(ppl_const_MIP_Problem_t mip, ppl_const_Generator_t g, ppl_Coefficient_t num, ppl_Coefficient_t den)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_inhomogeneous_term(ppl_const_Constraint_t c, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Congruence_System(ppl_const_Congruence_System_t cs)
static const Generator_System & zero_dim_univ()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_integer_space_dimensions(ppl_const_MIP_Problem_t mip, ppl_dimension_type ds[])
void add_constraint(const Constraint &c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_all_homogeneous_terms_are_zero(ppl_const_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_MIP_Problem(ppl_const_MIP_Problem_t mip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_as_solution(ppl_const_PIP_Tree_Node_t spip_tree, ppl_const_PIP_Solution_Node_t *dpip_tree)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Grid_Generator(ppl_const_Grid_Generator_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_from_Grid_Generator(ppl_Grid_Generator_t *pg, ppl_const_Grid_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_zero_dim_false(ppl_Constraint_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Constraint_System_const_iterator(ppl_const_Constraint_System_const_iterator_t cit)
void insert(const Congruence &cg)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_set_big_parameter_dimension(ppl_PIP_Problem_t pip, ppl_dimension_type d)
ppl_enum_error_code
Defines the error codes that any function may return.
void add_constraints(const Constraint_System &cs)
size_t ppl_dimension_type
An unsigned integral type for representing space dimensions.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_space_dimension(ppl_const_Grid_Generator_t g, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_MIP_Problem_from_MIP_Problem(ppl_MIP_Problem_t dst, ppl_const_MIP_Problem_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_empty(ppl_const_Grid_Generator_System_t gs)
void add_constraints(const Constraint_System &cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_modulus(ppl_const_Congruence_t c, ppl_Coefficient_t m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_PIP_Problem_from_PIP_Problem(ppl_PIP_Problem_t dst, ppl_const_PIP_Problem_t src)
const_iterator end() const
Coefficient_traits::const_reference inhomogeneous_term() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_OK(ppl_const_Generator_t g)
const_iterator constraints_end() const
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_OK(ppl_const_Congruence_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_external_memory_in_bytes(ppl_const_PIP_Problem_t pip, size_t *sz)
const Linear_Expression & parametric_values(Variable var) const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_end(ppl_const_Grid_Generator_System_t gs, ppl_Grid_Generator_System_const_iterator_t git)
static const Generator & zero_dim_point()
static output_function_type * get_output_function()
dimension_type not_a_dimension()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_add_constraints(ppl_PIP_Problem_t pip, ppl_const_Constraint_System_t cs)
static Generator ray(const Linear_Expression &e, Representation r=default_representation)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_space_dimension(ppl_const_Generator_t g, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_number_of_parameter_space_dimensions(ppl_const_PIP_Problem_t pip, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint(ppl_Constraint_t *pc, ppl_const_Linear_Expression_t le, enum ppl_enum_Constraint_Type t)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Coefficient_min(mpz_t min)
void add_mul_assign(GMP_Integer &x, const GMP_Integer &y, const GMP_Integer &z)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Linear_Expression_from_Congruence(ppl_Linear_Expression_t *ple, ppl_const_Congruence_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_OK(ppl_const_Grid_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_System_zero_dim_empty(ppl_Constraint_System_t *pcs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_System_const_iterator(ppl_Grid_Generator_System_const_iterator_t *pgit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_has_strict_inequalities(ppl_const_Constraint_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_System(ppl_Generator_System_t *pgs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Decision_Node_get_child_node(ppl_const_PIP_Decision_Node_t pip_dec, int b, ppl_const_PIP_Tree_Node_t *pip_tree)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_solution(ppl_const_PIP_Problem_t pip, ppl_const_PIP_Tree_Node_t *ppip_tree)
static const Constraint_System & zero_dim_empty()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_subtract_Linear_Expression_from_Linear_Expression(ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
static const Constraint & zero_dim_false()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_inhomogeneous_term(ppl_const_Linear_Expression_t le, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Grid_Generator_System_const_iterator(ppl_const_Grid_Generator_System_const_iterator_t git)
void insert(const Constraint &c)
dimension_type num_constraints(const Constraint_System &cs)
static const Grid_Generator & zero_dim_point()
const_iterator end() const
static const Congruence_System & zero_dim_empty()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_zero_dim_positivity(ppl_Constraint_t *pc)
static Poly_Con_Relation is_included()
const_iterator begin() const
expr_type expression() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_add_constraint(ppl_PIP_Problem_t pip, ppl_const_Constraint_t c)
#define DEFINE_PRINT_FUNCTIONS(Type)
expr_type expression() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Coefficient_from_mpz_t(ppl_Coefficient_t *pc, mpz_t z)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Linear_Expression_from_Linear_Expression(ppl_Linear_Expression_t *ple, ppl_const_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_clear(ppl_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_clear(ppl_MIP_Problem_t mip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_io_asprint_variable(char **strp, ppl_dimension_type var)
Pretty-prints var to a malloc-allocated string, a pointer to which is returned via strp...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_OK(ppl_const_Constraint_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_banner(const char **p)
Writes to *p a pointer to a character string containing the PPL banner.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_System_const_iterator_from_Grid_Generator_System_const_iterator(ppl_Grid_Generator_System_const_iterator_t *pgit, ppl_const_Grid_Generator_System_const_iterator_t git)
const char * ppl_io_variable_output_function_type(ppl_dimension_type var)
The type of output functions used for printing variables.
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_FLOAT
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Congruence(ppl_const_Congruence_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_solve(ppl_const_PIP_Problem_t pip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_io_fprint_variable(FILE *stream, ppl_dimension_type var)
Pretty-prints var to the given output stream.
#define DEFINE_OUTPUT_FUNCTIONS(Type)
static Poly_Con_Relation saturates()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_coefficient(ppl_const_Congruence_t c, ppl_dimension_type var, ppl_Coefficient_t n)
std::string wrap_string(const std::string &src_string, unsigned indent_depth, unsigned preferred_first_line_length, unsigned preferred_line_length)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_parameter_space_dimensions(ppl_const_PIP_Problem_t pip, ppl_dimension_type ds[])
void evaluate_objective_function(const Generator &evaluating_point, Coefficient &numer, Coefficient &denom) const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_begin(ppl_const_Congruence_System_t cs, ppl_Congruence_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_get_constraints(ppl_const_PIP_Tree_Node_t pip_tree, ppl_const_Constraint_System_t *pcs)
Coefficient_traits::const_reference inhomogeneous_term() const
void add_constraint(const Constraint &c)
const_iterator begin() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_set_timeout(unsigned csecs)
Sets the timeout for computations whose completion could require an exponential amount of time...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_coefficient(ppl_const_Linear_Expression_t le, ppl_dimension_type var, ppl_Coefficient_t n)
unsigned int PPL_POLY_CON_RELATION_SATURATES
Individual bit saying that the polyhedron is included in the set of points saturating the constraint...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_optimizing_point(ppl_const_MIP_Problem_t mip, ppl_const_Generator_t *pg)
ppl_enum_Constraint_Type
Describes the relations represented by a constraint.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_solve(ppl_const_MIP_Problem_t mip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_OK(ppl_const_PIP_Tree_Node_t pip_tree)
static Generator closure_point(const Linear_Expression &e=Linear_Expression::zero(), Coefficient_traits::const_reference d=Coefficient_one(), Representation r=default_representation)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_reset_timeout(void)
Resets the timeout time so that the computation is not interrupted.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_System_from_Generator(ppl_Generator_System_t *pgs, ppl_const_Generator_t g)
Coefficient_traits::const_reference coefficient(Variable v) const
void output_function_type(std::ostream &s, const Variable v)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Linear_Expression(ppl_const_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_const_iterator_equal_test(ppl_const_Grid_Generator_System_const_iterator_t x, ppl_const_Grid_Generator_System_const_iterator_t y)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_System_from_Constraint_System(ppl_Constraint_System_t *pcs, ppl_const_Constraint_System_t cs)
void set_irrational_precision(const unsigned p)
Coefficient_traits::const_reference coefficient(Variable v) const
const Variables_Set & integer_space_dimensions() const
int PPL_MIP_PROBLEM_STATUS_UNBOUNDED
dimension_type id() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_MIP_Problem(ppl_MIP_Problem_t *pmip, ppl_dimension_type d, ppl_const_Constraint_System_t cs, ppl_const_Linear_Expression_t le, int m)
static Generator line(const Linear_Expression &e, Representation r=default_representation)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_space_dimension(ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
void set_rounding_for_PPL()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_get_Linear_Expression(ppl_const_Artificial_Parameter_t ap, ppl_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_version_revision(void)
Returns the revision number of the PPL version.
static const Congruence & zero_dim_false()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_coefficient(ppl_const_Constraint_t c, ppl_dimension_type var, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_coefficient(ppl_const_Artificial_Parameter_t ap, ppl_dimension_type var, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_max_space_dimension(ppl_dimension_type *m)
Writes to m the maximum space dimension this library can handle.
int PPL_OPTIMIZATION_MODE_MAXIMIZATION
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Grid_Generator_System_const_iterator_from_Grid_Generator_System_const_iterator(ppl_Grid_Generator_System_const_iterator_t dst, ppl_const_Grid_Generator_System_const_iterator_t src)
unsigned int PPL_COMPLEXITY_CLASS_POLYNOMIAL
Code of the worst-case polynomial complexity class.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_OK(ppl_const_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_PIP_Problem(ppl_const_PIP_Problem_t pip)
flags_t get_flags() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_divisor(ppl_const_Grid_Generator_t g, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_restore_pre_PPL_rounding(void)
Sets the FPU rounding mode as it was before initialization of the PPL.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_total_memory_in_bytes(ppl_const_MIP_Problem_t mip, size_t *sz)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_from_Congruence(ppl_Congruence_t *pc, ppl_const_Congruence_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_add_to_parameter_space_dimensions(ppl_PIP_Problem_t pip, ppl_dimension_type ds[], size_t n)
static const Congruence & zero_dim_integrality()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_add_constraint(ppl_MIP_Problem_t mip, ppl_const_Constraint_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_const_iterator_dereference(ppl_const_Generator_System_const_iterator_t git, ppl_const_Generator_t *pg)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Artificial_Parameter_Sequence_const_iterator(ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Coefficient_max(mpz_t max)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_insert_Constraint(ppl_Constraint_System_t cs, ppl_const_Constraint_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_empty(ppl_const_Generator_System_t gs)
dimension_type art_parameter_count() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_const_iterator_dereference(ppl_const_Constraint_System_const_iterator_t cit, ppl_const_Constraint_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_MIP_Problem_from_MIP_Problem(ppl_MIP_Problem_t *pmip, ppl_const_MIP_Problem_t mip)
const_iterator constraints_begin() const
static Grid_Generator parameter(const Linear_Expression &e=Linear_Expression::zero(), Coefficient_traits::const_reference d=Coefficient_one(), Representation r=default_representation)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_finalize(void)
Finalizes the Parma Polyhedra Library. This function must be called after any other function...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Coefficient(ppl_Coefficient_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_space_dimension(ppl_const_Grid_Generator_System_t gs, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_from_Generator(ppl_Generator_t *pg, ppl_const_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_denominator(ppl_const_Artificial_Parameter_t ap, ppl_Coefficient_t n)
const Variables_Set & parameter_space_dimensions() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Decision_Node_OK(ppl_const_PIP_Decision_Node_t pip_dec)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Linear_Expression_from_Constraint(ppl_Linear_Expression_t *ple, ppl_const_Constraint_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_PIP_Problem_from_constraints(ppl_PIP_Problem_t *ppip, ppl_dimension_type d, ppl_Constraint_System_const_iterator_t first, ppl_Constraint_System_const_iterator_t last, size_t n, ppl_dimension_type ds[])
ppl_enum_Grid_Generator_Type
Describes the different kinds of grid generators.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Constraint_System_const_iterator_from_Constraint_System_const_iterator(ppl_Constraint_System_const_iterator_t dst, ppl_const_Constraint_System_const_iterator_t src)
Coefficient_traits::const_reference divisor() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_System_const_iterator(ppl_Congruence_System_const_iterator_t *pcit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_const_iterator_equal_test(ppl_const_Generator_System_const_iterator_t x, ppl_const_Generator_System_const_iterator_t y)
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_COLUMN
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_PIP_Problem_from_PIP_Problem(ppl_PIP_Problem_t *dpip, ppl_const_PIP_Problem_t pip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Linear_Expression_from_Generator(ppl_Linear_Expression_t *ple, ppl_const_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Coefficient_from_Coefficient(ppl_Coefficient_t *pc, ppl_const_Coefficient_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Grid_Generator_System_from_Grid_Generator_System(ppl_Grid_Generator_System_t dst, ppl_const_Grid_Generator_System_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_irrational_precision(unsigned *p)
Writes to p the precision parameter used for irrational calculations.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_feasible_point(ppl_const_MIP_Problem_t mip, ppl_const_Generator_t *pg)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_type(ppl_const_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_space_dimension(ppl_const_PIP_Problem_t pip, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Generator_System(ppl_const_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_clear(ppl_Congruence_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Congruence_System_from_Congruence_System(ppl_Congruence_System_t dst, ppl_const_Congruence_System_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_number_of_constraints(ppl_const_PIP_Problem_t pip, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Artificial_Parameter_Sequence_const_iterator(ppl_Artificial_Parameter_Sequence_const_iterator_t *papit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Linear_Expression(ppl_Linear_Expression_t *ple)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Coefficient_to_mpz_t(ppl_const_Coefficient_t c, mpz_t z)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_System_const_iterator_from_Constraint_System_const_iterator(ppl_Constraint_System_const_iterator_t *pcit, ppl_const_Constraint_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_as_decision(ppl_const_PIP_Tree_Node_t spip_tree, ppl_const_PIP_Decision_Node_t *dpip_tree)
int PPL_OPTIMIZATION_MODE_MINIMIZATION
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_const_iterator_dereference(ppl_const_Grid_Generator_System_const_iterator_t git, ppl_const_Grid_Generator_t *pg)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_version_major(void)
Returns the major number of the PPL version.
const_iterator end() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_multiply_Linear_Expression_by_Coefficient(ppl_Linear_Expression_t le, ppl_const_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_version(const char **p)
Writes to *p a pointer to a character string containing the PPL version.
const Constraint_System & constraints() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Constraint_System(ppl_const_Constraint_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_OK(ppl_const_Constraint_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_OK(ppl_const_Congruence_System_t cs)
int PPL_MIP_PROBLEM_STATUS_OPTIMIZED
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_System_zero_dim_univ(ppl_Grid_Generator_System_t *pgs)
PIVOT_ROW_STRATEGY_MAX_COLUMN
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_space_dimension(ppl_const_Congruence_System_t cs, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_System_from_Constraint(ppl_Constraint_System_t *pcs, ppl_const_Constraint_t c)
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_NAME_PRICING
const_iterator begin() const
PPL_COEFFICIENT_TYPE Coefficient
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_coefficient(ppl_const_Generator_t g, ppl_dimension_type var, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_space_dimension(ppl_const_Constraint_t c, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_zero_dim_closure_point(ppl_Generator_t *pg)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_get_control_parameter(ppl_const_MIP_Problem_t mip, int name)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Artificial_Parameter_Sequence_const_iterator_from_Artificial_Parameter_Sequence_const_iterator(ppl_Artificial_Parameter_Sequence_const_iterator_t dst, ppl_const_Artificial_Parameter_Sequence_const_iterator_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_reset_deterministic_timeout(void)
Resets the deterministic timeout so that the computation is not interrupted.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_is_zero(ppl_const_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_const_iterator_increment(ppl_Congruence_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_set_deterministic_timeout(unsigned long unscaled_weight, unsigned scale)
Sets a threshold for computations whose completion could require an exponential amount of time...
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Generator_System_from_Generator_System(ppl_Generator_System_t dst, ppl_const_Generator_System_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_not_a_dimension(ppl_dimension_type *m)
Writes to m a value that does not designate a valid dimension.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_io_get_variable_output_function(ppl_io_variable_output_function_type **pp)
Writes a pointer to the current variable output function to pp.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_empty(ppl_const_Congruence_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_set_control_parameter(ppl_MIP_Problem_t mip, int value)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_io_print_variable(ppl_dimension_type var)
Pretty-prints var to stdout.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Artificial_Parameter_Sequence_const_iterator_from_Artificial_Parameter_Sequence_const_iterator(ppl_Artificial_Parameter_Sequence_const_iterator_t *papit, ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_is_satisfiable(ppl_const_MIP_Problem_t mip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_OK(ppl_const_PIP_Problem_t pip)
unsigned int PPL_POLY_GEN_RELATION_SUBSUMES
Individual bit saying that adding the generator would not change the polyhedron.
static const Generator & zero_dim_closure_point()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator(ppl_Grid_Generator_t *pg, ppl_const_Linear_Expression_t le, enum ppl_enum_Grid_Generator_Type t, ppl_const_Coefficient_t d)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_System_const_iterator(ppl_Generator_System_const_iterator_t *pgit)
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_EXACT
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_space_dimension(ppl_const_Constraint_System_t cs, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_type(ppl_const_Constraint_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_zero_dim_false(ppl_Congruence_t *pc)
int ppl_set_error_handler(error_handler_type h)
int PPL_PIP_PROBLEM_STATUS_UNFEASIBLE
static Generator point(const Linear_Expression &e=Linear_Expression::zero(), Coefficient_traits::const_reference d=Coefficient_one(), Representation r=default_representation)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_clear(ppl_Grid_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_const_iterator_dereference(ppl_const_Congruence_System_const_iterator_t cit, ppl_const_Congruence_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_optimization_mode(ppl_const_MIP_Problem_t mip)
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_inhomogeneous_term(ppl_const_Artificial_Parameter_t ap, ppl_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_Sequence_const_iterator_increment(ppl_Artificial_Parameter_Sequence_const_iterator_t apit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_clear(ppl_PIP_Problem_t pip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_clear(ppl_Constraint_System_t cs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Generator_System_const_iterator_from_Generator_System_const_iterator(ppl_Generator_System_const_iterator_t dst, ppl_const_Generator_System_const_iterator_t src)
unsigned int PPL_COMPLEXITY_CLASS_ANY
Code of the universal complexity class.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Coefficient_is_bounded(void)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_System(ppl_Grid_Generator_System_t *pgs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Linear_Expression_with_dimension(ppl_Linear_Expression_t *ple, ppl_dimension_type d)
static Grid_Generator grid_point(const Linear_Expression &e=Linear_Expression::zero(), Coefficient_traits::const_reference d=Coefficient_one(), Representation r=default_representation)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_set_optimization_mode(ppl_MIP_Problem_t mip, int mode)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_coefficient(ppl_const_Grid_Generator_t g, ppl_dimension_type var, ppl_Coefficient_t n)
unsigned version_revision()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_insert_Generator(ppl_Generator_System_t gs, ppl_const_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_version_beta(void)
Returns the beta number of the PPL version.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Congruence_System_const_iterator(ppl_const_Congruence_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_version_minor(void)
Returns the minor number of the PPL version.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_const_iterator_equal_test(ppl_const_Congruence_System_const_iterator_t x, ppl_const_Congruence_System_const_iterator_t y)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_constraint_at_index(ppl_const_PIP_Problem_t pip, ppl_dimension_type i, ppl_const_Constraint_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_const_iterator_increment(ppl_Constraint_System_const_iterator_t cit)
static Grid_Generator grid_line(const Linear_Expression &e, Representation r=default_representation)
int PPL_PIP_PROBLEM_STATUS_OPTIMIZED
const_iterator end() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_add_to_integer_space_dimensions(ppl_MIP_Problem_t mip, ppl_dimension_type ds[], size_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Grid_Generator_System(ppl_const_Grid_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Congruence_from_Congruence(ppl_Congruence_t dst, ppl_const_Congruence_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Generator(ppl_const_Generator_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_number_of_integer_space_dimensions(ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
unsigned irrational_precision()
int ppl_io_set_variable_output_function(ppl_io_variable_output_function_type *p)
Sets the output function to be used for printing variables to p.
static const Grid_Generator_System & zero_dim_univ()
const_iterator begin() const
static const Constraint & zero_dim_positivity()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_space_dimension(ppl_const_Linear_Expression_t le, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_insert_Grid_Generator(ppl_Grid_Generator_System_t gs, ppl_const_Grid_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_System(ppl_Congruence_System_t *pcs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence(ppl_Congruence_t *pc, ppl_const_Linear_Expression_t le, ppl_const_Coefficient_t m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Coefficient(ppl_const_Coefficient_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_from_Constraint(ppl_Constraint_t *pc, ppl_const_Constraint_t c)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_System_from_Grid_Generator_System(ppl_Grid_Generator_System_t *pgs, ppl_const_Grid_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_space_dimension(ppl_const_Congruence_t c, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_System_from_Grid_Generator(ppl_Grid_Generator_System_t *pgs, ppl_const_Grid_Generator_t g)
unsigned int PPL_POLY_CON_RELATION_IS_DISJOINT
Individual bit saying that the polyhedron and the set of points satisfying the constraint are disjoin...
void set_objective_function(const Linear_Expression &obj)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_space_dimension(ppl_const_Generator_System_t gs, ppl_dimension_type *m)
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_FIRST
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_number_of_artificials(ppl_const_PIP_Tree_Node_t pip_tree, ppl_dimension_type *m)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_PIP_Problem_from_space_dimension(ppl_PIP_Problem_t *ppip, ppl_dimension_type d)
Coefficient_traits::const_reference coefficient(Variable v) const
ppl_enum_Generator_Type
Describes the different kinds of generators.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_const_iterator_equal_test(ppl_const_Constraint_System_const_iterator_t x, ppl_const_Constraint_System_const_iterator_t y)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_set_irrational_precision(unsigned p)
Sets the precision parameter used for irrational calculations.
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_System_zero_dim_empty(ppl_Congruence_System_t *pcs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Linear_Expression_from_Linear_Expression(ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Grid_Generator_zero_dim_point(ppl_Grid_Generator_t *pg)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_add_to_inhomogeneous(ppl_Linear_Expression_t le, ppl_const_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_constraint_at_index(ppl_const_MIP_Problem_t mip, ppl_dimension_type i, ppl_const_Constraint_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_add_space_dimensions_and_embed(ppl_PIP_Problem_t pip, ppl_dimension_type pip_vars, ppl_dimension_type pip_params)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_System_const_iterator(ppl_Constraint_System_const_iterator_t *pcit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Constraint(ppl_const_Constraint_t le)
PRICING_STEEPEST_EDGE_FLOAT
flags_t get_flags() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_type(ppl_const_Grid_Generator_t g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_MIP_Problem_from_space_dimension(ppl_MIP_Problem_t *pmip, ppl_dimension_type d)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_System_from_Generator_System(ppl_Generator_System_t *pgs, ppl_const_Generator_System_t gs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_optimizing_solution(ppl_const_PIP_Problem_t pip, ppl_const_PIP_Tree_Node_t *ppip_tree)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_optimal_value(ppl_const_MIP_Problem_t mip, ppl_Coefficient_t num, ppl_Coefficient_t den)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_objective_function(ppl_const_MIP_Problem_t mip, ppl_const_Linear_Expression_t *ple)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_external_memory_in_bytes(ppl_const_MIP_Problem_t mip, size_t *sz)
Coefficient_traits::const_reference divisor() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Linear_Expression_add_to_coefficient(ppl_Linear_Expression_t le, ppl_dimension_type var, ppl_const_Coefficient_t n)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_const_iterator_increment(ppl_Grid_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Solution_Node_OK(ppl_const_PIP_Solution_Node_t pip_sol)
PRICING_STEEPEST_EDGE_EXACT
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_end(ppl_const_Constraint_System_t cs, ppl_Constraint_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Coefficient_OK(ppl_const_Coefficient_t)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_add_constraints(ppl_MIP_Problem_t mip, ppl_const_Constraint_System_t cs)
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY
Coefficient_traits::const_reference inhomogeneous_term() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_begin(ppl_const_Generator_System_t gs, ppl_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_inhomogeneous_term(ppl_const_Congruence_t c, ppl_Coefficient_t n)
Coefficient_traits::const_reference coefficient(Variable v) const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Constraint_System(ppl_Constraint_System_t *pcs)
static void set_output_function(output_function_type *p)
void add_to_parameter_space_dimensions(const Variables_Set &p_vars)
void add_space_dimensions_and_embed(dimension_type m)
const Throwable *volatile abandon_expensive_computations
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Tree_Node_end(ppl_const_PIP_Tree_Node_t pip_tree, ppl_Artificial_Parameter_Sequence_const_iterator_t pit)
expr_type expression() const
const_iterator constraints_begin() const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_get_big_parameter_dimension(ppl_const_PIP_Problem_t pip, ppl_dimension_type *pd)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Grid_Generator_from_Grid_Generator(ppl_Grid_Generator_t dst, ppl_const_Grid_Generator_t src)
Coefficient_traits::const_reference coefficient(Variable v) const
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Coefficient_from_Coefficient(ppl_Coefficient_t dst, ppl_const_Coefficient_t src)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_delete_Generator_System_const_iterator(ppl_const_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Generator_System_end(ppl_const_Generator_System_t gs, ppl_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_Sequence_const_iterator_dereference(ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit, ppl_const_Artificial_Parameter_t *pap)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Constraint_System_empty(ppl_const_Constraint_System_t cs)
unsigned int PPL_COMPLEXITY_CLASS_SIMPLEX
Code of the worst-case exponential but typically polynomial complexity class.
void insert(const Generator &g)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Congruence_System_end(ppl_const_Congruence_System_t cs, ppl_Congruence_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Artificial_Parameter_Sequence_const_iterator_equal_test(ppl_const_Artificial_Parameter_Sequence_const_iterator_t x, ppl_const_Artificial_Parameter_Sequence_const_iterator_t y)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_is_satisfiable(ppl_const_PIP_Problem_t pip)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_set_objective_function(ppl_MIP_Problem_t mip, ppl_const_Linear_Expression_t le)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_get_control_parameter(ppl_const_PIP_Problem_t pip, int name)
void add_space_dimensions_and_embed(dimension_type m_vars, dimension_type m_params)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_assign_Coefficient_from_mpz_t(ppl_Coefficient_t dst, mpz_t z)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_Grid_Generator_System_begin(ppl_const_Grid_Generator_System_t gs, ppl_Grid_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_System_const_iterator_from_Congruence_System_const_iterator(ppl_Congruence_System_const_iterator_t *pcit, ppl_const_Congruence_System_const_iterator_t cit)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator(ppl_Generator_t *pg, ppl_const_Linear_Expression_t le, enum ppl_enum_Generator_Type t, ppl_const_Coefficient_t d)
static Poly_Con_Relation strictly_intersects()
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_add_space_dimensions_and_embed(ppl_MIP_Problem_t mip, ppl_dimension_type d)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_MIP_Problem_number_of_constraints(ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
void insert(const Grid_Generator &g)
void restore_pre_PPL_rounding()
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_System_const_iterator_from_Generator_System_const_iterator(ppl_Generator_System_const_iterator_t *pgit, ppl_const_Generator_System_const_iterator_t git)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_PIP_Problem_set_control_parameter(ppl_PIP_Problem_t pip, int value)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_System_zero_dim_univ(ppl_Generator_System_t *pgs)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Congruence_zero_dim_integrality(ppl_Congruence_t *pc)
PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION int ppl_new_Generator_zero_dim_point(ppl_Generator_t *pg)
bool has_strict_inequalities() const
void add_to_integer_space_dimensions(const Variables_Set &i_vars)