Previous Page: CPXgetgradFirst PageNext Page: CPXgetintparam

CPXgetiis


Description

The routine CPXgetiis() is used to examine the IIS for an infeasible LP problem. The IIS must already have been computed using a call to CPXfindiis() or CPXiiswrite(). Upon successful completion, the CPXgetiis() arguments return information about the IIS that can be used to diagnose the cause of infeasibility. The number of rows and bound constraints in the IIS, as well as the indices of the IIS members, are returned.

Return Value

The routine returns a zero on success, and a nonzero if an error occurs.

Synopsis

int CPXgetiis (CPXENVptr env,
               CPXLPptr lp,
               int *iisstat_p,
               int *rowind,
               int *rowbdstat,
               int *iisnumrows_p,
               int *colind,
               int *colbdstat,
               int *iisnumcols_p);

Arguments


CPXENVptr env
The pointer to the CPLEX environment as returned by one of the CPXopenCPLEX routines.

CPXLPptr lp
A pointer to a CPLEX LP problem object as returned by CPXcreateprob().

int *iisstat_p
A pointer to an integer that will contain the result of the IIS algorithm. The specific values which *iisstat_p can take and their meanings are:

1  
CPXIIS_COMPLETE  
IIS found  
2  
CPXIIS_PARTIAL  
Time limit exceeded, partial IIS found  

int *rowind
A pointer to an array that will contain the indices of the rows in the IIS. The length of the array must be at least as large as the number of rows in the IIS.

int *rowbdstat
A pointer to an array that will identify the right-hand side value for each row in the IIS that is causing the infeasibility. Possible values are:

0  
CPXIIS_AT_LOWER  
Row is at lower bound  
1  
CPXIIS_FIXED  
Row is fixed  
2  
CPXIIS_AT_UPPER  
Row is at upper bound  

This information is needed only for ranged rows. For all other row senses, the value is uniquely determined by the sense. The length of the array must be at least as large as the number of rows in the IIS.

int *iisnumrows_p
A pointer to an integer that will contain the number of rows in the IIS.

int *colind
A pointer to an array that will contain the indices of the columns in the IIS. The length of the array must be at least as large as the number of columns in the IIS.

int *colbdstat
A pointer to an array identifying the bound for each column in the IIS that is causing the infeasibility. Possible values are:

0  
CPXIIS_AT_LOWER  
Column is at lower bound  
1  
CPXIIS_FIXED  
Column is fixed  
2  
CPXIIS_AT_UPPER  
Column is at upper bound  

The length of the array must be at least as large as the number of columns in the IIS.

int *iisnumcols_p
A pointer to an integer that will contain the number of columns in the IIS.

Example

status = CPXgetiis (env, lp, &iisstat, rowind, rowbdstat,
                    &iisnumrows, colind, colbdstat, &iisnumcols);

Previous Page: CPXgetgradFirst PageNext Page: CPXgetintparam