24 #ifndef PPL_ppl_prolog_common_defs_hh
25 #define PPL_ppl_prolog_common_defs_hh 1
27 #define PPL_NO_AUTOMATIC_INITIALIZATION
29 #include "ppl_prolog_sysdep.hh"
30 #include "interfaced_boxes.hh"
37 #ifndef PROLOG_TRACK_ALLOCATION
38 #define PROLOG_TRACK_ALLOCATION 0
40 #ifndef NOISY_PROLOG_TRACK_ALLOCATION
41 #define NOISY_PROLOG_TRACK_ALLOCATION 0
46 namespace Interfaces {
50 #if PROLOG_TRACK_ALLOCATION || NOISY_PROLOG_TRACK_ALLOCATION
52 class Allocation_Tracker {
62 void insert(
const T* p);
69 void weak_insert(
const T* p);
73 void check(
const T* p)
const;
80 void remove(
const T* p);
87 ~Allocation_Tracker();
91 typedef std::set<const void*, std::less<const void*> > Set;
108 extern Allocation_Tracker allocation_tracker;
110 #define PPL_REGISTER(x) \
111 Parma_Polyhedra_Library::Interfaces::Prolog \
112 ::allocation_tracker.insert(x)
113 #define PPL_WEAK_REGISTER(x) \
114 Parma_Polyhedra_Library::Interfaces::Prolog \
115 ::allocation_tracker.weak_insert(x)
116 #define PPL_UNREGISTER(x) \
117 Parma_Polyhedra_Library::Interfaces::Prolog \
118 ::allocation_tracker.remove(x)
119 #define PPL_CHECK(x) \
120 Parma_Polyhedra_Library::Interfaces::Prolog \
121 ::allocation_tracker.check(x)
123 #else // !PROLOG_TRACK_ALLOCATION && !NOISY_PROLOG_TRACK_ALLOCATION
125 #define PPL_REGISTER(x)
126 #define PPL_WEAK_REGISTER(x)
127 #define PPL_UNREGISTER(x)
130 #endif // !PROLOG_TRACK_ALLOCATION && !NOISY_PROLOG_TRACK_ALLOCATION
146 virtual Prolog_term_ref
term()
const {
167 unsigned long max()
const {
328 extern Prolog_atom a_dollar_VAR;
331 extern Prolog_atom a_plus;
332 extern Prolog_atom a_minus;
333 extern Prolog_atom a_asterisk;
336 extern Prolog_atom a_slash;
339 extern Prolog_atom a_less_than;
340 extern Prolog_atom a_equal_less_than;
341 extern Prolog_atom a_equal;
342 extern Prolog_atom a_greater_than_equal;
343 extern Prolog_atom a_greater_than;
346 extern Prolog_atom a_is_congruent_to;
347 extern Prolog_atom a_modulo;
350 extern Prolog_atom a_line;
351 extern Prolog_atom a_ray;
352 extern Prolog_atom a_point;
353 extern Prolog_atom a_closure_point;
356 extern Prolog_atom a_grid_line;
357 extern Prolog_atom a_parameter;
358 extern Prolog_atom a_grid_point;
361 extern Prolog_atom a_is_disjoint;
362 extern Prolog_atom a_strictly_intersects;
363 extern Prolog_atom a_is_included;
364 extern Prolog_atom a_saturates;
367 extern Prolog_atom a_subsumes;
370 extern Prolog_atom a_c;
373 extern Prolog_atom a_empty;
376 extern Prolog_atom a_o;
379 extern Prolog_atom a_i;
382 extern Prolog_atom a_minf;
383 extern Prolog_atom a_pinf;
386 extern Prolog_atom a_polynomial;
387 extern Prolog_atom a_simplex;
388 extern Prolog_atom a_any;
391 extern Prolog_atom a_bits_8;
392 extern Prolog_atom a_bits_16;
393 extern Prolog_atom a_bits_32;
394 extern Prolog_atom a_bits_64;
395 extern Prolog_atom a_bits_128;
398 extern Prolog_atom a_unsigned;
399 extern Prolog_atom a_signed_2_complement;
402 extern Prolog_atom a_overflow_wraps;
403 extern Prolog_atom a_overflow_undefined;
404 extern Prolog_atom a_overflow_impossible;
407 extern Prolog_atom a_true;
408 extern Prolog_atom a_false;
482 handle_exception(
const std::overflow_error& e);
485 handle_exception(
const std::domain_error& e);
488 handle_exception(
const std::length_error& e);
491 handle_exception(
const std::invalid_argument& e);
494 handle_exception(
const std::logic_error& e);
497 handle_exception(
const std::bad_alloc&);
500 handle_exception(
const std::exception& e);
534 catch (const Prolog_unsigned_out_of_range& e) { \
535 handle_exception(e); \
537 catch (const not_unsigned_integer& e) { \
538 handle_exception(e); \
540 catch (const non_linear& e) { \
541 handle_exception(e); \
543 catch (const not_a_variable& e) { \
544 handle_exception(e); \
546 catch (const not_an_integer& e) { \
547 handle_exception(e); \
549 catch (const ppl_handle_mismatch& e) { \
550 handle_exception(e); \
552 catch (const not_an_optimization_mode& e) { \
553 handle_exception(e); \
555 catch (const not_a_complexity_class& e) { \
556 handle_exception(e); \
558 catch (const not_a_bounded_integer_type_width& e) { \
559 handle_exception(e); \
561 catch (const not_a_bounded_integer_type_representation& e) { \
562 handle_exception(e); \
564 catch (const not_a_bounded_integer_type_overflow& e) { \
565 handle_exception(e); \
567 catch (const not_a_control_parameter_name& e) { \
568 handle_exception(e); \
570 catch (const not_a_control_parameter_value& e) { \
571 handle_exception(e); \
573 catch (const not_a_pip_problem_control_parameter_name& e) { \
574 handle_exception(e); \
576 catch (const not_a_pip_problem_control_parameter_value& e) { \
577 handle_exception(e); \
579 catch (const not_universe_or_empty& e) { \
580 handle_exception(e); \
582 catch (const not_a_relation& e) { \
583 handle_exception(e); \
585 catch (const not_a_nil_terminated_list& e) { \
586 handle_exception(e); \
588 catch (const PPL_integer_out_of_range& e) { \
589 handle_exception(e); \
591 catch (const unknown_interface_error& e) { \
592 handle_exception(e); \
594 catch (const timeout_exception& e) { \
595 handle_exception(e); \
597 catch (const deterministic_timeout_exception& e) { \
598 handle_exception(e); \
600 catch(const std::overflow_error& e) { \
601 handle_exception(e); \
603 catch(const std::domain_error& e) { \
604 handle_exception(e); \
606 catch(const std::length_error& e) { \
607 handle_exception(e); \
609 catch(const std::invalid_argument& e) { \
610 handle_exception(e); \
612 catch (const std::logic_error& e) { \
613 handle_exception(e); \
615 catch (const std::bad_alloc& e) { \
616 handle_exception(e); \
618 catch (const std::exception& e) { \
619 handle_exception(e); \
622 handle_exception(); \
624 return PROLOG_FAILURE
630 template <
typename U>
632 term_to_unsigned(Prolog_term_ref t,
const char* where) {
635 if (!Prolog_is_integer(t))
640 if (Prolog_get_long(t, &l))
643 else if (static_cast<unsigned long>(l) > std::numeric_limits<U>::max())
645 std::numeric_limits<U>::max());
650 Prolog_get_Coefficient(t, v);
656 std::numeric_limits<U>::max());
662 term_to_boolean(Prolog_term_ref t,
const char* where);
665 term_to_universe_or_empty(Prolog_term_ref t,
const char* where);
671 term_to_complexity_class(Prolog_term_ref t,
const char* where);
674 term_to_bounded_integer_type_width(Prolog_term_ref t,
const char* where);
677 term_to_bounded_integer_type_representation(Prolog_term_ref t,
681 term_to_bounded_integer_type_overflow(Prolog_term_ref t,
const char* where);
683 template <
typename T>
685 term_to_handle(Prolog_term_ref t,
const char* where) {
686 if (Prolog_is_address(t)) {
688 if (Prolog_get_address(t, &p))
689 return static_cast<T*
>(p);
700 term_to_boundary(Prolog_term_ref t_b, Boundary_Kind kind,
701 bool& finite,
bool& closed,
705 term_to_relation_symbol(Prolog_term_ref t_r,
const char* where);
708 integer_term_to_Coefficient(Prolog_term_ref t);
714 unify_long(Prolog_term_ref t,
long l);
717 unify_ulong(Prolog_term_ref t,
unsigned long l);
720 build_linear_expression(Prolog_term_ref t,
const char* where);
723 build_constraint(Prolog_term_ref t,
const char* where);
726 build_congruence(Prolog_term_ref t,
const char* where);
729 build_generator(Prolog_term_ref t,
const char* where);
732 build_grid_generator(Prolog_term_ref t,
const char* where);
750 term_to_Variable(Prolog_term_ref t,
const char* where);
753 term_to_Coefficient(Prolog_term_ref t,
const char* where);
756 term_to_optimization_mode(Prolog_term_ref t,
const char* where);
759 term_to_control_parameter_name(Prolog_term_ref t,
const char* where);
762 term_to_control_parameter_value(Prolog_term_ref t,
const char* where);
765 term_to_pip_problem_control_parameter_name(Prolog_term_ref t,
const char* where);
768 term_to_pip_problem_control_parameter_value(Prolog_term_ref t,
const char* where);
771 check_nil_terminating(Prolog_term_ref t,
const char* where);
779 extern "C" Prolog_foreign_return_type
782 extern "C" Prolog_foreign_return_type
785 extern "C" Prolog_foreign_return_type
788 extern "C" Prolog_foreign_return_type
791 extern "C" Prolog_foreign_return_type
794 extern "C" Prolog_foreign_return_type
797 extern "C" Prolog_foreign_return_type
800 extern "C" Prolog_foreign_return_type
803 extern "C" Prolog_foreign_return_type
806 extern "C" Prolog_foreign_return_type
809 extern "C" Prolog_foreign_return_type
812 extern "C" Prolog_foreign_return_type
815 extern "C" Prolog_foreign_return_type
818 extern "C" Prolog_foreign_return_type
821 extern "C" Prolog_foreign_return_type
824 extern "C" Prolog_foreign_return_type
827 extern "C" Prolog_foreign_return_type
830 extern "C" Prolog_foreign_return_type
832 Prolog_term_ref t_scale);
834 extern "C" Prolog_foreign_return_type
837 extern "C" Prolog_foreign_return_type
840 extern "C" Prolog_foreign_return_type
843 extern "C" Prolog_foreign_return_type
846 extern "C" Prolog_foreign_return_type
849 extern "C" Prolog_foreign_return_type
851 (Prolog_term_ref t_nd, Prolog_term_ref t_mip);
853 extern "C" Prolog_foreign_return_type
855 Prolog_term_ref t_clist,
856 Prolog_term_ref t_le_expr,
857 Prolog_term_ref t_opt,
858 Prolog_term_ref t_mip);
860 extern "C" Prolog_foreign_return_type
862 Prolog_term_ref t_mip);
864 extern "C" Prolog_foreign_return_type
867 extern "C" Prolog_foreign_return_type
870 extern "C" Prolog_foreign_return_type
873 extern "C" Prolog_foreign_return_type
875 Prolog_term_ref t_vlist);
877 extern "C" Prolog_foreign_return_type
879 Prolog_term_ref t_clist);
881 extern "C" Prolog_foreign_return_type
883 Prolog_term_ref t_le_expr);
885 extern "C" Prolog_foreign_return_type
887 Prolog_term_ref t_opt);
889 extern "C" Prolog_foreign_return_type
891 Prolog_term_ref t_cp_name,
892 Prolog_term_ref t_cp_value);
894 extern "C" Prolog_foreign_return_type
897 extern "C" Prolog_foreign_return_type
899 (Prolog_term_ref t_mip, Prolog_term_ref t_nnd);
901 extern "C" Prolog_foreign_return_type
903 Prolog_term_ref t_vlist);
905 extern "C" Prolog_foreign_return_type
908 extern "C" Prolog_foreign_return_type
910 Prolog_term_ref t_clist);
912 extern "C" Prolog_foreign_return_type
914 Prolog_term_ref t_le_expr);
916 extern "C" Prolog_foreign_return_type
918 Prolog_term_ref t_opt);
920 extern "C" Prolog_foreign_return_type
922 Prolog_term_ref t_cp_value);
924 extern "C" Prolog_foreign_return_type
927 extern "C" Prolog_foreign_return_type
930 extern "C" Prolog_foreign_return_type
932 Prolog_term_ref t_g);
934 extern "C" Prolog_foreign_return_type
936 Prolog_term_ref t_g);
938 extern "C" Prolog_foreign_return_type
941 Prolog_term_ref t_d);
943 extern "C" Prolog_foreign_return_type
947 Prolog_term_ref t_d);
949 extern "C" Prolog_foreign_return_type
952 extern "C" Prolog_foreign_return_type
956 extern "C" Prolog_foreign_return_type
958 Prolog_term_ref t_pip);
960 extern "C" Prolog_foreign_return_type
962 Prolog_term_ref t_pip);
964 extern "C" Prolog_foreign_return_type
966 Prolog_term_ref t_cs,
967 Prolog_term_ref t_params,
968 Prolog_term_ref t_pip);
970 extern "C" Prolog_foreign_return_type
973 extern "C" Prolog_foreign_return_type
976 extern "C" Prolog_foreign_return_type
979 extern "C" Prolog_foreign_return_type
981 Prolog_term_ref t_vlist);
983 extern "C" Prolog_foreign_return_type
986 extern "C" Prolog_foreign_return_type
988 Prolog_term_ref t_cp_name,
989 Prolog_term_ref t_cp_value);
991 extern "C" Prolog_foreign_return_type
994 extern "C" Prolog_foreign_return_type
996 (Prolog_term_ref t_pip,
997 Prolog_term_ref t_num_vars,
998 Prolog_term_ref t_num_params);
1000 extern "C" Prolog_foreign_return_type
1002 Prolog_term_ref t_vlist);
1004 extern "C" Prolog_foreign_return_type
1007 extern "C" Prolog_foreign_return_type
1009 Prolog_term_ref t_clist);
1011 extern "C" Prolog_foreign_return_type
1013 Prolog_term_ref t_cp_value);
1015 extern "C" Prolog_foreign_return_type
1018 extern "C" Prolog_foreign_return_type
1021 extern "C" Prolog_foreign_return_type
1023 Prolog_term_ref t_pip_tree);
1025 extern "C" Prolog_foreign_return_type
1027 Prolog_term_ref t_pip_tree);
1029 extern "C" Prolog_foreign_return_type
1031 Prolog_term_ref t_d);
1033 extern "C" Prolog_foreign_return_type
1035 Prolog_term_ref t_d);
1037 extern "C" Prolog_foreign_return_type
1040 extern "C" Prolog_foreign_return_type
1043 extern "C" Prolog_foreign_return_type
1045 Prolog_term_ref t_clist);
1047 extern "C" Prolog_foreign_return_type
1050 extern "C" Prolog_foreign_return_type
1053 extern "C" Prolog_foreign_return_type
1056 extern "C" Prolog_foreign_return_type
1058 Prolog_term_ref t_artlist);
1060 extern "C" Prolog_foreign_return_type
1063 extern "C" Prolog_foreign_return_type
1065 Prolog_term_ref t_var,
1066 Prolog_term_ref t_pvalue_list);
1068 extern "C" Prolog_foreign_return_type
1070 Prolog_term_ref t_pip_tree);
1072 extern "C" Prolog_foreign_return_type
1074 Prolog_term_ref t_pip_tree);
1081 #endif // !defined(PPL_ppl_prolog_common_defs_hh)
not_universe_or_empty(Prolog_term_ref term, const char *where)
not_a_complexity_class(Prolog_term_ref term, const char *where)
int result_overflow(Result r)
Enable_If< Is_Native_Or_Checked< To >::value &&Is_Special< From >::value, Result >::type assign_r(To &to, const From &, Rounding_Dir dir)
Prolog_foreign_return_type ppl_PIP_Problem_ascii_dump(Prolog_term_ref t_pip)
not_a_bounded_integer_type_width(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_MIP_Problem_clear(Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_PIP_Problem_optimizing_solution(Prolog_term_ref t_pip, Prolog_term_ref t_pip_tree)
Prolog_foreign_return_type ppl_PIP_Problem_set_control_parameter(Prolog_term_ref t_pip, Prolog_term_ref t_cp_value)
Prolog_foreign_return_type ppl_reset_deterministic_timeout()
not_a_nil_terminated_list(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_MIP_Problem_optimization_mode(Prolog_term_ref t_mip, Prolog_term_ref t_opt)
unsigned long max() const
Prolog_foreign_return_type ppl_MIP_Problem_add_constraints(Prolog_term_ref t_mip, Prolog_term_ref t_clist)
Prolog_foreign_return_type ppl_PIP_Tree_Node_true_child(Prolog_term_ref t_pip_dec, Prolog_term_ref t_pip_tree)
Prolog_foreign_return_type ppl_new_MIP_Problem(Prolog_term_ref t_nd, Prolog_term_ref t_clist, Prolog_term_ref t_le_expr, Prolog_term_ref t_opt, Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_MIP_Problem_is_satisfiable(Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_MIP_Problem_solve(Prolog_term_ref t_mip, Prolog_term_ref t_status)
Prolog_foreign_return_type ppl_PIP_Problem_get_control_parameter(Prolog_term_ref t_pip, Prolog_term_ref t_cp_name, Prolog_term_ref t_cp_value)
Prolog_foreign_return_type ppl_PIP_Problem_swap(Prolog_term_ref t_lhs, Prolog_term_ref t_rhs)
Prolog_foreign_return_type ppl_MIP_Problem_constraints(Prolog_term_ref t_mip, Prolog_term_ref t_clist)
Prolog_foreign_return_type ppl_PIP_Problem_set_big_parameter_dimension(Prolog_term_ref t_pip, Prolog_term_ref t_d)
Prolog_foreign_return_type ppl_PIP_Tree_Node_parametric_values(Prolog_term_ref t_pip_sol, Prolog_term_ref t_var, Prolog_term_ref t_pvalue_list)
Prolog_foreign_return_type ppl_version_beta(Prolog_term_ref t_v)
#define PPL_DIRTY_TEMP_COEFFICIENT(id)
Prolog_foreign_return_type ppl_PIP_Problem_space_dimension(Prolog_term_ref t_pip, Prolog_term_ref t_sd)
Prolog_foreign_return_type ppl_PIP_Problem_has_big_parameter_dimension(Prolog_term_ref t_pip, Prolog_term_ref t_d)
not_a_pip_problem_control_parameter_name(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_Coefficient_bits(Prolog_term_ref t_bits)
Prolog_foreign_return_type ppl_PIP_Tree_Node_is_solution(Prolog_term_ref t_tree_node)
Prolog_foreign_return_type ppl_MIP_Problem_add_constraint(Prolog_term_ref t_mip, Prolog_term_ref t_c)
Prolog_foreign_return_type ppl_MIP_Problem_set_control_parameter(Prolog_term_ref t_mip, Prolog_term_ref t_cp_value)
Prolog_foreign_return_type ppl_PIP_Problem_add_to_parameter_space_dimensions(Prolog_term_ref t_pip, Prolog_term_ref t_vlist)
Parma_Polyhedra_Library::Coefficient n
Prolog_foreign_return_type ppl_PIP_Problem_solve(Prolog_term_ref t_pip, Prolog_term_ref t_status)
Prolog_foreign_return_type ppl_version_major(Prolog_term_ref t_v)
Prolog_foreign_return_type ppl_timeout_exception_atom(Prolog_term_ref t)
not_a_pip_problem_control_parameter_value(Prolog_term_ref term, const char *where)
not_a_bounded_integer_type_overflow(Prolog_term_ref term, const char *where)
unknown_interface_error(const char *s)
Prolog_foreign_return_type ppl_version_revision(Prolog_term_ref t_v)
Prolog_foreign_return_type ppl_set_deterministic_timeout(Prolog_term_ref t_unscaled_weight, Prolog_term_ref t_scale)
Prolog_foreign_return_type ppl_PIP_Tree_Node_constraints(Prolog_term_ref t_tree_node, Prolog_term_ref t_clist)
Prolog_foreign_return_type ppl_version(Prolog_term_ref t_v)
Prolog_foreign_return_type ppl_MIP_Problem_feasible_point(Prolog_term_ref t_mip, Prolog_term_ref t_g)
Prolog_foreign_return_type ppl_MIP_Problem_evaluate_objective_function(Prolog_term_ref t_mip, Prolog_term_ref t_g, Prolog_term_ref t_n, Prolog_term_ref t_d)
Prolog_foreign_return_type ppl_new_PIP_Problem(Prolog_term_ref t_dim, Prolog_term_ref t_cs, Prolog_term_ref t_params, Prolog_term_ref t_pip)
const Parma_Polyhedra_Library::Coefficient value() const
Prolog_foreign_return_type ppl_set_rounding_for_PPL()
Prolog_foreign_return_type ppl_PIP_Problem_add_constraint(Prolog_term_ref t_pip, Prolog_term_ref t_c)
Prolog_unsigned_out_of_range(Prolog_term_ref term, const char *where, unsigned long max)
Prolog_foreign_return_type ppl_MIP_Problem_set_objective_function(Prolog_term_ref t_mip, Prolog_term_ref t_le_expr)
Prolog_foreign_return_type ppl_Coefficient_max(Prolog_term_ref t_max)
Prolog_foreign_return_type ppl_delete_PIP_Problem(Prolog_term_ref t_pip)
Prolog_foreign_return_type ppl_MIP_Problem_OK(Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_PIP_Tree_Node_is_bottom(Prolog_term_ref t_tree_node)
Prolog_foreign_return_type ppl_new_MIP_Problem_from_MIP_Problem(Prolog_term_ref t_mip_source, Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_MIP_Problem_space_dimension(Prolog_term_ref t_mip, Prolog_term_ref t_sd)
Prolog_foreign_return_type ppl_set_timeout_exception_atom(Prolog_term_ref t_tea)
Prolog_foreign_return_type ppl_MIP_Problem_get_control_parameter(Prolog_term_ref t_mip, Prolog_term_ref t_cp_name, Prolog_term_ref t_cp_value)
not_an_integer(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_PIP_Problem_clear(Prolog_term_ref t_pip)
Prolog_foreign_return_type ppl_new_MIP_Problem_from_space_dimension(Prolog_term_ref t_nd, Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_MIP_Problem_add_space_dimensions_and_embed(Prolog_term_ref t_mip, Prolog_term_ref t_nnd)
Prolog_foreign_return_type ppl_banner(Prolog_term_ref t_b)
not_an_optimization_mode(Prolog_term_ref term, const char *where)
ppl_handle_mismatch(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_PIP_Problem_OK(Prolog_term_ref t_pip)
Prolog_foreign_return_type ppl_version_minor(Prolog_term_ref t_v)
Prolog_foreign_return_type ppl_PIP_Problem_parameter_space_dimensions(Prolog_term_ref t_pip, Prolog_term_ref t_vlist)
const mpz_class & raw_value(const GMP_Integer &x)
Prolog_foreign_return_type ppl_delete_MIP_Problem(Prolog_term_ref t_mip)
virtual Prolog_term_ref term() const
Prolog_foreign_return_type ppl_PIP_Tree_Node_is_decision(Prolog_term_ref t_tree_node)
Prolog_foreign_return_type ppl_PIP_Problem_add_constraints(Prolog_term_ref t_pip, Prolog_term_ref t_clist)
not_a_control_parameter_name(Prolog_term_ref term, const char *where)
PPL_COEFFICIENT_TYPE Coefficient
Prolog_foreign_return_type ppl_restore_pre_PPL_rounding()
Prolog_foreign_return_type ppl_PIP_Problem_solution(Prolog_term_ref t_pip, Prolog_term_ref t_pip_tree)
Prolog_foreign_return_type ppl_PIP_Problem_add_space_dimensions_and_embed(Prolog_term_ref t_pip, Prolog_term_ref t_num_vars, Prolog_term_ref t_num_params)
Prolog_foreign_return_type ppl_PIP_Tree_Node_artificials(Prolog_term_ref t_tree_node, Prolog_term_ref t_artlist)
PPL_integer_out_of_range(const Parma_Polyhedra_Library::Coefficient &value)
not_a_boolean(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_MIP_Problem_set_optimization_mode(Prolog_term_ref t_mip, Prolog_term_ref t_opt)
Prolog_foreign_return_type ppl_PIP_Tree_Node_false_child(Prolog_term_ref t_pip_dec, Prolog_term_ref t_pip_tree)
Prolog_foreign_return_type ppl_new_PIP_Problem_from_PIP_Problem(Prolog_term_ref t_pip_source, Prolog_term_ref t_pip)
Prolog_foreign_return_type ppl_finalize()
virtual const char * where() const
Prolog_foreign_return_type ppl_PIP_Problem_is_satisfiable(Prolog_term_ref t_pip)
internal_exception(Prolog_term_ref term, const char *where)
not_a_control_parameter_value(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_set_irrational_precision(Prolog_term_ref t_p)
Prolog_foreign_return_type ppl_Coefficient_min(Prolog_term_ref t_min)
const char * where() const
Prolog_foreign_return_type ppl_new_PIP_Problem_from_space_dimension(Prolog_term_ref t_nd, Prolog_term_ref t_pip)
Prolog_foreign_return_type ppl_MIP_Problem_swap(Prolog_term_ref t_lhs, Prolog_term_ref t_rhs)
Prolog_foreign_return_type ppl_Coefficient_is_bounded()
virtual ~internal_exception()
Prolog_foreign_return_type ppl_set_timeout(Prolog_term_ref t_csecs)
not_a_relation(Prolog_term_ref term, const char *where)
not_a_variable(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_irrational_precision(Prolog_term_ref t_p)
Prolog_foreign_return_type ppl_MIP_Problem_objective_function(Prolog_term_ref t_mip, Prolog_term_ref t_le_expr)
not_a_bounded_integer_type_representation(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_MIP_Problem_ascii_dump(Prolog_term_ref t_mip)
Prolog_foreign_return_type ppl_reset_timeout()
Prolog_foreign_return_type ppl_PIP_Problem_constraints(Prolog_term_ref t_pip, Prolog_term_ref t_cs)
Prolog_foreign_return_type ppl_MIP_Problem_integer_space_dimensions(Prolog_term_ref t_mip, Prolog_term_ref t_vlist)
Prolog_foreign_return_type ppl_MIP_Problem_optimal_value(Prolog_term_ref t_mip, Prolog_term_ref t_n, Prolog_term_ref t_d)
Prolog_foreign_return_type ppl_MIP_Problem_optimizing_point(Prolog_term_ref t_mip, Prolog_term_ref t_g)
Prolog_foreign_return_type ppl_PIP_Tree_Node_OK(Prolog_term_ref t_pip_tree)
non_linear(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_MIP_Problem_add_to_integer_space_dimensions(Prolog_term_ref t_mip, Prolog_term_ref t_vlist)
not_unsigned_integer(Prolog_term_ref term, const char *where)
Prolog_foreign_return_type ppl_initialize()
Prolog_foreign_return_type ppl_max_space_dimension(Prolog_term_ref t_msd)