CPXXuncrushx and CPXuncrushx
The routine CPXXuncrushx/CPXuncrushx uncrushes a solution for the
presolved problem to the solution for the original problem.
int CPXXuncrushx( CPXCENVptr env, CPXCLPptr lp, double * x, double const * prex )
int CPXuncrushx( CPXCENVptr env, CPXCLPptr lp, double * x, double const * prex )
Description
This is an advanced routine. Advanced routines typically demand a thorough understanding of the algorithms used by CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, the team encourages you to consider carefully whether you can accomplish the same task by means of other Callable Library routines instead.
The routine CPXXuncrushx/CPXuncrushx uncrushes a solution for the
presolved problem to the solution for the original problem.
To use this routine effectively, you must set the value of the
parameter that controls the
presolve dual setting
(CPXPARAM_Preprocessing_Dual)
to -1, thus turning off
the presolve dual feature.
Arguments
- env
-
A pointer to the CPLEX environment, as returned by
CPXXopenCPLEX/CPXopenCPLEX. - lp
-
A pointer to a CPLEX LP problem object, as returned by
CPXXcreateprob/CPXcreateprob. - x
-
An array to receive the primal solution (
x) values for the original problem as computed from primal values of the presolved problem object. The array must be of length at least the number of columns in the LP problem object. - prex
-
An array that contains primal solution (
x) values for the presolved problem, as returned by routines such asCPXXgetx/CPXgetxandCPXXsolution/CPXsolutionwhen applied to the presolved problem object. The array must be of length at least the number of columns in the presolved problem object.
Return
The routine returns 0 (zero) if successful and nonzero if an error occurs.Example
status = CPXuncrushx (env, lp, x, prex);