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 ; 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

  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.

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:

- ppl_c_header.h