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
|
Zero 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
If you have any comments or suggestions about these pages,
please send mail to docs@dashoptimization.com.