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. More... | |
int | PPL_PIP_PROBLEM_STATUS_OPTIMIZED |
Code of the "optimized PIP problem" status. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY |
Code for the PIP problem's "cutting strategy" control parameter name. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY |
Code for the PIP problem's "pivot row strategy" control parameter name. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST |
Code of PIP problem's "first" cutting strategy. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST |
Code of PIP problem's "deepest" cutting strategy. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL |
Code of PIP problem's "all" cutting strategy. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_FIRST |
Code of PIP problem's "first" pivot row strategy. More... | |
int | PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_COLUMN |
Code of PIP problem's "max column" pivot row strategy. More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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. More... | |
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. More... | |
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 . More... | |
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. More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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. More... | |
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. More... | |
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. More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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. More... | |
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. More... | |
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. More... | |
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 . More... | |
int | ppl_PIP_Problem_set_control_parameter (ppl_PIP_Problem_t pip, int value) |
Sets control parameter value in problem pip . More... | |
Types and functions for PIP problems.
The types and functions for PIP problems provide an interface towards PIP_Problem.
|
related |
Assigns a copy of the PIP problem src
to dst
.
Definition at line 2145 of file ppl_c_implementation_common.cc.
|
related |
Invalidates the handle pip:
this makes sure the corresponding resources will eventually be released.
Definition at line 2155 of file ppl_c_implementation_common.cc.
|
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 2129 of file ppl_c_implementation_common.cc.
|
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 2119 of file ppl_c_implementation_common.cc.
|
related |
Builds a trivial PIP problem of dimension d
and writes a handle to it at address ppip
.
Definition at line 2111 of file ppl_c_implementation_common.cc.
|
related |
Modifies the feasible region of the PIP problem pip
by adding a copy of the constraint c
.
Definition at line 2243 of file ppl_c_implementation_common.cc.
|
related |
Modifies the feasible region of the PIP problem pip
by adding a copy of the constraints in cs
.
Definition at line 2253 of file ppl_c_implementation_common.cc.
|
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 2221 of file ppl_c_implementation_common.cc.
|
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 2231 of file ppl_c_implementation_common.cc.
|
related |
Resets the PIP problem to be a trivial problem of space dimension 0.
Definition at line 2215 of file ppl_c_implementation_common.cc.
|
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 2200 of file ppl_c_implementation_common.cc.
|
related |
Code of PIP problem's "all" cutting strategy.
Definition at line 2489 of file ppl_c_header.h.
|
related |
Code of PIP problem's "deepest" cutting strategy.
Definition at line 2484 of file ppl_c_header.h.
|
related |
Code of PIP problem's "first" cutting strategy.
Definition at line 2479 of file ppl_c_header.h.
|
related |
Code for the PIP problem's "cutting strategy" control parameter name.
Definition at line 2469 of file ppl_c_header.h.
|
related |
Code for the PIP problem's "pivot row strategy" control parameter name.
Definition at line 2474 of file ppl_c_header.h.
|
related |
Code of PIP problem's "first" pivot row strategy.
Definition at line 2494 of file ppl_c_header.h.
|
related |
Code of PIP problem's "max column" pivot row strategy.
Definition at line 2499 of file ppl_c_header.h.
|
related |
Writes into *sz
the size in bytes of the memory managed by pip
.
Definition at line 2338 of file ppl_c_implementation_common.cc.
|
related |
Writes into *pd
the big parameter dimension of PIP problem pip
.
Definition at line 2314 of file ppl_c_implementation_common.cc.
Returns the value of control parameter name
in problem pip
.
Definition at line 2295 of file ppl_c_implementation_common.cc.
|
related |
Returns a positive integer if pip
is satisfiable and an optimal solution can be found; returns 0 otherwise.
Definition at line 2262 of file ppl_c_implementation_common.cc.
|
related |
Writes to m
the number of constraints defining the feasible region of pip
.
Definition at line 2191 of file ppl_c_implementation_common.cc.
|
related |
Writes to m
the number of parameter space dimensions of pip
.
Definition at line 2171 of file ppl_c_implementation_common.cc.
|
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 2289 of file ppl_c_implementation_common.cc.
|
related |
Writes to pip_tree
an optimizing solution for pip
, if it exists.
Definition at line 2281 of file ppl_c_implementation_common.cc.
|
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 2179 of file ppl_c_implementation_common.cc.
|
related |
Sets the big parameter dimension of PIP problem pip
to d
.
Definition at line 2322 of file ppl_c_implementation_common.cc.
Sets control parameter value
in problem pip
.
Definition at line 2304 of file ppl_c_implementation_common.cc.
|
related |
Writes to pip_tree
a solution for pip
, if it exists.
Definition at line 2273 of file ppl_c_implementation_common.cc.
|
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 2267 of file ppl_c_implementation_common.cc.
|
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 2162 of file ppl_c_implementation_common.cc.
|
related |
Code of the "optimized PIP problem" status.
Definition at line 2464 of file ppl_c_header.h.
|
related |
Code of the "unfeasible PIP problem" status.
Definition at line 2459 of file ppl_c_header.h.
|
related |
Writes into *sz
the size in bytes of the memory occupied by pip
.
Definition at line 2330 of file ppl_c_implementation_common.cc.