1m4_divert(-1)
2
3dnl This m4 file defines the list of predicates
4dnl for the Prolog interfaces; this includes:
5dnl - the list in the imported file and any Prolog specific predicates;
6dnl   ppl_interface_generator_common_procedure_generators.m4;
7dnl - the list of library predicates needed for the system dependent files.
8
9dnl Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
10dnl Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
11dnl
12dnl This file is part of the Parma Polyhedra Library (PPL).
13dnl
14dnl The PPL is free software; you can redistribute it and/or modify it
15dnl under the terms of the GNU General Public License as published by the
16dnl Free Software Foundation; either version 3 of the License, or (at your
17dnl option) any later version.
18dnl
19dnl The PPL is distributed in the hope that it will be useful, but WITHOUT
20dnl ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21dnl FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22dnl for more details.
23dnl
24dnl You should have received a copy of the GNU General Public License
25dnl along with this program; if not, write to the Free Software Foundation,
26dnl Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
27dnl
28dnl For the most up-to-date information see the Parma Polyhedra Library
29dnl site: http://bugseng.com/products/ppl/ .
30
31dnl Include the language independent macros.
32m4_include(ppl_interface_generator_common.m4)
33m4_include(ppl_interface_generator_common_dat.m4)
34m4_include(ppl_interface_generator_common_procedure_generators.m4)
35
36dnl Library predicate list.
37m4_define(`m4_library_predicate_list', `dnl
38ppl_version_major/1,
39ppl_version_minor/1,
40ppl_version_revision/1,
41ppl_version_beta/1,
42ppl_version/1,
43ppl_banner/1,
44ppl_max_space_dimension/1,
45ppl_Coefficient_bits/1,
46ppl_Coefficient_is_bounded/0,
47ppl_Coefficient_max/1,
48ppl_Coefficient_min/1,
49ppl_initialize/0 *nofail,
50ppl_finalize/0 *nofail,
51ppl_set_rounding_for_PPL/0 *nofail,
52ppl_restore_pre_PPL_rounding/0 *nofail,
53ppl_irrational_precision/1,
54ppl_set_irrational_precision/1,
55ppl_set_timeout_exception_atom/1 *nofail,
56ppl_timeout_exception_atom/1,
57ppl_set_timeout/1 *nofail,
58ppl_reset_timeout/0 *nofail,
59ppl_set_deterministic_timeout/2 *nofail,
60ppl_reset_deterministic_timeout/0 *nofail,
61ppl_new_MIP_Problem_from_space_dimension/2,
62ppl_new_MIP_Problem/5,
63ppl_new_MIP_Problem_from_MIP_Problem/2,
64ppl_MIP_Problem_swap/2 *nofail,
65ppl_delete_MIP_Problem/1 *nofail,
66ppl_MIP_Problem_space_dimension/2,
67ppl_MIP_Problem_integer_space_dimensions/2,
68ppl_MIP_Problem_constraints/2,
69ppl_MIP_Problem_objective_function/2,
70ppl_MIP_Problem_optimization_mode/2,
71ppl_MIP_Problem_clear/1,
72ppl_MIP_Problem_add_space_dimensions_and_embed/2,
73ppl_MIP_Problem_add_to_integer_space_dimensions/2,
74ppl_MIP_Problem_add_constraint/2,
75ppl_MIP_Problem_add_constraints/2,
76ppl_MIP_Problem_set_objective_function/2,
77ppl_MIP_Problem_set_optimization_mode/2,
78ppl_MIP_Problem_set_control_parameter/2 *nofail,
79ppl_MIP_Problem_get_control_parameter/3,
80ppl_MIP_Problem_is_satisfiable/1,
81ppl_MIP_Problem_solve/2,
82ppl_MIP_Problem_feasible_point/2,
83ppl_MIP_Problem_optimizing_point/2,
84ppl_MIP_Problem_optimal_value/3,
85ppl_MIP_Problem_evaluate_objective_function/4,
86ppl_MIP_Problem_OK/1
87ppl_MIP_Problem_ascii_dump/1,
88ppl_new_PIP_Problem_from_space_dimension/2,
89ppl_new_PIP_Problem/4,
90ppl_new_PIP_Problem_from_PIP_Problem/2,
91ppl_PIP_Problem_swap/2 *nofail,
92ppl_delete_PIP_Problem/1 *nofail,
93ppl_PIP_Problem_space_dimension/2,
94ppl_PIP_Problem_parameter_space_dimensions/2,
95ppl_PIP_Problem_constraints/2,
96ppl_PIP_Problem_clear/1,
97ppl_PIP_Problem_add_space_dimensions_and_embed/3,
98ppl_PIP_Problem_add_to_parameter_space_dimensions/2,
99ppl_PIP_Problem_add_constraint/2,
100ppl_PIP_Problem_add_constraints/2,
101ppl_PIP_Problem_set_control_parameter/2 *nofail,
102ppl_PIP_Problem_get_control_parameter/3,
103ppl_PIP_Problem_has_big_parameter_dimension/2,
104ppl_PIP_Problem_set_big_parameter_dimension/2,
105ppl_PIP_Problem_is_satisfiable/1,
106ppl_PIP_Problem_solve/2,
107ppl_PIP_Problem_solution/2,
108ppl_PIP_Problem_optimizing_solution/2,
109ppl_PIP_Problem_OK/1,
110ppl_PIP_Problem_ascii_dump/1,
111ppl_PIP_Tree_Node_constraints/2,
112ppl_PIP_Tree_Node_is_solution/1,
113ppl_PIP_Tree_Node_is_decision/1,
114ppl_PIP_Tree_Node_is_bottom/1,
115ppl_PIP_Tree_Node_artificials/2,
116ppl_PIP_Tree_Node_OK/1,
117ppl_PIP_Tree_Node_parametric_values/3,
118ppl_PIP_Tree_Node_true_child/2,
119ppl_PIP_Tree_Node_false_child/2`'dnl
120')
121
122m4_define(`m4_procedure_list',
123  `m4_echo_unquoted(`m4_common_procedure_list',
124ppl_termination_test_@TERMINATION_ID@_@TOPOLOGY@@CLASS@/1 +simple,
125ppl_one_affine_ranking_function_@TERMINATION_ID@_@TOPOLOGY@@CLASS@/2 +simple,
126ppl_all_affine_ranking_functions_@TERMINATION_ID@_@TOPOLOGY@@CLASS@/2 +simple,
127ppl_all_affine_quasi_ranking_functions_MS_@TOPOLOGY@@CLASS@/3 +simple,
128ppl_termination_test_@TERMINATION_ID@_@TOPOLOGY@@CLASS@_2/2 +simple,
129ppl_one_affine_ranking_function_@TERMINATION_ID@_@TOPOLOGY@@CLASS@_2/3 +simple,
130ppl_all_affine_ranking_functions_@TERMINATION_ID@_@TOPOLOGY@@CLASS@_2/3 +simple,
131ppl_all_affine_quasi_ranking_functions_MS_@TOPOLOGY@@CLASS@_2/4 +simple,
132)
133')
134