XPRSgetdualray
XPRSgetdualray |
Purpose
Retrieves a dual ray (dual unbounded direction) for the current problem, if the problem is found to be infeasible.
Synopsis
int XPRS_CC XPRSgetdualray(XPRSprob prob, double dray[], int *hasRay);
Arguments
prob
|
The current problem.
|
dray
|
Double array of length
ROWS to hold the ray. May be NULL if not required.
|
hasRay
|
This variable will be set to 1 if the Optimizer is able to return a dual ray, 0 otherwise.
|
Example
The following code tries to retrieve a dual ray:
int rows; double *dualRay; int hasRay; ... XPRSgetintattrib(prob, XPRS_ROWS, &rows); dualRay = malloc(rows*sizeof(double)); XPRSgetdualray(prob, dualRay, &hasRay); if(!hasRay) printf("Could not retrieve a dual ray\n");
Further information
1. It is possible to retrieve a dual ray only when, after solving an LP problem, the final status (
LPSTATUS) is
XPRS_LP_INFEAS.
2. Dual rays are not post-solved. If the problem is in a presolved state, the dual ray that is returned will be for the presolved problem. If the problem was solved with presolve on and has been restored to the original state (the default behavior), this function will not be able to return a ray. To ensure that a dual ray can be obtained, it is recommended to solve a problem with presolve turned off (
PRESOLVE = 0).
Related topics