| 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. | |
| 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 dand writes a handle to it at addressppip. | |
| 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 addressppip. | |
| 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 srctodst. | |
| 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 dfrom the sequence of constraints in the range ; the ndimensions whose indices occur indsare 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 mthe dimension of the vector space enclosingpip.  More... | |
| int | ppl_PIP_Problem_number_of_parameter_space_dimensions (ppl_const_PIP_Problem_t pip, ppl_dimension_type *m) | 
| Writes to mthe number of parameter space dimensions ofpip. | |
| 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 dsall the parameter space dimensions of problempip. 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 *pdthe big parameter dimension of PIP problempip. | |
| int | ppl_PIP_Problem_number_of_constraints (ppl_const_PIP_Problem_t pip, ppl_dimension_type *m) | 
| Writes to mthe number of constraints defining the feasible region ofpip. | |
| 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 pca const handle to thei-thconstraint defining the feasible region of the PIP problempip. | |
| int | ppl_PIP_Problem_total_memory_in_bytes (ppl_const_PIP_Problem_t pip, size_t *sz) | 
| Writes into *szthe size in bytes of the memory occupied bypip. | |
| int | ppl_PIP_Problem_external_memory_in_bytes (ppl_const_PIP_Problem_t pip, size_t *sz) | 
| Writes into *szthe size in bytes of the memory managed bypip. | |
| int | ppl_PIP_Problem_OK (ppl_const_PIP_Problem_t pip) | 
| Returns a positive integer if pipis well formed, i.e., if it satisfies all its implementation invariants; returns 0 and perhaps makes some noise ifpipis 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_paramsnew space dimensions and embeds the PIP problempipin 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 npositions of the arraydsto be parameter dimensions of problempip. The presence of duplicates indsis 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 piptod. | |
| int | ppl_PIP_Problem_add_constraint (ppl_PIP_Problem_t pip, ppl_const_Constraint_t c) | 
| Modifies the feasible region of the PIP problem pipby adding a copy of the constraintc. | |
| 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 pipby adding a copy of the constraints incs. | |
| 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 pipis 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_treea solution forpip, 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_treean optimizing solution forpip, 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 namein problempip. | |
| int | ppl_PIP_Problem_set_control_parameter (ppl_PIP_Problem_t pip, int value) | 
| Sets control parameter valuein problempip. | |
| Input/Output Functions | |
| int | ppl_io_print_PIP_Problem (ppl_const_PIP_Problem_t x) | 
| Prints xtostdout. | |
| int | ppl_io_fprint_PIP_Problem (FILE *stream, ppl_const_PIP_Problem_t x) | 
| Prints xto the given outputstream. | |
| int | ppl_io_asprint_PIP_Problem (char **strp, ppl_const_PIP_Problem_t x) | 
| Prints xto a malloc-allocated string, a pointer to which is returned viastrp. | |
| int | ppl_PIP_Problem_ascii_dump (ppl_const_PIP_Problem_t x, FILE *stream) | 
| Dumps an ascii representation of xonstream. | |
| int | ppl_PIP_Problem_ascii_load (ppl_PIP_Problem_t x, FILE *stream) | 
| Loads an ascii representation of xfromstream. | |
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_paramsparameters. | 
| pip_params | The number of space dimensions to add that are interpreted as PIP problem parameters. These are added after having added the pip_varsproblem 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.