XPRSgetscaledinfeas
XPRSgetscaledinfeas |
Purpose
Returns a list of scaled infeasible primal and dual
variables for the original problem. If the problem is currently
presolved, it is postsolved before the function returns.
Synopsis
int XPRS_CC XPRSgetscaledinfeas(XPRSprob prob, int *npv, int *nps, int *nds, int *ndv, int mx[], int mslack[], int mdual[], int mdj[]);
Arguments
prob
|
The current problem.
|
npv
|
Number of primal infeasible variables.
|
nps
|
Number of primal infeasible rows.
|
nds
|
Number of dual infeasible rows.
|
ndv
|
Number of dual infeasible variables.
|
mx
|
Integer array of length
npv where the primal infeasible variables will be returned. May be
NULL if not required.
|
mslack
|
Integer array of length
nps where the primal infeasible rows will be returned. May be
NULL if not required.
|
mdual
|
Integer array of length
nds where the dual infeasible rows will be returned. May be
NULL if not required.
|
mdj
|
Integer array of length
ndv where the dual infeasible variables will be returned. May be
NULL if not required.
|
Error value
A solution is not available.
|
Related controls
Double
Tolerance on RHS.
|
|
Reduced cost tolerance.
|
Example
In this example,
XPRSgetscaledinfeas is first called with nulled integer arrays to get the number of infeasible entries. Then space is allocated for the arrays and the function is again called to fill them in.
int *mx, *mslack, *mdual, *mdj, npv, nps, nds, ndv; ... XPRSgetscaledinfeas(prob, &npv, &nps, &nds, &ndv, NULL, NULL, NULL, NULL); mx = malloc(npv * sizeof(int)); mslack = malloc(nps * sizeof(int)); mdual = malloc(nds * sizeof(int)); mdj = malloc(ndv * sizeof(int)); XPRSgetscaledinfeas(prob, &npv, &nps, &nds, &ndv, mx, mslack, mdual, mdj);
Further information
If any of the last four arguments are set to
NULL, the corresponding number of infeasibilities is still returned.
Related topics
XPRSgetinfeas,
XPRSgetiisdata,
XPRSiisall,
XPRSiisclear,
XPRSiisfirst,
XPRSiisisolations,
XPRSiisnext,
XPRSiisstatus,
XPRSiiswrite,
IIS.