PPL C Language Interface
1.2
|
Types and functions for PIP problems. More...
#include <ppl_c_header.h>
Related Functions | |
(Note that these are not member functions.) | |
Symbolic Constants | |
int | PPL_PIP_PROBLEM_STATUS_UNFEASIBLE |
Code of the "unfeasible PIP problem" status. | |
int | PPL_PIP_PROBLEM_STATUS_OPTIMIZED |
Code of the "optimized PIP problem" status. | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY |
Code for the PIP problem's "cutting strategy" control parameter name. | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY |
Code for the PIP problem's "pivot row strategy" control parameter name. | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST |
Code of PIP problem's "first" cutting strategy. | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST |
Code of PIP problem's "deepest" cutting strategy. | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL |
Code of PIP problem's "all" cutting strategy. | |
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_PIVOT_ROW_STRATEGY_MAX_COLUMN |
Code of PIP problem's "max column" pivot row strategy. | |
Constructors, Assignment and Destructor | |
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_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 ppip . | |
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_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 ![]() n dimensions whose indices occur in ds are interpreted as parameters. | |
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. | |
Functions that Do Not Modify the PIP_Problem | |
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 . More... | |
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 . | |
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 . If the array is not big enough to hold all of the parameter space dimensions, the behavior is undefined. | |
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_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_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 problem pip . | |
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_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_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 invariants; returns 0 and perhaps makes some noise if pip is broken. Useful for debugging purposes. | |
Functions that May Modify the PIP_Problem | |
int | ppl_PIP_Problem_clear (ppl_PIP_Problem_t pip) |
Resets the PIP problem to be a trivial problem of space dimension 0. | |
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 space. More... | |
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 dimensions of problem pip . The presence of duplicates in ds is a waste but an innocuous one. | |
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 . | |
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_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 . | |
Computing and Printing the Solution of the PIP_Problem | |
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 otherwise. | |
int | ppl_PIP_Problem_solve (ppl_const_PIP_Problem_t pip) |
Solves the PIP problem pip , returning an exit status. More... | |
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_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. | |
Querying/Setting Control Parameters | |
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_PIP_Problem_set_control_parameter (ppl_PIP_Problem_t pip, int value) |
Sets control parameter value in problem pip . | |
Input/Output Functions | |
int | ppl_io_print_PIP_Problem (ppl_const_PIP_Problem_t x) |
Prints x to stdout . | |
int | ppl_io_fprint_PIP_Problem (FILE *stream, ppl_const_PIP_Problem_t x) |
Prints x to the given output stream . | |
int | ppl_io_asprint_PIP_Problem (char **strp, ppl_const_PIP_Problem_t x) |
Prints x to a malloc-allocated string, a pointer to which is returned via strp . | |
int | ppl_PIP_Problem_ascii_dump (ppl_const_PIP_Problem_t x, FILE *stream) |
Dumps an ascii representation of x on stream . | |
int | ppl_PIP_Problem_ascii_load (ppl_PIP_Problem_t x, FILE *stream) |
Loads an ascii representation of x from stream . | |
Types and functions for PIP problems.
The types and functions for PIP problems provide an interface towards PIP_Problem.
|
related |
Writes to m
the dimension of the vector space enclosing pip
.
The vector space dimensions includes both the problem variables and the problem parameters, but they do not include the artificial parameters.
|
related |
Adds pip_vars + pip_params
new space dimensions and embeds the PIP problem pip
in the new vector space.
pip | The PIP problem to be embedded in the new vector space. |
pip_vars | The number of space dimensions to add that are interpreted as PIP problem variables (i.e., non parameters). These are added before adding the pip_params parameters. |
pip_params | The number of space dimensions to add that are interpreted as PIP problem parameters. These are added after having added the pip_vars problem variables. |
The new space dimensions will be those having the highest indexes in the new PIP problem; they are initially unconstrained.
|
related |
Solves the PIP problem pip
, returning an exit status.
PPL_PIP_PROBLEM_STATUS_UNFEASIBLE
if the PIP problem is not satisfiable; PPL_PIP_PROBLEM_STATUS_OPTIMIZED
if the PIP problem admits an optimal solution.