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. | |
Types and functions for PIP problems.
The types and functions for PIP problems provide an interface towards PIP_Problem.
| int ppl_assign_PIP_Problem_from_PIP_Problem | ( | ppl_PIP_Problem_t | dst, | |
| ppl_const_PIP_Problem_t | src | |||
| ) | [related] |
Assigns a copy of the PIP problem src to dst.
Definition at line 2180 of file ppl_c_implementation_common.cc.
| int ppl_delete_PIP_Problem | ( | ppl_const_PIP_Problem_t | pip | ) | [related] |
Invalidates the handle pip: this makes sure the corresponding resources will eventually be released.
Definition at line 2190 of file ppl_c_implementation_common.cc.
| 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[] | |||
| ) | [related] |
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.
Definition at line 2164 of file ppl_c_implementation_common.cc.
| int ppl_new_PIP_Problem_from_PIP_Problem | ( | ppl_PIP_Problem_t * | ppip, | |
| ppl_const_PIP_Problem_t | pip | |||
| ) | [related] |
Builds a PIP problem that is a copy of pip; writes a handle for the newly created problem at address ppip.
Definition at line 2154 of file ppl_c_implementation_common.cc.
| int ppl_new_PIP_Problem_from_space_dimension | ( | ppl_PIP_Problem_t * | ppip, | |
| ppl_dimension_type | d | |||
| ) | [related] |
Builds a trivial PIP problem of dimension d and writes a handle to it at address ppip.
Definition at line 2146 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_add_constraint | ( | ppl_PIP_Problem_t | pip, | |
| ppl_const_Constraint_t | c | |||
| ) | [related] |
Modifies the feasible region of the PIP problem pip by adding a copy of the constraint c.
Definition at line 2278 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_add_constraints | ( | ppl_PIP_Problem_t | pip, | |
| ppl_const_Constraint_System_t | cs | |||
| ) | [related] |
Modifies the feasible region of the PIP problem pip by adding a copy of the constraints in cs.
Definition at line 2288 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_add_space_dimensions_and_embed | ( | ppl_PIP_Problem_t | pip, | |
| ppl_dimension_type | pip_vars, | |||
| ppl_dimension_type | pip_params | |||
| ) | [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.
Definition at line 2256 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_add_to_parameter_space_dimensions | ( | ppl_PIP_Problem_t | pip, | |
| ppl_dimension_type | ds[], | |||
| size_t | n | |||
| ) | [related] |
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.
Definition at line 2266 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_clear | ( | ppl_PIP_Problem_t | pip | ) | [related] |
Resets the PIP problem to be a trivial problem of space dimension 0.
Definition at line 2250 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_constraint_at_index | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_dimension_type | i, | |||
| ppl_const_Constraint_t * | pc | |||
| ) | [related] |
Writes at address pc a const handle to the i-th constraint defining the feasible region of the PIP problem pip.
Definition at line 2235 of file ppl_c_implementation_common.cc.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL [related] |
Code of PIP problem's "all" cutting strategy.
Definition at line 2480 of file ppl_c_header.h.
Code of PIP problem's "deepest" cutting strategy.
Definition at line 2475 of file ppl_c_header.h.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST [related] |
Code of PIP problem's "first" cutting strategy.
Definition at line 2470 of file ppl_c_header.h.
int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY [related] |
Code for the PIP problem's "cutting strategy" control parameter name.
Definition at line 2460 of file ppl_c_header.h.
Code for the PIP problem's "pivot row strategy" control parameter name.
Definition at line 2465 of file ppl_c_header.h.
Code of PIP problem's "first" pivot row strategy.
Definition at line 2485 of file ppl_c_header.h.
Code of PIP problem's "max column" pivot row strategy.
Definition at line 2490 of file ppl_c_header.h.
| int ppl_PIP_Problem_external_memory_in_bytes | ( | ppl_const_PIP_Problem_t | pip, | |
| size_t * | sz | |||
| ) | [related] |
Writes into *sz the size in bytes of the memory managed by pip.
Definition at line 2373 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_get_big_parameter_dimension | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_dimension_type * | pd | |||
| ) | [related] |
Writes into *pd the big parameter dimension of PIP problem pip.
Definition at line 2349 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_get_control_parameter | ( | ppl_const_PIP_Problem_t | pip, | |
| int | name | |||
| ) | [related] |
Returns the value of control parameter name in problem pip.
Definition at line 2330 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_is_satisfiable | ( | ppl_const_PIP_Problem_t | pip | ) | [related] |
Returns a positive integer if pip is satisfiable and an optimal solution can be found; returns 0 otherwise.
Definition at line 2297 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_number_of_constraints | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_dimension_type * | m | |||
| ) | [related] |
Writes to m the number of constraints defining the feasible region of pip.
Definition at line 2226 of file ppl_c_implementation_common.cc.
Referenced by ppl_PIP_Problem_constraint_at_index().
| int ppl_PIP_Problem_number_of_parameter_space_dimensions | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_dimension_type * | m | |||
| ) | [related] |
Writes to m the number of parameter space dimensions of pip.
Definition at line 2206 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_OK | ( | ppl_const_PIP_Problem_t | pip | ) | [related] |
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.
Definition at line 2324 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_optimizing_solution | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_const_PIP_Tree_Node_t * | pip_tree | |||
| ) | [related] |
Writes to pip_tree an optimizing solution for pip, if it exists.
Definition at line 2316 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_parameter_space_dimensions | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_dimension_type | ds[] | |||
| ) | [related] |
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.
Definition at line 2214 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_set_big_parameter_dimension | ( | ppl_PIP_Problem_t | pip, | |
| ppl_dimension_type | d | |||
| ) | [related] |
Sets the big parameter dimension of PIP problem pip to d.
Definition at line 2357 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_set_control_parameter | ( | ppl_PIP_Problem_t | pip, | |
| int | value | |||
| ) | [related] |
Sets control parameter value in problem pip.
Definition at line 2339 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_solution | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_const_PIP_Tree_Node_t * | pip_tree | |||
| ) | [related] |
Writes to pip_tree a solution for pip, if it exists.
Definition at line 2308 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_solve | ( | ppl_const_PIP_Problem_t | pip | ) | [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. Definition at line 2302 of file ppl_c_implementation_common.cc.
| int ppl_PIP_Problem_space_dimension | ( | ppl_const_PIP_Problem_t | pip, | |
| ppl_dimension_type * | m | |||
| ) | [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.
Definition at line 2197 of file ppl_c_implementation_common.cc.
int PPL_PIP_PROBLEM_STATUS_OPTIMIZED [related] |
Code of the "optimized PIP problem" status.
Definition at line 2455 of file ppl_c_header.h.
int PPL_PIP_PROBLEM_STATUS_UNFEASIBLE [related] |
Code of the "unfeasible PIP problem" status.
Definition at line 2450 of file ppl_c_header.h.
| int ppl_PIP_Problem_total_memory_in_bytes | ( | ppl_const_PIP_Problem_t | pip, | |
| size_t * | sz | |||
| ) | [related] |
Writes into *sz the size in bytes of the memory occupied by pip.
Definition at line 2365 of file ppl_c_implementation_common.cc.
1.6.3