PPL C Language Interface  1.2
ppl_PIP_Problem_tag Interface Reference

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 $[\mathrm{first}, \mathrm{last})$; 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. 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.
 

Detailed Description

Types and functions for PIP problems.

The types and functions for PIP problems provide an interface towards PIP_Problem.

Friends And Related Function Documentation

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.

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.

Parameters
pipThe PIP problem to be embedded in the new vector space.
pip_varsThe 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_paramsThe 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.

int ppl_PIP_Problem_solve ( ppl_const_PIP_Problem_t  pip)
related

Solves the PIP problem pip, returning an exit status.

Returns
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.

The documentation for this interface was generated from the following file: