|
PPL C Language Interface
0.12.1
|
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 ; the 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. | |
| 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. | |
| 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. | |
| 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.