sig
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 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
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_set_rounding_for_PPL : unit -> unit
val ppl_restore_pre_PPL_rounding : 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_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
end