PPL C Language Interface  1.2
ppl_c_header.h
Go to the documentation of this file.
1 /* This is the header file of the C interface of the Parma Polyhedra Library.
2  Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
3  Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
4 
5 This file is part of the Parma Polyhedra Library (PPL).
6 
7 The PPL is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 The PPL is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
20 
21 For the most up-to-date information see the Parma Polyhedra Library
22 site: http://bugseng.com/products/ppl/ . */
23 
24 #ifndef PPL_ppl_c_h
25 #define PPL_ppl_c_h 1
26  /* \mainpage */
140 
141 /*
142  For some reason, GMP up to and including version 4.1.3 requires
143  <stdio.h> to be included before <gmp.h>.
144 */
145 
146 #include <stdio.h>
147 #include <gmp.h>
148 #include <stddef.h>
149 
150 /*
151  PPL_PROTO is a macro used to wrap function prototypes, so that
152  compilers that don't understand ANSI C prototypes still work, and
153  ANSI C compilers can issue warnings about type mismatches.
154 */
155 #if defined(__STDC__) \
156  || defined(__cplusplus) \
157  || defined (_AIX) \
158  || (defined (__mips) && defined (_SYSTYPE_SVR4)) \
159  || defined(_WIN32)
160 # define PPL_PROTO(protos) protos
161 #else
162 # define PPL_PROTO(protos) ()
163 #endif
164 
165 #ifdef __cplusplus
166 extern "C" {
167 #endif
168 
174 
183 int
184 ppl_initialize PPL_PROTO((void));
185 
194 int
195 ppl_finalize PPL_PROTO((void));
196 
205 int
207 
216 int
218 
222 int
223 ppl_irrational_precision PPL_PROTO((unsigned* p));
224 
234 int
236  /* Init */
238 
243 
244 #include "ppl_c_version.h"
245 
249 int
251 
255 int
257 
261 int
263 
267 int
269 
274 int
275 ppl_version PPL_PROTO((const char** p));
276 
285 int
286 ppl_banner PPL_PROTO((const char** p));
287  /* Version Checking */
289 
294 
345 };
346 
355 int
357  const char* description)));
358  /* Error */
360 
365 
383 int
384 ppl_set_timeout PPL_PROTO((unsigned csecs));
385 
389 int
391 
430 int
431 ppl_set_deterministic_timeout PPL_PROTO((unsigned long unscaled_weight,
432  unsigned scale));
433 
437 int
439  /* Timeout */
441 
459 
463 typedef size_t ppl_dimension_type;
464 
468 int
469 ppl_max_space_dimension PPL_PROTO((ppl_dimension_type* m));
470 
474 int
475 ppl_not_a_dimension PPL_PROTO((ppl_dimension_type* m));
476 
480 int
481 ppl_io_print_variable PPL_PROTO((ppl_dimension_type var));
482 
486 int
487 ppl_io_fprint_variable PPL_PROTO((FILE* stream, ppl_dimension_type var));
488 
493 int
494 ppl_io_asprint_variable PPL_PROTO((char** strp, ppl_dimension_type var));
495 
506 typedef const char*
507 ppl_io_variable_output_function_type(ppl_dimension_type var);
508 
512 int
514 
518 int
520 
538 char*
539 ppl_io_wrap_string(const char* src,
540  unsigned indent_depth,
541  unsigned preferred_first_line_length,
542  unsigned preferred_line_length);
543  /* Datatypes */
545 
546 #undef PPL_TYPE_DECLARATION
547 
548 #define PPL_TYPE_DECLARATION(Type) \
549  \
550 typedef struct ppl_##Type##_tag* ppl_##Type##_t; \
551  \
552 typedef struct ppl_##Type##_tag const* ppl_const_##Type##_t;
553 
565 
566 
573 PPL_TYPE_DECLARATION(Linear_Expression)
574 
582 PPL_TYPE_DECLARATION(Constraint)
583 
592 PPL_TYPE_DECLARATION(Constraint_System)
593 
603 PPL_TYPE_DECLARATION(Constraint_System_const_iterator)
604 
612 PPL_TYPE_DECLARATION(Generator)
613 
622 PPL_TYPE_DECLARATION(Generator_System)
623 
633 PPL_TYPE_DECLARATION(Generator_System_const_iterator)
634 
642 PPL_TYPE_DECLARATION(Congruence)
643 
652 PPL_TYPE_DECLARATION(Congruence_System)
653 
663 PPL_TYPE_DECLARATION(Congruence_System_const_iterator)
664 
672 PPL_TYPE_DECLARATION(Grid_Generator)
673 
683 PPL_TYPE_DECLARATION(Grid_Generator_System)
684 
694 PPL_TYPE_DECLARATION(Grid_Generator_System_const_iterator)
695 
703 PPL_TYPE_DECLARATION(MIP_Problem)
704 
712 PPL_TYPE_DECLARATION(PIP_Problem)
713 
721 PPL_TYPE_DECLARATION(PIP_Tree_Node)
722 
730 PPL_TYPE_DECLARATION(PIP_Decision_Node)
731 
739 PPL_TYPE_DECLARATION(PIP_Solution_Node)
740 
749 PPL_TYPE_DECLARATION(Artificial_Parameter)
750 PPL_TYPE_DECLARATION(Artificial_Parameter_Sequence)
751 
756 PPL_TYPE_DECLARATION(Artificial_Parameter_Sequence_const_iterator)
757 
758 
759 #undef PPL_DECLARE_PRINT_FUNCTIONS
760 #undef PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS
761 #undef PPL_DECLARE_IO_FUNCTIONS
762 #undef PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS
763 #undef PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS
764 #undef PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS
765 
766 #define PPL_DECLARE_PRINT_FUNCTIONS(Type) \
767  \
768 int \
769 ppl_io_print_##Type PPL_PROTO((ppl_const_##Type##_t x)); \
770  \
771 int \
772 ppl_io_fprint_##Type PPL_PROTO((FILE* stream, ppl_const_##Type##_t x)); \
773  \
774 int \
775 ppl_io_asprint_##Type PPL_PROTO((char** strp, ppl_const_##Type##_t x));
776 
777 #define PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS(Type) \
778  \
779 int \
780 ppl_##Type##_ascii_dump \
781 PPL_PROTO((ppl_const_##Type##_t x, FILE* stream)); \
782  \
783 int \
784 ppl_##Type##_ascii_load \
785 PPL_PROTO((ppl_##Type##_t x, FILE* stream));
786 
787 #define PPL_DECLARE_IO_FUNCTIONS(Type) \
788 PPL_DECLARE_PRINT_FUNCTIONS(Type) \
789 PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS(Type)
790 
791 #define PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS(Type) \
792  \
793 int \
794 ppl_io_print_##Type PPL_PROTO((ppl_const_##Type##_t x)); \
795  \
796 int \
797 ppl_io_fprint_##Type PPL_PROTO((FILE* stream, ppl_const_##Type##_t x)); \
798  \
799 int \
800 ppl_io_asprint_##Type PPL_PROTO((char** strp, ppl_const_##Type##_t x));
801 
802 
803 #define PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS(Type) \
804  \
805 int \
806 ppl_##Type##_ascii_dump \
807 PPL_PROTO((ppl_const_##Type##_t x, FILE* stream)); \
808  \
809 int \
810 ppl_##Type##_ascii_load \
811 PPL_PROTO((ppl_##Type##_t x, FILE* stream));
812 
813 #define PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Type) \
814  \
815  \
816 PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS(Type) \
817 PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS(Type) \
818  /* Input/Output Functions */
819 
820 
823 
828 int
829 ppl_new_Coefficient PPL_PROTO((ppl_Coefficient_t* pc));
830 
836 int
837 ppl_new_Coefficient_from_mpz_t PPL_PROTO((ppl_Coefficient_t* pc, mpz_t z));
838 
843 int
844 ppl_new_Coefficient_from_Coefficient PPL_PROTO((ppl_Coefficient_t* pc,
845  ppl_const_Coefficient_t c));
846 
850 int
851 ppl_assign_Coefficient_from_mpz_t PPL_PROTO((ppl_Coefficient_t dst, mpz_t z));
852 
856 int
858 PPL_PROTO((ppl_Coefficient_t dst, ppl_const_Coefficient_t src));
859 
864 int
865 ppl_delete_Coefficient PPL_PROTO((ppl_const_Coefficient_t c));
866  /* Constructors, Assignment and Destructor */
868 
871 
875 int
876 ppl_Coefficient_to_mpz_t PPL_PROTO((ppl_const_Coefficient_t c, mpz_t z));
877 
883 int
884 ppl_Coefficient_OK PPL_PROTO((ppl_const_Coefficient_t c));
885 
890 int
892 
897 int
898 ppl_Coefficient_min PPL_PROTO((mpz_t min));
899 
904 int
905 ppl_Coefficient_max PPL_PROTO((mpz_t max));
906  /* Read-Only Accessor Functions */
908 
909 /* No ascii dump for Coefficient */
914 
915 
916 
918 
924 int
925 ppl_new_Linear_Expression PPL_PROTO((ppl_Linear_Expression_t* ple));
926 
932 int
934 PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_dimension_type d));
935 
940 int
942 PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Linear_Expression_t le));
943 
948 int
950 PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Constraint_t c));
951 
956 int
958 PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Generator_t g));
959 
964 int
966 PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Congruence_t c));
967 
972 int
974 PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Grid_Generator_t g));
975 
979 int
981 PPL_PROTO((ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src));
982 
987 int
988 ppl_delete_Linear_Expression PPL_PROTO((ppl_const_Linear_Expression_t le));
989  /* Constructors, Assignment and Destructor */
991 
994 
998 int
1000 PPL_PROTO((ppl_const_Linear_Expression_t le, ppl_dimension_type* m));
1001 
1006 int
1007 ppl_Linear_Expression_coefficient PPL_PROTO((ppl_const_Linear_Expression_t le,
1008  ppl_dimension_type var,
1009  ppl_Coefficient_t n));
1010 
1014 int
1016 PPL_PROTO((ppl_const_Linear_Expression_t le, ppl_Coefficient_t n));
1017 
1023 int
1024 ppl_Linear_Expression_OK PPL_PROTO((ppl_const_Linear_Expression_t le));
1025 
1029 int
1030 ppl_Linear_Expression_is_zero PPL_PROTO((ppl_const_Linear_Expression_t le));
1031 
1036 int
1038 PPL_PROTO((ppl_const_Linear_Expression_t le));
1039  /* Functions that Do Not Modify the Linear Expression */
1041 
1044 
1050 int
1052 PPL_PROTO((ppl_Linear_Expression_t le,
1053  ppl_dimension_type var,
1054  ppl_const_Coefficient_t n));
1055 
1059 int
1061 PPL_PROTO((ppl_Linear_Expression_t le, ppl_const_Coefficient_t n));
1062 
1066 int
1068 PPL_PROTO((ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src));
1069 
1073 int
1075 PPL_PROTO((ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src));
1076 
1080 int
1082 PPL_PROTO((ppl_Linear_Expression_t le, ppl_const_Coefficient_t n));
1083  /* Functions that May Modify the Linear Expression */
1085 
1086 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Linear_Expression)
1087 
1102 };
1103 
1106 
1112 int
1113 ppl_new_Constraint PPL_PROTO((ppl_Constraint_t* pc,
1114  ppl_const_Linear_Expression_t le,
1115  enum ppl_enum_Constraint_Type rel));
1116 
1121 int
1122 ppl_new_Constraint_zero_dim_false PPL_PROTO((ppl_Constraint_t* pc));
1123 
1129 int
1130 ppl_new_Constraint_zero_dim_positivity PPL_PROTO((ppl_Constraint_t* pc));
1131 
1136 int
1137 ppl_new_Constraint_from_Constraint PPL_PROTO((ppl_Constraint_t* pc,
1138  ppl_const_Constraint_t c));
1139 
1143 int
1144 ppl_assign_Constraint_from_Constraint PPL_PROTO((ppl_Constraint_t dst,
1145  ppl_const_Constraint_t src));
1146 
1151 int
1152 ppl_delete_Constraint PPL_PROTO((ppl_const_Constraint_t c));
1153  /* Constructors, Assignment and Destructor */
1155 
1158 
1162 int
1163 ppl_Constraint_space_dimension PPL_PROTO((ppl_const_Constraint_t c,
1164  ppl_dimension_type* m));
1165 
1169 int
1170 ppl_Constraint_type PPL_PROTO((ppl_const_Constraint_t c));
1171 
1176 int
1177 ppl_Constraint_coefficient PPL_PROTO((ppl_const_Constraint_t c,
1178  ppl_dimension_type var,
1179  ppl_Coefficient_t n));
1180 
1184 int
1185 ppl_Constraint_inhomogeneous_term PPL_PROTO((ppl_const_Constraint_t c,
1186  ppl_Coefficient_t n));
1187 
1193 int
1194 ppl_Constraint_OK PPL_PROTO((ppl_const_Constraint_t c));
1195  /* Functions that Do Not Modify the Constraint */
1197 
1199 
1200 
1201 
1203 
1208 int
1209 ppl_new_Constraint_System PPL_PROTO((ppl_Constraint_System_t* pcs));
1210 
1215 int
1217 PPL_PROTO((ppl_Constraint_System_t* pcs));
1218 
1224 int
1226 PPL_PROTO((ppl_Constraint_System_t* pcs, ppl_const_Constraint_t c));
1227 
1232 int
1234 PPL_PROTO((ppl_Constraint_System_t* pcs, ppl_const_Constraint_System_t cs));
1235 
1239 int
1241 PPL_PROTO((ppl_Constraint_System_t dst, ppl_const_Constraint_System_t src));
1242 
1247 int
1248 ppl_delete_Constraint_System PPL_PROTO((ppl_const_Constraint_System_t cs));
1249  /* Constructors, Assignment and Destructor */
1251 
1254 
1258 int
1260 PPL_PROTO((ppl_const_Constraint_System_t cs, ppl_dimension_type* m));
1261 
1266 int
1268 PPL_PROTO((ppl_const_Constraint_System_t cs));
1269 
1274 int
1276 PPL_PROTO((ppl_const_Constraint_System_t cs));
1277 
1282 int
1284 PPL_PROTO((ppl_const_Constraint_System_t cs,
1285  ppl_Constraint_System_const_iterator_t cit));
1286 
1291 int
1293 PPL_PROTO((ppl_const_Constraint_System_t cs,
1294  ppl_Constraint_System_const_iterator_t cit));
1295 
1301 int
1302 ppl_Constraint_System_OK PPL_PROTO((ppl_const_Constraint_System_t cs));
1303  /* Functions that Do Not Modify the Constraint System */
1305 
1308 
1313 int
1314 ppl_Constraint_System_clear PPL_PROTO((ppl_Constraint_System_t cs));
1315 
1320 int
1321 ppl_Constraint_System_insert_Constraint PPL_PROTO((ppl_Constraint_System_t cs,
1322  ppl_const_Constraint_t c));
1323  /* Functions that May Modify the Constraint System */
1325 
1326 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Constraint_System)
1327 
1328 
1331 
1336 int
1338 PPL_PROTO((ppl_Constraint_System_const_iterator_t* pcit));
1339 
1344 int
1346 PPL_PROTO((ppl_Constraint_System_const_iterator_t* pcit,
1347  ppl_const_Constraint_System_const_iterator_t cit));
1348 
1352 int
1354 PPL_PROTO((ppl_Constraint_System_const_iterator_t dst,
1355  ppl_const_Constraint_System_const_iterator_t src));
1356 
1361 int
1363 PPL_PROTO((ppl_const_Constraint_System_const_iterator_t cit));
1364  /* Constructors, Assignment and Destructor */
1366 
1369 
1374 int
1376 PPL_PROTO((ppl_const_Constraint_System_const_iterator_t cit,
1377  ppl_const_Constraint_t* pc));
1378 
1382 int
1384 PPL_PROTO((ppl_Constraint_System_const_iterator_t cit));
1385 
1390 int
1392 PPL_PROTO((ppl_const_Constraint_System_const_iterator_t x,
1393  ppl_const_Constraint_System_const_iterator_t y));
1394  /* Dereferencing, Incrementing and Equality Testing */
1396 
1397 
1410 };
1411 
1414 
1423 int
1424 ppl_new_Generator PPL_PROTO((ppl_Generator_t* pg,
1425  ppl_const_Linear_Expression_t le,
1426  enum ppl_enum_Generator_Type t,
1427  ppl_const_Coefficient_t d));
1428 
1434 int
1435 ppl_new_Generator_zero_dim_point PPL_PROTO((ppl_Generator_t* pg));
1436 
1442 int
1444 
1449 int
1450 ppl_new_Generator_from_Generator PPL_PROTO((ppl_Generator_t* pg,
1451  ppl_const_Generator_t g));
1452 
1456 int
1457 ppl_assign_Generator_from_Generator PPL_PROTO((ppl_Generator_t dst,
1458  ppl_const_Generator_t src));
1459 
1464 int
1465 ppl_delete_Generator PPL_PROTO((ppl_const_Generator_t g));
1466  /* Constructors, Assignment and Destructor */
1468 
1471 
1475 int
1476 ppl_Generator_space_dimension PPL_PROTO((ppl_const_Generator_t g,
1477  ppl_dimension_type* m));
1478 
1482 int
1483 ppl_Generator_type PPL_PROTO((ppl_const_Generator_t g));
1484 
1488 int
1489 ppl_Generator_coefficient PPL_PROTO((ppl_const_Generator_t g,
1490  ppl_dimension_type var,
1491  ppl_Coefficient_t n));
1492 
1496 int
1497 ppl_Generator_divisor PPL_PROTO((ppl_const_Generator_t g,
1498  ppl_Coefficient_t n));
1499 
1505 int
1506 ppl_Generator_OK PPL_PROTO((ppl_const_Generator_t g));
1507  /* Functions that Do Not Modify the Generator */
1509 
1511 
1512 
1513 
1515 
1520 int
1521 ppl_new_Generator_System PPL_PROTO((ppl_Generator_System_t* pgs));
1522 
1523 /*
1524  Creates the universe zero-dimensional system of generators (i.e.,
1525  containing the origin only). Writes a handle to the new system at
1526  address \p pgs.
1527 */
1528 int
1530 PPL_PROTO((ppl_Generator_System_t* pgs));
1531 
1537 int
1538 ppl_new_Generator_System_from_Generator PPL_PROTO((ppl_Generator_System_t* pgs,
1539  ppl_const_Generator_t g));
1540 
1545 int
1547 PPL_PROTO((ppl_Generator_System_t* pgs, ppl_const_Generator_System_t gs));
1548 
1552 int
1554 PPL_PROTO((ppl_Generator_System_t dst, ppl_const_Generator_System_t src));
1555 
1560 int
1561 ppl_delete_Generator_System PPL_PROTO((ppl_const_Generator_System_t gs));
1562  /* Constructors, Assignment and Destructor */
1564 
1567 
1571 int
1573 PPL_PROTO((ppl_const_Generator_System_t gs, ppl_dimension_type* m));
1574 
1579 int
1581 PPL_PROTO((ppl_const_Generator_System_t gs));
1582 
1587 int
1589 PPL_PROTO((ppl_const_Generator_System_t gs,
1590  ppl_Generator_System_const_iterator_t git));
1591 
1596 int
1598 PPL_PROTO((ppl_const_Generator_System_t gs,
1599  ppl_Generator_System_const_iterator_t git));
1600 
1606 int
1607 ppl_Generator_System_OK PPL_PROTO((ppl_const_Generator_System_t gs));
1608  /* Functions that Do Not Modify the Generator System */
1610 
1613 
1618 int
1619 ppl_Generator_System_clear PPL_PROTO((ppl_Generator_System_t gs));
1620 
1625 int
1626 ppl_Generator_System_insert_Generator PPL_PROTO((ppl_Generator_System_t gs,
1627  ppl_const_Generator_t g));
1628  /* Functions that May Modify the Generator System */
1630 
1631 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Generator_System)
1632 
1633 
1636 
1641 int
1643 PPL_PROTO((ppl_Generator_System_const_iterator_t* pgit));
1644 
1649 int
1651 PPL_PROTO((ppl_Generator_System_const_iterator_t* pgit,
1652  ppl_const_Generator_System_const_iterator_t git));
1653 
1657 int
1659 PPL_PROTO((ppl_Generator_System_const_iterator_t dst,
1660  ppl_const_Generator_System_const_iterator_t src));
1661 
1666 int
1668 PPL_PROTO((ppl_const_Generator_System_const_iterator_t git));
1669  /* Constructors, Assignment and Destructor */
1671 
1674 
1679 int
1681 PPL_PROTO((ppl_const_Generator_System_const_iterator_t git,
1682  ppl_const_Generator_t* pg));
1683 
1687 int
1689 PPL_PROTO((ppl_Generator_System_const_iterator_t git));
1690 
1695 int
1697 PPL_PROTO((ppl_const_Generator_System_const_iterator_t x,
1698  ppl_const_Generator_System_const_iterator_t y));
1699  /* Dereferencing, Incrementing and Equality Testing */
1701 
1702 
1705 
1711 int
1712 ppl_new_Congruence PPL_PROTO((ppl_Congruence_t* pc,
1713  ppl_const_Linear_Expression_t le,
1714  ppl_const_Coefficient_t m));
1715 
1720 int
1721 ppl_new_Congruence_zero_dim_false PPL_PROTO((ppl_Congruence_t* pc));
1722 
1728 int
1729 ppl_new_Congruence_zero_dim_integrality PPL_PROTO((ppl_Congruence_t* pc));
1730 
1735 int
1736 ppl_new_Congruence_from_Congruence PPL_PROTO((ppl_Congruence_t* pc,
1737  ppl_const_Congruence_t c));
1738 
1742 int
1743 ppl_assign_Congruence_from_Congruence PPL_PROTO((ppl_Congruence_t dst,
1744  ppl_const_Congruence_t src));
1745 
1750 int
1751 ppl_delete_Congruence PPL_PROTO((ppl_const_Congruence_t c));
1752  /* Constructors, Assignment and Destructor */
1754 
1757 
1761 int
1762 ppl_Congruence_space_dimension PPL_PROTO((ppl_const_Congruence_t c,
1763  ppl_dimension_type* m));
1764 
1769 int
1770 ppl_Congruence_coefficient PPL_PROTO((ppl_const_Congruence_t c,
1771  ppl_dimension_type var,
1772  ppl_Coefficient_t n));
1773 
1777 int
1778 ppl_Congruence_inhomogeneous_term PPL_PROTO((ppl_const_Congruence_t c,
1779  ppl_Coefficient_t n));
1780 
1784 int
1785 ppl_Congruence_modulus PPL_PROTO((ppl_const_Congruence_t c,
1786  ppl_Coefficient_t m));
1787 
1793 int
1794 ppl_Congruence_OK PPL_PROTO((ppl_const_Congruence_t c));
1795  /* Functions that Do Not Modify the Congruence */
1797 
1799 
1800 
1803 
1808 int
1809 ppl_new_Congruence_System PPL_PROTO((ppl_Congruence_System_t* pcs));
1810 
1815 int
1817 PPL_PROTO((ppl_Congruence_System_t* pcs));
1818 
1824 int
1826 PPL_PROTO((ppl_Congruence_System_t* pcs, ppl_const_Congruence_t c));
1827 
1832 int
1834 PPL_PROTO((ppl_Congruence_System_t* pcs, ppl_const_Congruence_System_t cs));
1835 
1839 int
1841 PPL_PROTO((ppl_Congruence_System_t dst, ppl_const_Congruence_System_t src));
1842 
1847 int
1848 ppl_delete_Congruence_System PPL_PROTO((ppl_const_Congruence_System_t cs));
1849  /* Constructors, Assignment and Destructor */
1851 
1854 
1858 int
1860 PPL_PROTO((ppl_const_Congruence_System_t cs, ppl_dimension_type* m));
1861 
1866 int
1868 PPL_PROTO((ppl_const_Congruence_System_t cs));
1869 
1874 int
1876 PPL_PROTO((ppl_const_Congruence_System_t cs,
1877  ppl_Congruence_System_const_iterator_t cit));
1878 
1883 int
1885 PPL_PROTO((ppl_const_Congruence_System_t cs,
1886  ppl_Congruence_System_const_iterator_t cit));
1887 
1893 int
1894 ppl_Congruence_System_OK PPL_PROTO((ppl_const_Congruence_System_t cs));
1895  /* Functions that Do Not Modify the Congruence System */
1897 
1900 
1905 int
1906 ppl_Congruence_System_clear PPL_PROTO((ppl_Congruence_System_t cs));
1907 
1912 int
1913 ppl_Congruence_System_insert_Congruence PPL_PROTO((ppl_Congruence_System_t cs,
1914  ppl_const_Congruence_t c));
1915  /* Functions that May Modify the Congruence System */
1917 
1918 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Congruence_System)
1919 
1920 
1923 
1928 int
1930 PPL_PROTO((ppl_Congruence_System_const_iterator_t* pcit));
1931 
1936 int
1938 PPL_PROTO((ppl_Congruence_System_const_iterator_t* pcit,
1939  ppl_const_Congruence_System_const_iterator_t cit));
1940 
1944 int
1946 PPL_PROTO((ppl_Congruence_System_const_iterator_t dst,
1947  ppl_const_Congruence_System_const_iterator_t src));
1948 
1953 int
1955 PPL_PROTO((ppl_const_Congruence_System_const_iterator_t cit));
1956  /* Constructors, Assignment and Destructor */
1958 
1961 
1966 int
1968 PPL_PROTO((ppl_const_Congruence_System_const_iterator_t cit,
1969  ppl_const_Congruence_t* pc));
1970 
1974 int
1976 PPL_PROTO((ppl_Congruence_System_const_iterator_t cit));
1977 
1982 int
1984 PPL_PROTO((ppl_const_Congruence_System_const_iterator_t x,
1985  ppl_const_Congruence_System_const_iterator_t y));
1986  /* Dereferencing, Incrementing and Equality Testing */
1988 
1989 
2000 };
2001 
2004 
2013 int
2014 ppl_new_Grid_Generator PPL_PROTO((ppl_Grid_Generator_t* pg,
2015  ppl_const_Linear_Expression_t le,
2017  ppl_const_Coefficient_t d));
2018 
2024 int
2025 ppl_new_Grid_Generator_zero_dim_point PPL_PROTO((ppl_Grid_Generator_t* pg));
2026 
2031 int
2033 PPL_PROTO((ppl_Grid_Generator_t* pg, ppl_const_Grid_Generator_t g));
2034 
2038 int
2040 PPL_PROTO((ppl_Grid_Generator_t dst,
2041  ppl_const_Grid_Generator_t src));
2042 
2047 int
2048 ppl_delete_Grid_Generator PPL_PROTO((ppl_const_Grid_Generator_t g));
2049  /* Constructors, Assignment and Destructor */
2051 
2054 
2058 int
2059 ppl_Grid_Generator_space_dimension PPL_PROTO((ppl_const_Grid_Generator_t g,
2060  ppl_dimension_type* m));
2061 
2065 int
2066 ppl_Grid_Generator_type PPL_PROTO((ppl_const_Grid_Generator_t g));
2067 
2072 int
2073 ppl_Grid_Generator_coefficient PPL_PROTO((ppl_const_Grid_Generator_t g,
2074  ppl_dimension_type var,
2075  ppl_Coefficient_t n));
2076 
2080 int
2081 ppl_Grid_Generator_divisor PPL_PROTO((ppl_const_Grid_Generator_t g,
2082  ppl_Coefficient_t n));
2083 
2089 int
2090 ppl_Grid_Generator_OK PPL_PROTO((ppl_const_Grid_Generator_t g));
2091  /* Functions that Do Not Modify the Generator */
2093 
2095 
2096 
2097 
2099 
2104 int
2105 ppl_new_Grid_Generator_System PPL_PROTO((ppl_Grid_Generator_System_t* pgs));
2106 
2107 /*
2108  Creates the universe zero-dimensional system of grid generators (i.e.,
2109  containing the origin only). Writes a handle to the new system at
2110  address \p pgs.
2111 */
2112 int
2114 PPL_PROTO((ppl_Grid_Generator_System_t* pgs));
2115 
2121 int
2123 PPL_PROTO((ppl_Grid_Generator_System_t* pgs,
2124  ppl_const_Grid_Generator_t g));
2125 
2130 int
2132 PPL_PROTO((ppl_Grid_Generator_System_t* pgs,
2133  ppl_const_Grid_Generator_System_t gs));
2134 
2138 int
2140 PPL_PROTO((ppl_Grid_Generator_System_t dst,
2141  ppl_const_Grid_Generator_System_t src));
2142 
2147 int
2149 PPL_PROTO((ppl_const_Grid_Generator_System_t gs));
2150  /* Constructors, Assignment and Destructor */
2152 
2155 
2159 int
2161 PPL_PROTO((ppl_const_Grid_Generator_System_t gs, ppl_dimension_type* m));
2162 
2167 int
2169 PPL_PROTO((ppl_const_Grid_Generator_System_t gs));
2170 
2175 int
2177 PPL_PROTO((ppl_const_Grid_Generator_System_t gs,
2178  ppl_Grid_Generator_System_const_iterator_t git));
2179 
2184 int
2186 PPL_PROTO((ppl_const_Grid_Generator_System_t gs,
2187  ppl_Grid_Generator_System_const_iterator_t git));
2188 
2194 int
2195 ppl_Grid_Generator_System_OK PPL_PROTO((ppl_const_Grid_Generator_System_t gs));
2196  /* Functions that Do Not Modify the Grid Generator System */
2198 
2201 
2206 int
2207 ppl_Grid_Generator_System_clear PPL_PROTO((ppl_Grid_Generator_System_t gs));
2208 
2213 int
2215 PPL_PROTO((ppl_Grid_Generator_System_t gs,
2216  ppl_const_Grid_Generator_t g));
2217  /* Functions that May Modify the Grid Generator System */
2219 
2220 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Grid_Generator_System)
2221 
2222 
2225 
2230 int
2232 PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t* pgit));
2233 
2238 int
2240 PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t* pgit,
2241  ppl_const_Grid_Generator_System_const_iterator_t git));
2242 
2246 int
2248 PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t dst,
2249  ppl_const_Grid_Generator_System_const_iterator_t src));
2250 
2255 int
2257 PPL_PROTO((ppl_const_Grid_Generator_System_const_iterator_t git));
2258  /* Constructors, Assignment and Destructor */
2260 
2263 
2268 int
2270 PPL_PROTO((ppl_const_Grid_Generator_System_const_iterator_t git,
2271  ppl_const_Grid_Generator_t* pg));
2272 
2276 int
2278 PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t git));
2279 
2284 int
2286 PPL_PROTO((ppl_const_Grid_Generator_System_const_iterator_t x,
2287  ppl_const_Grid_Generator_System_const_iterator_t y));
2288  /* Dereferencing, Incrementing and Equality Testing */
2290 
2291 
2295 extern unsigned int PPL_COMPLEXITY_CLASS_POLYNOMIAL;
2296 
2301 extern unsigned int PPL_COMPLEXITY_CLASS_SIMPLEX;
2302 
2306 extern unsigned int PPL_COMPLEXITY_CLASS_ANY;
2307 
2312 extern unsigned int PPL_POLY_CON_RELATION_IS_DISJOINT;
2313 
2318 extern unsigned int PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS;
2319 
2324 extern unsigned int PPL_POLY_CON_RELATION_IS_INCLUDED;
2325 
2330 extern unsigned int PPL_POLY_CON_RELATION_SATURATES;
2331 
2336 extern unsigned int PPL_POLY_GEN_RELATION_SUBSUMES;
2337 
2338 
2353 };
2354 
2366 };
2367 
2379 
2394 
2404 };
2405 
2408 
2413 
2418 
2423 
2428 
2433 
2438 
2443 
2448 
2453 
2454 
2455 
2460 
2465 
2470 
2475 
2480 
2485 
2490 
2495 
2500  /* Symbolic Constants */
2502 
2505 
2510 int
2511 ppl_new_MIP_Problem_from_space_dimension PPL_PROTO((ppl_MIP_Problem_t* pmip,
2512  ppl_dimension_type d));
2513 
2519 int
2520 ppl_new_MIP_Problem PPL_PROTO((ppl_MIP_Problem_t* pmip,
2521  ppl_dimension_type d,
2522  ppl_const_Constraint_System_t cs,
2523  ppl_const_Linear_Expression_t le,
2524  int m));
2525 
2530 int
2532 PPL_PROTO((ppl_MIP_Problem_t* pmip, ppl_const_MIP_Problem_t mip));
2533 
2537 int
2539 PPL_PROTO((ppl_MIP_Problem_t dst, ppl_const_MIP_Problem_t src));
2540 
2545 int
2546 ppl_delete_MIP_Problem PPL_PROTO((ppl_const_MIP_Problem_t mip));
2547  /* Constructors, Assignment and Destructor for MIP_Problem */
2549 
2552 
2556 int
2558 PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_dimension_type* m));
2559 
2563 int
2565 PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_dimension_type* m));
2566 
2572 int
2574 PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_dimension_type ds[]));
2575 
2580 int
2581 ppl_MIP_Problem_number_of_constraints PPL_PROTO((ppl_const_MIP_Problem_t mip,
2582  ppl_dimension_type* m));
2583 
2588 int
2589 ppl_MIP_Problem_constraint_at_index PPL_PROTO((ppl_const_MIP_Problem_t mip,
2590  ppl_dimension_type i,
2591  ppl_const_Constraint_t* pc));
2592 
2597 int
2599 PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_const_Linear_Expression_t* ple));
2600 
2604 int
2605 ppl_MIP_Problem_optimization_mode PPL_PROTO((ppl_const_MIP_Problem_t mip));
2606 
2612 int
2613 ppl_MIP_Problem_OK PPL_PROTO((ppl_const_MIP_Problem_t mip));
2614  /* Functions that Do Not Modify the MIP_Problem */
2616 
2619 
2623 int
2624 ppl_MIP_Problem_clear PPL_PROTO((ppl_MIP_Problem_t mip));
2625 
2630 int
2632 PPL_PROTO((ppl_MIP_Problem_t mip, ppl_dimension_type d));
2633 
2639 int
2641 PPL_PROTO((ppl_MIP_Problem_t mip, ppl_dimension_type ds[], size_t n));
2642 
2647 int
2648 ppl_MIP_Problem_add_constraint PPL_PROTO((ppl_MIP_Problem_t mip,
2649  ppl_const_Constraint_t c));
2650 
2655 int
2656 ppl_MIP_Problem_add_constraints PPL_PROTO((ppl_MIP_Problem_t mip,
2657  ppl_const_Constraint_System_t cs));
2658 
2662 int
2664 PPL_PROTO((ppl_MIP_Problem_t mip, ppl_const_Linear_Expression_t le));
2665 
2669 int
2670 ppl_MIP_Problem_set_optimization_mode PPL_PROTO((ppl_MIP_Problem_t mip,
2671  int mode));
2672  /* Functions that May Modify the MIP_Problem */
2674 
2677 
2681 int
2682 ppl_MIP_Problem_is_satisfiable PPL_PROTO((ppl_const_MIP_Problem_t mip));
2683 
2696 int
2697 ppl_MIP_Problem_solve PPL_PROTO((ppl_const_MIP_Problem_t mip));
2698 
2714 int
2716 PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_const_Generator_t g,
2717  ppl_Coefficient_t num, ppl_Coefficient_t den));
2718 
2723 int
2724 ppl_MIP_Problem_feasible_point PPL_PROTO((ppl_const_MIP_Problem_t mip,
2725  ppl_const_Generator_t* pg));
2726 
2731 int
2732 ppl_MIP_Problem_optimizing_point PPL_PROTO((ppl_const_MIP_Problem_t mip,
2733  ppl_const_Generator_t* pg));
2734 
2747 int
2749 PPL_PROTO((ppl_const_MIP_Problem_t mip,
2750  ppl_Coefficient_t num, ppl_Coefficient_t den));
2751  /* Computing the Solution of the MIP_Problem */
2753 
2756 
2760 int
2762 PPL_PROTO((ppl_const_MIP_Problem_t mip, int name));
2763 
2767 int
2769 PPL_PROTO((ppl_MIP_Problem_t mip, int value));
2770 
2774 int
2776 PPL_PROTO((ppl_const_MIP_Problem_t mip, size_t* sz));
2777 
2781 int
2783 PPL_PROTO((ppl_const_MIP_Problem_t mip, size_t* sz));
2784  /* Querying/Setting Control Parameters */
2786 
2787 
2790 
2795 int
2796 ppl_new_PIP_Problem_from_space_dimension PPL_PROTO((ppl_PIP_Problem_t* ppip,
2797  ppl_dimension_type d));
2798 
2803 int
2805 PPL_PROTO((ppl_PIP_Problem_t* ppip, ppl_const_PIP_Problem_t pip));
2806 
2810 int
2812 PPL_PROTO((ppl_PIP_Problem_t dst, ppl_const_PIP_Problem_t src));
2813 
2820 int
2822 PPL_PROTO((ppl_PIP_Problem_t* ppip,
2823  ppl_dimension_type d,
2824  ppl_Constraint_System_const_iterator_t first,
2825  ppl_Constraint_System_const_iterator_t last,
2826  size_t n,
2827  ppl_dimension_type ds[]));
2828 
2833 int
2834 ppl_delete_PIP_Problem PPL_PROTO((ppl_const_PIP_Problem_t pip));
2835  /* Constructors, Assignment and Destructor for PIP_Problem */
2837 
2840 
2848 int
2850 PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type* m));
2851 
2855 int
2857 PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type* m));
2858 
2864 int
2866 PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type ds[]));
2867 
2871 int
2873 PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type* pd));
2874 
2879 int
2880 ppl_PIP_Problem_number_of_constraints PPL_PROTO((ppl_const_PIP_Problem_t pip,
2881  ppl_dimension_type* m));
2882 
2887 int
2888 ppl_PIP_Problem_constraint_at_index PPL_PROTO((ppl_const_PIP_Problem_t pip,
2889  ppl_dimension_type i,
2890  ppl_const_Constraint_t* pc));
2891 
2895 int
2897 PPL_PROTO((ppl_const_PIP_Problem_t pip, size_t* sz));
2898 
2902 int
2904 PPL_PROTO((ppl_const_PIP_Problem_t pip, size_t* sz));
2905 
2911 int
2912 ppl_PIP_Problem_OK PPL_PROTO((ppl_const_PIP_Problem_t pip));
2913  /* Functions that Do Not Modify the PIP_Problem */
2915 
2918 
2922 int
2923 ppl_PIP_Problem_clear PPL_PROTO((ppl_PIP_Problem_t pip));
2924 
2945 int
2947 PPL_PROTO((ppl_PIP_Problem_t pip,
2948  ppl_dimension_type pip_vars,
2949  ppl_dimension_type pip_params));
2950 
2956 int
2958 PPL_PROTO((ppl_PIP_Problem_t pip, ppl_dimension_type ds[], size_t n));
2959 
2963 int
2965 PPL_PROTO((ppl_PIP_Problem_t pip, ppl_dimension_type d));
2966 
2971 int
2972 ppl_PIP_Problem_add_constraint PPL_PROTO((ppl_PIP_Problem_t pip,
2973  ppl_const_Constraint_t c));
2974 
2979 int
2980 ppl_PIP_Problem_add_constraints PPL_PROTO((ppl_PIP_Problem_t pip,
2981  ppl_const_Constraint_System_t cs));
2982  /* Functions that May Modify the PIP_Problem */
2984 
2987 
2992 int
2993 ppl_PIP_Problem_is_satisfiable PPL_PROTO((ppl_const_PIP_Problem_t pip));
2994 
3004 int
3005 ppl_PIP_Problem_solve PPL_PROTO((ppl_const_PIP_Problem_t pip));
3006 
3010 int
3011 ppl_PIP_Problem_solution PPL_PROTO((ppl_const_PIP_Problem_t pip,
3012  ppl_const_PIP_Tree_Node_t* pip_tree));
3013 
3017 int
3019 PPL_PROTO((ppl_const_PIP_Problem_t pip,
3020  ppl_const_PIP_Tree_Node_t* pip_tree));
3021  /* Computing the Solution of the PIP_Problem */
3023 
3026 
3030 int
3032 PPL_PROTO((ppl_const_PIP_Problem_t pip, int name));
3033 
3037 int
3039 PPL_PROTO((ppl_PIP_Problem_t pip, int value));
3040  /* Querying/Setting Control Parameters */
3042 
3043 
3048 int
3050 PPL_PROTO((ppl_const_PIP_Tree_Node_t spip_tree,
3051  ppl_const_PIP_Solution_Node_t* dpip_tree));
3052 
3057 int
3059 PPL_PROTO((ppl_const_PIP_Tree_Node_t spip_tree,
3060  ppl_const_PIP_Decision_Node_t* dpip_tree));
3061 
3066 int
3068 PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree,
3069  ppl_const_Constraint_System_t* pcs));
3070 
3076 int
3077 ppl_PIP_Tree_Node_OK PPL_PROTO((ppl_const_PIP_Tree_Node_t pip));
3078 
3083 int
3085 PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree,
3086  ppl_dimension_type* m));
3087 
3092 int
3094 PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree,
3095  ppl_Artificial_Parameter_Sequence_const_iterator_t pit));
3096 
3101 int
3103 PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree,
3104  ppl_Artificial_Parameter_Sequence_const_iterator_t pit));
3105 
3126 int
3128 PPL_PROTO((ppl_const_PIP_Solution_Node_t pip_sol,
3129  ppl_dimension_type var,
3130  ppl_const_Linear_Expression_t* le));
3131 
3136 int
3138 PPL_PROTO((ppl_const_PIP_Decision_Node_t pip_dec,
3139  int b,
3140  ppl_const_PIP_Tree_Node_t* pip_tree));
3141 
3145 int
3147 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
3148  ppl_Linear_Expression_t le));
3149 
3154 int
3156 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
3157  ppl_dimension_type var,
3158  ppl_Coefficient_t n));
3159 
3164 int
3166 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
3167  ppl_Coefficient_t n));
3168 
3172 int
3174 PPL_PROTO((ppl_const_Artificial_Parameter_t ap,
3175  ppl_Coefficient_t n));
3176 
3179 
3184 int
3186 PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t* papit));
3187 
3192 int
3194 PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t* papit,
3195  ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit));
3196 
3200 int
3202 PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t dst,
3203  ppl_const_Artificial_Parameter_Sequence_const_iterator_t src));
3204 
3209 int
3211 PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit));
3212  /* Constructors, Assignment and Destructor */
3214 
3217 
3222 int
3224 PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit,
3225  ppl_const_Artificial_Parameter_t* pap));
3226 
3230 int
3232 PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t apit));
3233 
3238 int
3240 PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t x,
3241  ppl_const_Artificial_Parameter_Sequence_const_iterator_t y));
3242  /* Dereferencing, Incrementing and Equality Testing */
3244 
3246 
3248 
3250 
3251 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(PIP_Solution_Node)
3252 
3253 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(PIP_Decision_Node)
3254 
3255 PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Artificial_Parameter)
3256 
3257 #include "ppl_c_domains.h"
3258 
3259 #ifdef __cplusplus
3260 } /* extern "C" */
3261 #endif
3262 
3263 #undef PPL_TYPE_DECLARATION
3264 #undef PPL_PROTO
3265 #undef PPL_DECLARE_PRINT_FUNCTIONS
3266 #undef PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS
3267 #undef PPL_DECLARE_IO_FUNCTIONS
3268 #undef PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS
3269 #undef PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS
3270 #undef PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS
3271 
3272 #endif /* !defined(PPL_ppl_c_h) */
#define PPL_TYPE_DECLARATION(Type)
Definition: ppl_c_header.h:548
int ppl_Linear_Expression_all_homogeneous_terms_are_zero(ppl_const_Linear_Expression_t le)
Returns true if and only if all the homogeneous terms of *this are .
int ppl_Artificial_Parameter_get_inhomogeneous_term(ppl_const_Artificial_Parameter_t ap, ppl_Coefficient_t n)
Copies into n the inhomogeneous term of the artificial parameter ap.
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.
int ppl_delete_Constraint(ppl_const_Constraint_t c)
Invalidates the handle c: this makes sure the corresponding resources will eventually be released...
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK
Code of MIP problem's "textbook" pricing method.
int ppl_delete_Grid_Generator_System_const_iterator(ppl_const_Grid_Generator_System_const_iterator_t git)
Invalidates the handle git: this makes sure the corresponding resources will eventually be released...
int ppl_new_PIP_Problem_from_space_dimension(ppl_PIP_Problem_t *ppip, ppl_dimension_type d)
Builds a trivial PIP problem of dimension d and writes a handle to it at address ppip.
int ppl_Congruence_System_begin(ppl_const_Congruence_System_t cs, ppl_Congruence_System_const_iterator_t cit)
Assigns to cit a const iterator "pointing" to the beginning of the congruence system cs...
int ppl_Coefficient_max(mpz_t max)
Returns a positive integer if coefficients are bounded, in which case max is set to their maximum val...
int ppl_PIP_Tree_Node_begin(ppl_const_PIP_Tree_Node_t pip_tree, ppl_Artificial_Parameter_Sequence_const_iterator_t pit)
Assigns to pit a const iterator "pointing" to the beginning of the artificial parameter sequence in t...
ppl_enum_Bounded_Integer_Type_Representation
Representation of bounded integer types.
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...
int ppl_Linear_Expression_space_dimension(ppl_const_Linear_Expression_t le, ppl_dimension_type *m)
Writes to m the space dimension of le.
int ppl_new_Generator_zero_dim_point(ppl_Generator_t *pg)
Creates the point that is the origin of the zero-dimensional space . Writes a handle for the new gene...
int ppl_Constraint_System_const_iterator_equal_test(ppl_const_Constraint_System_const_iterator_t x, ppl_const_Constraint_System_const_iterator_t y)
Returns a positive integer if the iterators corresponding to x and y are equal; returns 0 if they are...
unsigned int PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS
Individual bit saying that the polyhedron intersects the set of points satisfying the constraint...
int ppl_Congruence_System_insert_Congruence(ppl_Congruence_System_t cs, ppl_const_Congruence_t c)
Inserts a copy of the congruence c into cs; the space dimension is increased, if necessary.
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_FLOAT
Code of MIP problem's "float steepest-edge" pricing method.
int ppl_Grid_Generator_OK(ppl_const_Grid_Generator_t g)
Returns a positive integer if g is well formed, i.e., if it satisfies all its implementation invarian...
int ppl_initialize(void)
Initializes the Parma Polyhedra Library. This function must be called before any other function...
int ppl_MIP_Problem_add_constraint(ppl_MIP_Problem_t mip, ppl_const_Constraint_t c)
Modifies the feasible region of the MIP problem mip by adding a copy of the constraint c...
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)
Assigns a copy of the const iterator src to dst.
int ppl_PIP_Problem_space_dimension(ppl_const_PIP_Problem_t pip, ppl_dimension_type *m)
Writes to m the dimension of the vector space enclosing pip.
int ppl_Linear_Expression_OK(ppl_const_Linear_Expression_t le)
Returns a positive integer if le is well formed, i.e., if it satisfies all its implementation invaria...
int ppl_PIP_Problem_number_of_constraints(ppl_const_PIP_Problem_t pip, ppl_dimension_type *m)
Writes to m the number of constraints defining the feasible region of pip.
int ppl_assign_Coefficient_from_Coefficient(ppl_Coefficient_t dst, ppl_const_Coefficient_t src)
Assigns a copy of the coefficient src to dst.
int PPL_MIP_PROBLEM_STATUS_UNBOUNDED
Code of the "unbounded MIP problem" status.
int ppl_MIP_Problem_solve(ppl_const_MIP_Problem_t mip)
Solves the MIP problem mip, returning an exit status.
int ppl_new_Linear_Expression_from_Constraint(ppl_Linear_Expression_t *ple, ppl_const_Constraint_t c)
Builds a linear expression corresponding to constraint c; writes a handle for the newly created linea...
int ppl_delete_Generator_System(ppl_const_Generator_System_t gs)
Invalidates the handle gs: this makes sure the corresponding resources will eventually be released...
int ppl_new_Generator_zero_dim_closure_point(ppl_Generator_t *pg)
Creates, as a closure point, the point that is the origin of the zero-dimensional space ...
int ppl_Linear_Expression_add_to_inhomogeneous(ppl_Linear_Expression_t le, ppl_const_Coefficient_t n)
Adds n to the inhomogeneous term of the linear expression le.
int ppl_Constraint_System_has_strict_inequalities(ppl_const_Constraint_System_t cs)
Returns a positive integer if cs contains any (non-trivial) strict inequality; returns 0 otherwise...
int ppl_PIP_Problem_optimizing_solution(ppl_const_PIP_Problem_t pip, ppl_const_PIP_Tree_Node_t *pip_tree)
Writes to pip_tree an optimizing solution for pip, if it exists.
int ppl_PIP_Problem_add_constraints(ppl_PIP_Problem_t pip, ppl_const_Constraint_System_t cs)
Modifies the feasible region of the PIP problem pip by adding a copy of the constraints in cs...
int ppl_assign_MIP_Problem_from_MIP_Problem(ppl_MIP_Problem_t dst, ppl_const_MIP_Problem_t src)
Assigns a copy of the MIP problem src to dst.
int ppl_delete_Linear_Expression(ppl_const_Linear_Expression_t le)
Invalidates the handle le: this makes sure the corresponding resources will eventually be released...
int ppl_Congruence_modulus(ppl_const_Congruence_t c, ppl_Coefficient_t m)
Copies into m the modulus of congruence c.
int ppl_assign_Constraint_from_Constraint(ppl_Constraint_t dst, ppl_const_Constraint_t src)
Assigns a copy of the constraint src to dst.
int ppl_Generator_System_begin(ppl_const_Generator_System_t gs, ppl_Generator_System_const_iterator_t git)
Assigns to git a const iterator "pointing" to the beginning of the generator system gs...
int ppl_PIP_Problem_total_memory_in_bytes(ppl_const_PIP_Problem_t pip, size_t *sz)
Writes into *sz the size in bytes of the memory occupied by pip.
int ppl_PIP_Problem_number_of_parameter_space_dimensions(ppl_const_PIP_Problem_t pip, ppl_dimension_type *m)
Writes to m the number of parameter space dimensions of pip.
ppl_enum_error_code
Defines the error codes that any function may return.
Definition: ppl_c_header.h:298
size_t ppl_dimension_type
An unsigned integral type for representing space dimensions.
Definition: ppl_c_header.h:463
int ppl_PIP_Tree_Node_as_decision(ppl_const_PIP_Tree_Node_t spip_tree, ppl_const_PIP_Decision_Node_t *dpip_tree)
Writes to dpip_tree the decision node if spip_tree is a decision node, and 0 otherwise.
int ppl_Coefficient_min(mpz_t min)
Returns a positive integer if coefficients are bounded, in which case min is set to their minimum val...
int ppl_Generator_System_const_iterator_equal_test(ppl_const_Generator_System_const_iterator_t x, ppl_const_Generator_System_const_iterator_t y)
Returns a positive integer if the iterators corresponding to x and y are equal; returns 0 if they are...
int ppl_Generator_System_const_iterator_increment(ppl_Generator_System_const_iterator_t git)
Increment git so that it "points" to the next generator.
int ppl_assign_Generator_System_from_Generator_System(ppl_Generator_System_t dst, ppl_const_Generator_System_t src)
Assigns a copy of the generator system src to dst.
int ppl_MIP_Problem_constraint_at_index(ppl_const_MIP_Problem_t mip, ppl_dimension_type i, ppl_const_Constraint_t *pc)
Writes at address pc a const handle to the i-th constraint defining the feasible region of the MIP pr...
int ppl_PIP_Problem_external_memory_in_bytes(ppl_const_PIP_Problem_t pip, size_t *sz)
Writes into *sz the size in bytes of the memory managed by pip.
int ppl_new_Congruence_zero_dim_integrality(ppl_Congruence_t *pc)
Creates the true (zero-dimension space) congruence , also known as integrality congruence. A handle for the newly created congruence is written at address pc.
value
Overflow is impossible.
int ppl_PIP_Tree_Node_as_solution(ppl_const_PIP_Tree_Node_t spip_tree, ppl_const_PIP_Solution_Node_t *dpip_tree)
Writes to dpip_tree the solution node if spip_tree is a solution node, and 0 otherwise.
int ppl_MIP_Problem_set_control_parameter(ppl_MIP_Problem_t mip, int value)
Sets control parameter value in problem mip.
int ppl_new_Linear_Expression_from_Congruence(ppl_Linear_Expression_t *ple, ppl_const_Congruence_t c)
Builds a linear expression corresponding to congruence c; writes a handle for the newly created linea...
int ppl_MIP_Problem_objective_function(ppl_const_MIP_Problem_t mip, ppl_const_Linear_Expression_t *ple)
Writes a const handle to the linear expression defining the objective function of the MIP problem mip...
int ppl_Constraint_System_end(ppl_const_Constraint_System_t cs, ppl_Constraint_System_const_iterator_t cit)
Assigns to cit a const iterator "pointing" past the end of the constraint system cs.
int ppl_new_Generator_System_from_Generator(ppl_Generator_System_t *pgs, ppl_const_Generator_t g)
Builds the singleton generator system containing only a copy of generator g; writes a handle for the ...
int ppl_new_Linear_Expression_from_Linear_Expression(ppl_Linear_Expression_t *ple, ppl_const_Linear_Expression_t le)
Builds a linear expression that is a copy of le; writes a handle for the newly created linear express...
int ppl_delete_MIP_Problem(ppl_const_MIP_Problem_t mip)
Invalidates the handle mip: this makes sure the corresponding resources will eventually be released...
int ppl_Linear_Expression_coefficient(ppl_const_Linear_Expression_t le, ppl_dimension_type var, ppl_Coefficient_t n)
Copies into n the coefficient of variable var in the linear expression le.
int ppl_new_Constraint_zero_dim_false(ppl_Constraint_t *pc)
Creates the unsatisfiable (zero-dimension space) constraint and writes a handle for it at address pc...
int ppl_MIP_Problem_external_memory_in_bytes(ppl_const_MIP_Problem_t mip, size_t *sz)
Writes into *sz the size in bytes of the memory managed by mip.
int ppl_delete_Congruence_System_const_iterator(ppl_const_Congruence_System_const_iterator_t cit)
Invalidates the handle cit: this makes sure the corresponding resources will eventually be released...
int ppl_Generator_OK(ppl_const_Generator_t g)
Returns a positive integer if g is well formed, i.e., if it satisfies all its implementation invarian...
int ppl_PIP_Tree_Node_number_of_artificials(ppl_const_PIP_Tree_Node_t pip_tree, ppl_dimension_type *m)
Writes to m the number of elements in the artificial parameter sequence in the pip tree node pip_tree...
int ppl_Congruence_System_end(ppl_const_Congruence_System_t cs, ppl_Congruence_System_const_iterator_t cit)
Assigns to cit a const iterator "pointing" past the end of the congruence system cs.
int ppl_Coefficient_OK(ppl_const_Coefficient_t c)
Returns a positive integer if c is well formed, i.e., if it satisfies all its implementation invarian...
int ppl_MIP_Problem_OK(ppl_const_MIP_Problem_t mip)
Returns a positive integer if mip is well formed, i.e., if it satisfies all its implementation invari...
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)
Builds a const iterator that is a copy of git; writes a handle for the newly created const iterator a...
int ppl_delete_Grid_Generator(ppl_const_Grid_Generator_t g)
Invalidates the handle g: this makes sure the corresponding resources will eventually be released...
int ppl_Congruence_System_clear(ppl_Congruence_System_t cs)
Removes all the congruences from the congruence system cs and sets its space dimension to 0...
int ppl_MIP_Problem_space_dimension(ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
Writes to m the dimension of the vector space enclosing mip.
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...
int ppl_banner(const char **p)
Writes to *p a pointer to a character string containing the PPL banner.
const char * ppl_io_variable_output_function_type(ppl_dimension_type var)
The type of output functions used for printing variables.
Definition: ppl_c_header.h:507
int ppl_Grid_Generator_System_OK(ppl_const_Grid_Generator_System_t gs)
Returns a positive integer if gs is well formed, i.e., if it satisfies all its implementation invaria...
int ppl_PIP_Problem_add_constraint(ppl_PIP_Problem_t pip, ppl_const_Constraint_t c)
Modifies the feasible region of the PIP problem pip by adding a copy of the constraint c...
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_EXACT
Code of MIP problem's "exact steepest-edge" pricing method.
int ppl_io_fprint_variable(FILE *stream, ppl_dimension_type var)
Pretty-prints var to the given output stream.
int ppl_new_Constraint_System_from_Constraint_System(ppl_Constraint_System_t *pcs, ppl_const_Constraint_System_t cs)
Builds a constraint system that is a copy of cs; writes a handle for the newly created system at addr...
int ppl_Generator_System_empty(ppl_const_Generator_System_t gs)
Returns a positive integer if gs contains no generators; returns 0 otherwise.
int ppl_PIP_Problem_is_satisfiable(ppl_const_PIP_Problem_t pip)
Returns a positive integer if pip is satisfiable and an optimal solution can be found; returns 0 othe...
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST
Code of PIP problem's "first" cutting strategy.
int ppl_assign_Grid_Generator_from_Grid_Generator(ppl_Grid_Generator_t dst, ppl_const_Grid_Generator_t src)
Assigns a copy of the grid generator src to dst.
int ppl_set_timeout(unsigned csecs)
Sets the timeout for computations whose completion could require an exponential amount of time...
int ppl_delete_Grid_Generator_System(ppl_const_Grid_Generator_System_t gs)
Invalidates the handle gs: this makes sure the corresponding resources will eventually be released...
unsigned int PPL_POLY_CON_RELATION_SATURATES
Individual bit saying that the polyhedron is included in the set of points saturating the constraint...
int ppl_new_Grid_Generator_System(ppl_Grid_Generator_System_t *pgs)
Builds an empty system of grid generators and writes a handle to it at address pgs.
ppl_enum_Constraint_Type
Describes the relations represented by a constraint.
int ppl_new_Generator_System_zero_dim_univ(ppl_Generator_System_t *pgs)
int ppl_PIP_Problem_OK(ppl_const_PIP_Problem_t pip)
Returns a positive integer if pip is well formed, i.e., if it satisfies all its implementation invari...
int ppl_reset_timeout(void)
Resets the timeout time so that the computation is not interrupted.
int ppl_Generator_System_const_iterator_dereference(ppl_const_Generator_System_const_iterator_t git, ppl_const_Generator_t *pg)
Dereference git writing a const handle to the resulting generator at address pg.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_FIRST
Code of PIP problem's "first" pivot row strategy.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST
Code of PIP problem's "deepest" cutting strategy.
int PPL_PIP_PROBLEM_STATUS_OPTIMIZED
Code of the "optimized PIP problem" status.
int ppl_new_PIP_Problem_from_PIP_Problem(ppl_PIP_Problem_t *ppip, ppl_const_PIP_Problem_t pip)
Builds a PIP problem that is a copy of pip; writes a handle for the newly created problem at address ...
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)
Returns a positive integer if the iterators corresponding to x and y are equal; returns 0 if they are...
int ppl_Grid_Generator_divisor(ppl_const_Grid_Generator_t g, ppl_Coefficient_t n)
If g is a point or a parameter assigns its divisor to n.
int ppl_Grid_Generator_System_space_dimension(ppl_const_Grid_Generator_System_t gs, ppl_dimension_type *m)
Writes to m the dimension of the vector space enclosing gs.
int ppl_assign_Linear_Expression_from_Linear_Expression(ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
Assigns a copy of the linear expression src to dst.
On overflow, wrapping takes place.
int ppl_assign_Coefficient_from_mpz_t(ppl_Coefficient_t dst, mpz_t z)
Assign to dst the value given by the GMP integer z.
int ppl_new_Linear_Expression(ppl_Linear_Expression_t *ple)
Creates a new linear expression corresponding to the constant 0 in a zero-dimensional space; writes a...
int ppl_delete_Generator(ppl_const_Generator_t g)
Invalidates the handle g: this makes sure the corresponding resources will eventually be released...
int ppl_MIP_Problem_is_satisfiable(ppl_const_MIP_Problem_t mip)
Returns a positive integer if mip is satisfiable; returns 0 otherwise.
int ppl_version_revision(void)
Returns the revision number of the PPL version.
int ppl_MIP_Problem_add_to_integer_space_dimensions(ppl_MIP_Problem_t mip, ppl_dimension_type ds[], size_t n)
Sets the space dimensions that are specified in first n positions of the array ds to be integer dimen...
int ppl_new_Grid_Generator_System_zero_dim_univ(ppl_Grid_Generator_System_t *pgs)
int ppl_max_space_dimension(ppl_dimension_type *m)
Writes to m the maximum space dimension this library can handle.
int ppl_PIP_Tree_Node_end(ppl_const_PIP_Tree_Node_t pip_tree, ppl_Artificial_Parameter_Sequence_const_iterator_t pit)
Assigns to pit a const iterator "pointing" to the end of the artificial parameter sequence in the pip...
unsigned int PPL_COMPLEXITY_CLASS_POLYNOMIAL
Code of the worst-case polynomial complexity class.
int ppl_new_Congruence_System_const_iterator(ppl_Congruence_System_const_iterator_t *pcit)
Builds a new `const iterator' and writes a handle to it at address pcit.
int ppl_assign_PIP_Problem_from_PIP_Problem(ppl_PIP_Problem_t dst, ppl_const_PIP_Problem_t src)
Assigns a copy of the PIP problem src to dst.
int ppl_restore_pre_PPL_rounding(void)
Sets the FPU rounding mode as it was before initialization of the PPL.
int ppl_new_Linear_Expression_from_Grid_Generator(ppl_Linear_Expression_t *ple, ppl_const_Grid_Generator_t g)
Builds a linear expression corresponding to grid generator g; writes a handle for the newly created l...
int ppl_Congruence_System_empty(ppl_const_Congruence_System_t cs)
Returns a positive integer if cs contains no (non-trivial) congruence; returns 0 otherwise.
int ppl_Generator_System_end(ppl_const_Generator_System_t gs, ppl_Generator_System_const_iterator_t git)
Assigns to git a const iterator "pointing" past the end of the generator system gs.
int ppl_Constraint_System_begin(ppl_const_Constraint_System_t cs, ppl_Constraint_System_const_iterator_t cit)
Assigns to cit a const iterator "pointing" to the beginning of the constraint system cs...
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)
Writes to le a const pointer to the parametric expression of the values of variable var in solution n...
int ppl_MIP_Problem_integer_space_dimensions(ppl_const_MIP_Problem_t mip, ppl_dimension_type ds[])
Writes in the first positions of the array ds all the integer space dimensions of problem mip...
int ppl_Grid_Generator_type(ppl_const_Grid_Generator_t g)
Returns the type of grid generator g.
int ppl_finalize(void)
Finalizes the Parma Polyhedra Library. This function must be called after any other function...
int ppl_new_Constraint_System_zero_dim_empty(ppl_Constraint_System_t *pcs)
Builds a zero-dimensional, unsatisfiable constraint system and writes a handle to it at address pcs...
int ppl_MIP_Problem_set_optimization_mode(ppl_MIP_Problem_t mip, int mode)
Sets the optimization mode of the MIP problem mip to mode.
int ppl_MIP_Problem_add_constraints(ppl_MIP_Problem_t mip, ppl_const_Constraint_System_t cs)
Modifies the feasible region of the MIP problem mip by adding a copy of the constraints in cs...
ppl_enum_Grid_Generator_Type
Describes the different kinds of grid generators.
int ppl_Artificial_Parameter_Sequence_const_iterator_increment(ppl_Artificial_Parameter_Sequence_const_iterator_t apit)
Increment apit so that it "points" to the next artificial parameter.
int ppl_new_Grid_Generator_from_Grid_Generator(ppl_Grid_Generator_t *pg, ppl_const_Grid_Generator_t g)
Builds a grid generator that is a copy of g; writes a handle for the newly created grid generator at ...
int ppl_delete_Congruence(ppl_const_Congruence_t c)
Invalidates the handle c: this makes sure the corresponding resources will eventually be released...
int ppl_Congruence_System_const_iterator_equal_test(ppl_const_Congruence_System_const_iterator_t x, ppl_const_Congruence_System_const_iterator_t y)
Returns a positive integer if the iterators corresponding to x and y are equal; returns 0 if they are...
int ppl_irrational_precision(unsigned *p)
Writes to p the precision parameter used for irrational calculations.
int ppl_MIP_Problem_optimization_mode(ppl_const_MIP_Problem_t mip)
Returns the optimization mode of the MIP problem mip.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY
Code for the PIP problem's "cutting strategy" control parameter name.
int ppl_Congruence_System_const_iterator_increment(ppl_Congruence_System_const_iterator_t cit)
Increment cit so that it "points" to the next congruence.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL
Code of PIP problem's "all" cutting strategy.
On overflow, the result is undefined.
int ppl_Congruence_space_dimension(ppl_const_Congruence_t c, ppl_dimension_type *m)
Writes to m the space dimension of c.
int ppl_multiply_Linear_Expression_by_Coefficient(ppl_Linear_Expression_t le, ppl_const_Coefficient_t n)
Multiply the linear expression dst by n.
int ppl_Grid_Generator_System_const_iterator_dereference(ppl_const_Grid_Generator_System_const_iterator_t git, ppl_const_Grid_Generator_t *pg)
Dereference git writing a const handle to the resulting grid generator at address pg...
int ppl_PIP_Problem_set_control_parameter(ppl_PIP_Problem_t pip, int value)
Sets control parameter value in problem pip.
int ppl_set_error_handler(void(*h)(enum ppl_enum_error_code code, const char *description))
Installs the user-defined error handler pointed at by h.
int ppl_new_Congruence_System_zero_dim_empty(ppl_Congruence_System_t *pcs)
Builds a zero-dimensional, unsatisfiable congruence system and writes a handle to it at address pcs...
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)
Assigns a copy of the const iterator src to dst.
int ppl_Artificial_Parameter_get_Linear_Expression(ppl_const_Artificial_Parameter_t ap, ppl_Linear_Expression_t le)
Copies into le the linear expression in artificial parameter ap.
int ppl_Grid_Generator_System_empty(ppl_const_Grid_Generator_System_t gs)
Returns a positive integer if gs contains no generator; returns 0 otherwise.
int ppl_new_MIP_Problem_from_space_dimension(ppl_MIP_Problem_t *pmip, ppl_dimension_type d)
Builds a trivial MIP problem of dimension d and writes a handle to it at address pmip.
int ppl_Linear_Expression_inhomogeneous_term(ppl_const_Linear_Expression_t le, ppl_Coefficient_t n)
Copies into n the inhomogeneous term of linear expression le.
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)
Assigns a copy of the const iterator src to dst.
int ppl_version_major(void)
Returns the major number of the PPL version.
int ppl_new_Generator_from_Generator(ppl_Generator_t *pg, ppl_const_Generator_t g)
Builds a generator that is a copy of g; writes a handle for the newly created generator at address pg...
int ppl_version(const char **p)
Writes to *p a pointer to a character string containing the PPL version.
int ppl_Generator_System_insert_Generator(ppl_Generator_System_t gs, ppl_const_Generator_t g)
Inserts a copy of the generator g into gs; the space dimension is increased, if necessary.
int ppl_Generator_space_dimension(ppl_const_Generator_t g, ppl_dimension_type *m)
Writes to m the space dimension of g.
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)
Builds a const iterator that is a copy of apit; writes a handle for the newly created const iterator ...
int ppl_new_Constraint_from_Constraint(ppl_Constraint_t *pc, ppl_const_Constraint_t c)
Builds a constraint that is a copy of c; writes a handle for the newly created constraint at address ...
int ppl_PIP_Problem_solution(ppl_const_PIP_Problem_t pip, ppl_const_PIP_Tree_Node_t *pip_tree)
Writes to pip_tree a solution for pip, if it exists.
int ppl_new_Generator_System_const_iterator(ppl_Generator_System_const_iterator_t *pgit)
Builds a new `const iterator' and writes a handle to it at address pgit.
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)
Evaluates the objective function of mip on point g.
int ppl_PIP_Problem_solve(ppl_const_PIP_Problem_t pip)
Solves the PIP problem pip, returning an exit status.
int ppl_new_Constraint(ppl_Constraint_t *pc, ppl_const_Linear_Expression_t le, enum ppl_enum_Constraint_Type rel)
Creates the new constraint `le rel 0' and writes a handle for it at address pc. The space dimension o...
int ppl_new_MIP_Problem_from_MIP_Problem(ppl_MIP_Problem_t *pmip, ppl_const_MIP_Problem_t mip)
Builds a MIP problem that is a copy of mip; writes a handle for the newly created system at address p...
int ppl_PIP_Problem_clear(ppl_PIP_Problem_t pip)
Resets the PIP problem to be a trivial problem of space dimension 0.
PPL_COEFFICIENT_TYPE Coefficient
int ppl_PIP_Tree_Node_OK(ppl_const_PIP_Tree_Node_t pip)
Returns a positive integer if pip_tree is well formed, i.e., if it satisfies all its implementation i...
int ppl_Congruence_System_const_iterator_dereference(ppl_const_Congruence_System_const_iterator_t cit, ppl_const_Congruence_t *pc)
Dereference cit writing a const handle to the resulting congruence at address pc. ...
int ppl_PIP_Problem_add_to_parameter_space_dimensions(ppl_PIP_Problem_t pip, ppl_dimension_type ds[], size_t n)
Sets the space dimensions that are specified in first n positions of the array ds to be parameter dim...
int ppl_assign_Generator_from_Generator(ppl_Generator_t dst, ppl_const_Generator_t src)
Assigns a copy of the generator src to dst.
int ppl_Constraint_type(ppl_const_Constraint_t c)
Returns the type of constraint c.
int ppl_MIP_Problem_optimal_value(ppl_const_MIP_Problem_t mip, ppl_Coefficient_t num, ppl_Coefficient_t den)
Returns the optimal value for mip.
int ppl_Artificial_Parameter_denominator(ppl_const_Artificial_Parameter_t ap, ppl_Coefficient_t n)
Copies into n the denominator in artificial parameter ap.
int ppl_reset_deterministic_timeout(void)
Resets the deterministic timeout so that the computation is not interrupted.
int ppl_new_Artificial_Parameter_Sequence_const_iterator(ppl_Artificial_Parameter_Sequence_const_iterator_t *papit)
Builds a new `const iterator' and writes a handle to it at address papit.
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...
int ppl_not_a_dimension(ppl_dimension_type *m)
Writes to m a value that does not designate a valid dimension.
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.
int PPL_PIP_PROBLEM_STATUS_UNFEASIBLE
Code of the "unfeasible PIP problem" status.
int ppl_Generator_System_space_dimension(ppl_const_Generator_System_t gs, ppl_dimension_type *m)
Writes to m the dimension of the vector space enclosing gs.
int ppl_new_Coefficient_from_Coefficient(ppl_Coefficient_t *pc, ppl_const_Coefficient_t c)
Builds a coefficient that is a copy of c; writes a handle for the newly created coefficient at addres...
int ppl_new_Grid_Generator_zero_dim_point(ppl_Grid_Generator_t *pg)
Creates the point that is the origin of the zero-dimensional space . Writes a handle for the new grid...
int ppl_Grid_Generator_coefficient(ppl_const_Grid_Generator_t g, ppl_dimension_type var, ppl_Coefficient_t n)
Copies into n the coefficient of variable var in grid generator g.
int ppl_assign_Congruence_from_Congruence(ppl_Congruence_t dst, ppl_const_Congruence_t src)
Assigns a copy of the congruence src to dst.
int PPL_MIP_PROBLEM_STATUS_UNFEASIBLE
Code of the "unfeasible MIP problem" status.
int ppl_new_Constraint_System_from_Constraint(ppl_Constraint_System_t *pcs, ppl_const_Constraint_t c)
Builds the singleton constraint system containing only a copy of constraint c; writes a handle for th...
int ppl_Congruence_OK(ppl_const_Congruence_t c)
Returns a positive integer if c is well formed, i.e., if it satisfies all its implementation invarian...
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)
Creates a new generator of direction le and type t. If the generator to be created is a point or a cl...
int ppl_io_print_variable(ppl_dimension_type var)
Pretty-prints var to stdout.
int ppl_Generator_System_OK(ppl_const_Generator_System_t gs)
Returns a positive integer if gs is well formed, i.e., if it satisfies all its implementation invaria...
unsigned int PPL_POLY_GEN_RELATION_SUBSUMES
Individual bit saying that adding the generator would not change the polyhedron.
int ppl_delete_Constraint_System(ppl_const_Constraint_System_t cs)
Invalidates the handle cs: this makes sure the corresponding resources will eventually be released...
int ppl_new_Congruence_from_Congruence(ppl_Congruence_t *pc, ppl_const_Congruence_t c)
Builds a congruence that is a copy of c; writes a handle for the newly created congruence at address ...
ppl_enum_Bounded_Integer_Type_Width
Widths of bounded integer types.
int ppl_PIP_Problem_set_big_parameter_dimension(ppl_PIP_Problem_t pip, ppl_dimension_type d)
Sets the big parameter dimension of PIP problem pip to d.
ppl_enum_Bounded_Integer_Type_Overflow
Overflow behavior of bounded integer types.
#define PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Type)
Definition: ppl_c_header.h:813
int ppl_Linear_Expression_is_zero(ppl_const_Linear_Expression_t le)
Returns true if and only if *this is .
int ppl_MIP_Problem_optimizing_point(ppl_const_MIP_Problem_t mip, ppl_const_Generator_t *pg)
Writes a const handle to an optimizing point for the MIP problem mip at address pg.
int ppl_MIP_Problem_set_objective_function(ppl_MIP_Problem_t mip, ppl_const_Linear_Expression_t le)
Sets the objective function of the MIP problem mip to a copy of le.
int ppl_add_Linear_Expression_to_Linear_Expression(ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
Adds the linear expression src to dst.
int ppl_MIP_Problem_add_space_dimensions_and_embed(ppl_MIP_Problem_t mip, ppl_dimension_type d)
Adds d new dimensions to the space enclosing the MIP problem mip and to mip itself.
int ppl_assign_Congruence_System_from_Congruence_System(ppl_Congruence_System_t dst, ppl_const_Congruence_System_t src)
Assigns a copy of the congruence system src to dst.
int ppl_MIP_Problem_number_of_integer_space_dimensions(ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
Writes to m the number of integer space dimensions of mip.
int ppl_Coefficient_to_mpz_t(ppl_const_Coefficient_t c, mpz_t z)
Sets the value of the GMP integer z to the value of c.
int ppl_PIP_Problem_get_big_parameter_dimension(ppl_const_PIP_Problem_t pip, ppl_dimension_type *pd)
Writes into *pd the big parameter dimension of PIP problem pip.
int ppl_Constraint_space_dimension(ppl_const_Constraint_t c, ppl_dimension_type *m)
Writes to m the space dimension of c.
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)
Assigns a copy of the const iterator src to dst.
unsigned int PPL_COMPLEXITY_CLASS_ANY
Code of the universal complexity class.
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)
Builds a const iterator that is a copy of cit; writes a handle for the newly created const iterator a...
int ppl_Constraint_inhomogeneous_term(ppl_const_Constraint_t c, ppl_Coefficient_t n)
Copies into n the inhomogeneous term of constraint c.
int ppl_Congruence_System_OK(ppl_const_Congruence_System_t cs)
Returns a positive integer if cs is well formed, i.e., if it satisfies all its implementation invaria...
int ppl_Artificial_Parameter_coefficient(ppl_const_Artificial_Parameter_t ap, ppl_dimension_type var, ppl_Coefficient_t n)
Copies into n the coefficient of variable var in the artificial parameter ap.
int ppl_Grid_Generator_System_begin(ppl_const_Grid_Generator_System_t gs, ppl_Grid_Generator_System_const_iterator_t git)
Assigns to git a const iterator "pointing" to the beginning of the grid generator system gs...
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[])
Builds a PIP problem having space dimension d from the sequence of constraints in the range ; the n d...
int ppl_version_beta(void)
Returns the beta number of the PPL version.
int ppl_Grid_Generator_System_const_iterator_increment(ppl_Grid_Generator_System_const_iterator_t git)
Increment git so that it "points" to the next grid generator.
int ppl_new_Congruence_System(ppl_Congruence_System_t *pcs)
Builds an empty system of congruences and writes a handle to it at address pcs.
int PPL_MIP_PROBLEM_STATUS_OPTIMIZED
Code of the "optimized MIP problem" status.
int ppl_version_minor(void)
Returns the minor number of the PPL version.
int ppl_delete_Artificial_Parameter_Sequence_const_iterator(ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)
Invalidates the handle apit: this makes sure the corresponding resources will eventually be released...
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.
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)
Assigns a copy of the const iterator src to dst.
int ppl_Constraint_System_insert_Constraint(ppl_Constraint_System_t cs, ppl_const_Constraint_t c)
Inserts a copy of the constraint c into cs; the space dimension is increased, if necessary.
int ppl_assign_Grid_Generator_System_from_Grid_Generator_System(ppl_Grid_Generator_System_t dst, ppl_const_Grid_Generator_System_t src)
Assigns a copy of the grid generator system src to dst.
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)
Creates a new grid generator of direction le and type t. If the grid generator to be created is a poi...
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)
Builds a const iterator that is a copy of cit; writes a handle for the newly created const iterator a...
int ppl_Generator_type(ppl_const_Generator_t g)
Returns the type of generator g.
#define PPL_PROTO(protos)
Definition: ppl_c_header.h:162
int ppl_new_Constraint_zero_dim_positivity(ppl_Constraint_t *pc)
Creates the true (zero-dimension space) constraint , also known as positivity constraint. A handle for the newly created constraint is written at address pc.
int ppl_Generator_coefficient(ppl_const_Generator_t g, ppl_dimension_type var, ppl_Coefficient_t n)
Copies into n the coefficient of variable var in generator g.
int ppl_Congruence_coefficient(ppl_const_Congruence_t c, ppl_dimension_type var, ppl_Coefficient_t n)
Copies into n the coefficient of variable var in congruence c.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY
Code for the PIP problem's "pivot row strategy" control parameter name.
#define PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS(Type)
Definition: ppl_c_header.h:791
int ppl_PIP_Tree_Node_get_constraints(ppl_const_PIP_Tree_Node_t pip_tree, ppl_const_Constraint_System_t *pcs)
Writes to pcs the local system of parameter constraints at the pip tree node pip_tree.
unsigned int PPL_POLY_CON_RELATION_IS_DISJOINT
Individual bit saying that the polyhedron and the set of points satisfying the constraint are disjoin...
int ppl_delete_PIP_Problem(ppl_const_PIP_Problem_t pip)
Invalidates the handle pip: this makes sure the corresponding resources will eventually be released...
int ppl_new_Congruence_System_from_Congruence_System(ppl_Congruence_System_t *pcs, ppl_const_Congruence_System_t cs)
Builds a congruence system that is a copy of cs; writes a handle for the newly created system at addr...
int ppl_new_Grid_Generator_System_from_Grid_Generator(ppl_Grid_Generator_System_t *pgs, ppl_const_Grid_Generator_t g)
Builds the singleton grid generator system containing only a copy of generator g; writes a handle for...
int ppl_Coefficient_is_bounded(void)
Returns a positive integer if coefficients are bounded; returns 0 otherwise.
int ppl_Grid_Generator_System_end(ppl_const_Grid_Generator_System_t gs, ppl_Grid_Generator_System_const_iterator_t git)
Assigns to git a const iterator "pointing" past the end of the grid generator system gs...
int ppl_new_Linear_Expression_with_dimension(ppl_Linear_Expression_t *ple, ppl_dimension_type d)
Creates a new linear expression corresponding to the constant 0 in a d-dimensional space; writes a ha...
int ppl_new_Congruence_zero_dim_false(ppl_Congruence_t *pc)
Creates the unsatisfiable (zero-dimension space) congruence and writes a handle for it at address pc...
int PPL_OPTIMIZATION_MODE_MAXIMIZATION
Code of the "maximization" optimization mode.
int ppl_delete_Congruence_System(ppl_const_Congruence_System_t cs)
Invalidates the handle cs: this makes sure the corresponding resources will eventually be released...
int ppl_delete_Coefficient(ppl_const_Coefficient_t c)
Invalidates the handle c: this makes sure the corresponding resources will eventually be released...
ppl_enum_Generator_Type
Describes the different kinds of generators.
int ppl_set_irrational_precision(unsigned p)
Sets the precision parameter used for irrational calculations.
int ppl_Constraint_OK(ppl_const_Constraint_t c)
Returns a positive integer if c is well formed, i.e., if it satisfies all its implementation invarian...
int ppl_Constraint_System_const_iterator_dereference(ppl_const_Constraint_System_const_iterator_t cit, ppl_const_Constraint_t *pc)
Dereference cit writing a const handle to the resulting constraint at address pc. ...
int ppl_Constraint_System_clear(ppl_Constraint_System_t cs)
Removes all the constraints from the constraint system cs and sets its space dimension to 0...
int ppl_new_Constraint_System_const_iterator(ppl_Constraint_System_const_iterator_t *pcit)
Builds a new `const iterator' and writes a handle to it at address pcit.
int ppl_Congruence_System_space_dimension(ppl_const_Congruence_System_t cs, ppl_dimension_type *m)
Writes to m the dimension of the vector space enclosing cs.
int ppl_MIP_Problem_clear(ppl_MIP_Problem_t mip)
Resets the MIP problem to be a trivial problem of space dimension 0.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_COLUMN
Code of PIP problem's "max column" pivot row strategy.
int ppl_PIP_Problem_constraint_at_index(ppl_const_PIP_Problem_t pip, ppl_dimension_type i, ppl_const_Constraint_t *pc)
Writes at address pc a const handle to the i-th constraint defining the feasible region of the PIP pr...
int ppl_new_Constraint_System(ppl_Constraint_System_t *pcs)
Builds an empty system of constraints and writes a handle to it at address pcs.
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)
Builds a MIP problem of space dimension d having feasible region cs, objective function le and optimi...
int ppl_new_Coefficient_from_mpz_t(ppl_Coefficient_t *pc, mpz_t z)
Creates a new coefficient with the value given by the GMP integer z and writes a handle for the newly...
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)
Builds a const iterator that is a copy of git; writes a handle for the newly created const iterator a...
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)
Returns a positive integer if the iterators corresponding to x and y are equal; returns 0 if they are...
int PPL_OPTIMIZATION_MODE_MINIMIZATION
Code of the "minimization" optimization mode.
int ppl_Linear_Expression_add_to_coefficient(ppl_Linear_Expression_t le, ppl_dimension_type var, ppl_const_Coefficient_t n)
Adds n to the coefficient of variable var in the linear expression le. The space dimension is set to ...
int ppl_new_Linear_Expression_from_Generator(ppl_Linear_Expression_t *ple, ppl_const_Generator_t g)
Builds a linear expression corresponding to generator g; writes a handle for the newly created linear...
int ppl_Grid_Generator_System_insert_Grid_Generator(ppl_Grid_Generator_System_t gs, ppl_const_Grid_Generator_t g)
Inserts a copy of the grid generator g into gs; the space dimension is increased, if necessary...
Signed binary where negative values are represented by the two's complement of the absolute value...
int ppl_Grid_Generator_space_dimension(ppl_const_Grid_Generator_t g, ppl_dimension_type *m)
Writes to m the space dimension of g.
int ppl_Generator_System_clear(ppl_Generator_System_t gs)
Removes all the generators from the generator system gs and sets its space dimension to 0...
int ppl_new_Generator_System_from_Generator_System(ppl_Generator_System_t *pgs, ppl_const_Generator_System_t gs)
Builds a generator system that is a copy of gs; writes a handle for the newly created system at addre...
int ppl_PIP_Problem_parameter_space_dimensions(ppl_const_PIP_Problem_t pip, ppl_dimension_type ds[])
Writes in the first positions of the array ds all the parameter space dimensions of problem pip...
int ppl_Constraint_System_empty(ppl_const_Constraint_System_t cs)
Returns a positive integer if cs contains no (non-trivial) constraint; returns 0 otherwise.
int ppl_Constraint_System_const_iterator_increment(ppl_Constraint_System_const_iterator_t cit)
Increment cit so that it "points" to the next constraint.
int ppl_Constraint_System_space_dimension(ppl_const_Constraint_System_t cs, ppl_dimension_type *m)
Writes to m the dimension of the vector space enclosing cs.
int ppl_Generator_divisor(ppl_const_Generator_t g, ppl_Coefficient_t n)
If g is a point or a closure point assigns its divisor to n.
int ppl_new_Congruence(ppl_Congruence_t *pc, ppl_const_Linear_Expression_t le, ppl_const_Coefficient_t m)
Creates the new congruence and writes a handle for it at address pc. The space dimension of the new ...
int ppl_MIP_Problem_total_memory_in_bytes(ppl_const_MIP_Problem_t mip, size_t *sz)
Writes into *sz the size in bytes of the memory occupied by mip.
int ppl_Grid_Generator_System_clear(ppl_Grid_Generator_System_t gs)
Removes all the generators from the grid generator system gs and sets its space dimension to 0...
int ppl_subtract_Linear_Expression_from_Linear_Expression(ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)
Subtracts the linear expression src from dst.
int ppl_MIP_Problem_feasible_point(ppl_const_MIP_Problem_t mip, ppl_const_Generator_t *pg)
Writes a const handle to a feasible point for the MIP problem mip at address pg.
unsigned int PPL_COMPLEXITY_CLASS_SIMPLEX
Code of the worst-case exponential but typically polynomial complexity class.
int ppl_assign_Constraint_System_from_Constraint_System(ppl_Constraint_System_t dst, ppl_const_Constraint_System_t src)
Assigns a copy of the constraint system src to dst.
int ppl_PIP_Problem_add_space_dimensions_and_embed(ppl_PIP_Problem_t pip, ppl_dimension_type pip_vars, ppl_dimension_type pip_params)
Adds pip_vars + pip_params new space dimensions and embeds the PIP problem pip in the new vector spac...
int ppl_new_Congruence_System_from_Congruence(ppl_Congruence_System_t *pcs, ppl_const_Congruence_t c)
Builds the singleton congruence system containing only a copy of congruence c; writes a handle for th...
int ppl_new_Grid_Generator_System_const_iterator(ppl_Grid_Generator_System_const_iterator_t *pgit)
Builds a new `const iterator' and writes a handle to it at address pgit.
int ppl_new_Grid_Generator_System_from_Grid_Generator_System(ppl_Grid_Generator_System_t *pgs, ppl_const_Grid_Generator_System_t gs)
Builds a grid generator system that is a copy of gs; writes a handle for the newly created system at ...
int ppl_Artificial_Parameter_Sequence_const_iterator_dereference(ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit, ppl_const_Artificial_Parameter_t *pap)
Dereference apit writing a const handle to the resulting artificial parameter at address pap...
int ppl_new_Coefficient(ppl_Coefficient_t *pc)
Creates a new coefficient with value 0 and writes a handle for the newly created coefficient at addre...
int ppl_delete_Generator_System_const_iterator(ppl_const_Generator_System_const_iterator_t git)
Invalidates the handle git: this makes sure the corresponding resources will eventually be released...
int ppl_new_Generator_System(ppl_Generator_System_t *pgs)
Builds an empty system of generators and writes a handle to it at address pgs.
int ppl_delete_Constraint_System_const_iterator(ppl_const_Constraint_System_const_iterator_t cit)
Invalidates the handle cit: this makes sure the corresponding resources will eventually be released...
int PPL_MIP_PROBLEM_CONTROL_PARAMETER_NAME_PRICING
Code for the MIP problem's "pricing" control parameter name.
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)
Writes to pip_tree a const pointer to either the true branch (if b is not zero) or the false branch (...
int ppl_Constraint_coefficient(ppl_const_Constraint_t c, ppl_dimension_type var, ppl_Coefficient_t n)
Copies into n the coefficient of variable var in constraint c.
int ppl_PIP_Problem_get_control_parameter(ppl_const_PIP_Problem_t pip, int name)
Returns the value of control parameter name in problem pip.
int ppl_MIP_Problem_number_of_constraints(ppl_const_MIP_Problem_t mip, ppl_dimension_type *m)
Writes to m the number of constraints defining the feasible region of mip.
int ppl_MIP_Problem_get_control_parameter(ppl_const_MIP_Problem_t mip, int name)
Returns the value of control parameter name in problem mip.
int ppl_Congruence_inhomogeneous_term(ppl_const_Congruence_t c, ppl_Coefficient_t n)
Copies into n the inhomogeneous term of congruence c.
int ppl_Constraint_System_OK(ppl_const_Constraint_System_t cs)
Returns a positive integer if cs is well formed, i.e., if it satisfies all its implementation invaria...