CPXXuncrushpi and CPXuncrushpi

The routine CPXXuncrushpi/CPXuncrushpi uncrushes a dual solution for the presolved problem to a dual solution for the original problem.

int  CPXXuncrushpi( CPXCENVptr env, CPXCLPptr lp, double * pi, double const * prepi )

int  CPXuncrushpi( CPXCENVptr env, CPXCLPptr lp, double * pi, double const * prepi )

Description

Warning:

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 CPXXuncrushpi/CPXuncrushpi uncrushes a dual solution for the presolved problem to a dual solution for the original problem. This routine is for linear programs. Use CPXXqpuncrushpi/CPXqpuncrushpi for quadratic programs.

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.
pi
An array to receive dual solution (pi) values for the original problem as computed from the dual values of the presolved problem object. The array must be of length at least the number of rows in the LP problem object.
prepi
An array that contains dual solution (pi) values for the presolved problem, as returned by routines such as CPXXgetpi/CPXgetpi and CPXXsolution/CPXsolution when applied to the presolved problem object. The array must be of length at least the number of rows in the presolved problem object.

Return

The routine returns 0 (zero) if successful and nonzero if an error occurs.

Example


status = CPXuncrushpi (env, lp, pi, prepi);