sig
exception PPL_arithmetic_overflow of string
exception PPL_timeout_exception
exception PPL_internal_error of string
exception PPL_unknown_standard_exception of string
exception PPL_unexpected_error of string
type degenerate_element = Universe | Empty
type linear_expression =
Variable of int
| Coefficient of Gmp.Z.t
| Unary_Plus of Ppl_ocaml_globals.linear_expression
| Unary_Minus of Ppl_ocaml_globals.linear_expression
| Plus of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
| Minus of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
| Times of Gmp.Z.t * Ppl_ocaml_globals.linear_expression
type linear_constraint =
Less_Than of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
| Less_Or_Equal of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
| Equal of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
| Greater_Than of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
| Greater_Or_Equal of Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression
type linear_generator =
Line of Ppl_ocaml_globals.linear_expression
| Ray of Ppl_ocaml_globals.linear_expression
| Point of Ppl_ocaml_globals.linear_expression * Gmp.Z.t
| Closure_Point of Ppl_ocaml_globals.linear_expression * Gmp.Z.t
type linear_grid_generator =
Grid_Line of Ppl_ocaml_globals.linear_expression
| Grid_Parameter of Ppl_ocaml_globals.linear_expression * Gmp.Z.t
| Grid_Point of Ppl_ocaml_globals.linear_expression * Gmp.Z.t
type poly_gen_relation = Subsumes
type poly_con_relation =
Is_Disjoint
| Strictly_Intersects
| Is_Included
| Saturates
type relation_with_congruence =
Is_Disjoint
| Strictly_Intersects
| Is_Included
type linear_congruence =
Ppl_ocaml_globals.linear_expression *
Ppl_ocaml_globals.linear_expression * Gmp.Z.t
type constraint_system = Ppl_ocaml_globals.linear_constraint list
type generator_system = Ppl_ocaml_globals.linear_generator list
type grid_generator_system = Ppl_ocaml_globals.linear_grid_generator list
type congruence_system = Ppl_ocaml_globals.linear_congruence list
type relation_symbol =
Less_Than_RS
| Less_Or_Equal_RS
| Equal_RS
| Greater_Than_RS
| Greater_Or_Equal_RS
type bounded_integer_type_overflow =
Overflow_Wraps
| Overflow_Undefined
| Overflow_Impossible
type bounded_integer_type_representation = Unsigned | Signed_2_Complement
type bounded_integer_type_width =
Bits_8
| Bits_16
| Bits_32
| Bits_64
| Bits_128
type complexity_class =
Polynomial_Complexity
| Simplex_Complexity
| Any_Complexity
type optimization_mode = Minimization | Maximization
type mip_problem_status =
Unfeasible_Mip_Problem
| Unbounded_Mip_Problem
| Optimized_Mip_Problem
type control_parameter_name = Pricing
type control_parameter_value =
Pricing_Steepest_Edge_Float
| Pricing_Steepest_Edge_Exact
| Pricing_Textbook
type pip_problem_status = Unfeasible_Pip_Problem | Optimized_Pip_Problem
type pip_problem_control_parameter_name =
Cutting_Strategy
| Pivot_Row_Strategy
type pip_problem_control_parameter_value =
Cutting_Strategy_First
| Cutting_Strategy_Deepest
| Cutting_Strategy_All
| Pivot_Row_Strategy_First
| Pivot_Row_Strategy_Max_Column
val ppl_version_major : unit -> int
val ppl_version_minor : unit -> int
val ppl_version_revision : unit -> int
val ppl_version_beta : unit -> int
val ppl_version : unit -> string
val ppl_banner : unit -> string
val ppl_io_wrap_string : string -> int -> int -> int -> string
val ppl_max_space_dimension : unit -> int
val ppl_Coefficient_bits : unit -> int
val ppl_Coefficient_is_bounded : unit -> bool
val ppl_Coefficient_max : unit -> Gmp.Z.t
val ppl_Coefficient_min : unit -> Gmp.Z.t
val ppl_Linear_Expression_is_zero :
Ppl_ocaml_globals.linear_expression -> bool
val ppl_Linear_Expression_all_homogeneous_terms_are_zero :
Ppl_ocaml_globals.linear_expression -> bool
val ppl_set_rounding_for_PPL : unit -> unit
val ppl_restore_pre_PPL_rounding : unit -> unit
val ppl_irrational_precision : unit -> int
val ppl_set_irrational_precision : int -> unit
val ppl_set_timeout : int -> unit
val ppl_reset_timeout : unit -> unit
val ppl_set_deterministic_timeout : int -> int -> unit
val ppl_reset_deterministic_timeout : unit -> unit
type mip_problem
val ppl_new_MIP_Problem_from_space_dimension :
int -> Ppl_ocaml_globals.mip_problem
val ppl_new_MIP_Problem :
int ->
Ppl_ocaml_globals.constraint_system ->
Ppl_ocaml_globals.linear_expression ->
Ppl_ocaml_globals.optimization_mode -> Ppl_ocaml_globals.mip_problem
val ppl_MIP_Problem_space_dimension : Ppl_ocaml_globals.mip_problem -> int
val ppl_MIP_Problem_integer_space_dimensions :
Ppl_ocaml_globals.mip_problem -> int list
val ppl_MIP_Problem_constraints :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.constraint_system
val ppl_MIP_Problem_add_space_dimensions_and_embed :
Ppl_ocaml_globals.mip_problem -> int -> unit
val ppl_MIP_Problem_add_to_integer_space_dimensions :
Ppl_ocaml_globals.mip_problem -> int list -> unit
val ppl_MIP_Problem_add_constraint :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.linear_constraint -> unit
val ppl_MIP_Problem_add_constraints :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.constraint_system -> unit
val ppl_MIP_Problem_set_objective_function :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.linear_expression -> unit
val ppl_MIP_Problem_is_satisfiable : Ppl_ocaml_globals.mip_problem -> bool
val ppl_MIP_Problem_solve :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.mip_problem_status
val ppl_MIP_Problem_optimization_mode :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.optimization_mode
val ppl_MIP_Problem_feasible_point :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.linear_generator
val ppl_MIP_Problem_optimizing_point :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.linear_generator
val ppl_MIP_Problem_objective_function :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.linear_expression
val ppl_MIP_Problem_optimal_value :
Ppl_ocaml_globals.mip_problem -> Gmp.Z.t * Gmp.Z.t
val ppl_MIP_Problem_evaluate_objective_function :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.linear_generator -> Gmp.Z.t * Gmp.Z.t
val ppl_MIP_Problem_OK : Ppl_ocaml_globals.mip_problem -> bool
val ppl_MIP_Problem_clear : Ppl_ocaml_globals.mip_problem -> unit
val ppl_MIP_Problem_set_optimization_mode :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.optimization_mode -> unit
val ppl_MIP_Problem_set_control_parameter :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.control_parameter_value -> unit
val ppl_MIP_Problem_get_control_parameter :
Ppl_ocaml_globals.mip_problem ->
Ppl_ocaml_globals.control_parameter_name ->
Ppl_ocaml_globals.control_parameter_value
val ppl_MIP_Problem_swap :
Ppl_ocaml_globals.mip_problem -> Ppl_ocaml_globals.mip_problem -> unit
val ppl_MIP_Problem_ascii_dump : Ppl_ocaml_globals.mip_problem -> string
type pip_problem
type pip_tree_node
type artificial_parameter = Ppl_ocaml_globals.linear_expression * Gmp.Z.t
val ppl_new_PIP_Problem_from_space_dimension :
int -> Ppl_ocaml_globals.pip_problem
val ppl_new_PIP_Problem :
int ->
Ppl_ocaml_globals.constraint_system ->
int list -> Ppl_ocaml_globals.pip_problem
val ppl_PIP_Problem_space_dimension : Ppl_ocaml_globals.pip_problem -> int
val ppl_PIP_Problem_parameter_space_dimensions :
Ppl_ocaml_globals.pip_problem -> int list
val ppl_PIP_Problem_constraints :
Ppl_ocaml_globals.pip_problem -> Ppl_ocaml_globals.constraint_system
val ppl_PIP_Problem_add_space_dimensions_and_embed :
Ppl_ocaml_globals.pip_problem -> int -> int -> unit
val ppl_PIP_Problem_add_to_parameter_space_dimensions :
Ppl_ocaml_globals.pip_problem -> int list -> unit
val ppl_PIP_Problem_add_constraint :
Ppl_ocaml_globals.pip_problem ->
Ppl_ocaml_globals.linear_constraint -> unit
val ppl_PIP_Problem_add_constraints :
Ppl_ocaml_globals.pip_problem ->
Ppl_ocaml_globals.constraint_system -> unit
val ppl_PIP_Problem_is_satisfiable : Ppl_ocaml_globals.pip_problem -> bool
val ppl_PIP_Problem_solve :
Ppl_ocaml_globals.pip_problem -> Ppl_ocaml_globals.pip_problem_status
val ppl_PIP_Problem_solution :
Ppl_ocaml_globals.pip_problem -> Ppl_ocaml_globals.pip_tree_node
val ppl_PIP_Problem_optimizing_solution :
Ppl_ocaml_globals.pip_problem -> Ppl_ocaml_globals.pip_tree_node
val ppl_PIP_Problem_get_big_parameter_dimension :
Ppl_ocaml_globals.pip_problem -> int
val ppl_PIP_Problem_set_big_parameter_dimension :
Ppl_ocaml_globals.pip_problem -> int -> unit
val ppl_PIP_Problem_has_big_parameter_dimension :
Ppl_ocaml_globals.pip_problem -> bool
val ppl_PIP_Problem_OK : Ppl_ocaml_globals.pip_problem -> bool
val ppl_PIP_Problem_clear : Ppl_ocaml_globals.pip_problem -> unit
val ppl_PIP_Problem_set_control_parameter :
Ppl_ocaml_globals.pip_problem ->
Ppl_ocaml_globals.pip_problem_control_parameter_value -> unit
val ppl_PIP_Problem_get_control_parameter :
Ppl_ocaml_globals.pip_problem ->
Ppl_ocaml_globals.pip_problem_control_parameter_name ->
Ppl_ocaml_globals.pip_problem_control_parameter_value
val ppl_PIP_Problem_swap :
Ppl_ocaml_globals.pip_problem -> Ppl_ocaml_globals.pip_problem -> unit
val ppl_PIP_Problem_ascii_dump : Ppl_ocaml_globals.pip_problem -> string
val ppl_PIP_Tree_Node_constraints :
Ppl_ocaml_globals.pip_tree_node -> Ppl_ocaml_globals.constraint_system
val ppl_PIP_Tree_Node_artificials :
Ppl_ocaml_globals.pip_tree_node ->
Ppl_ocaml_globals.artificial_parameter list
val ppl_PIP_Tree_Node_ascii_dump :
Ppl_ocaml_globals.pip_tree_node -> string
val ppl_PIP_Tree_Node_OK : Ppl_ocaml_globals.pip_tree_node -> bool
val ppl_PIP_Tree_Node_is_bottom : Ppl_ocaml_globals.pip_tree_node -> bool
val ppl_PIP_Tree_Node_is_solution : Ppl_ocaml_globals.pip_tree_node -> bool
val ppl_PIP_Tree_Node_parametric_values :
Ppl_ocaml_globals.pip_tree_node ->
int -> Ppl_ocaml_globals.linear_expression
val ppl_PIP_Tree_Node_is_decision : Ppl_ocaml_globals.pip_tree_node -> bool
val ppl_PIP_Tree_Node_true_child :
Ppl_ocaml_globals.pip_tree_node -> Ppl_ocaml_globals.pip_tree_node
val ppl_PIP_Tree_Node_false_child :
Ppl_ocaml_globals.pip_tree_node -> Ppl_ocaml_globals.pip_tree_node
end