Initializing help system before first use

XPRSbtran

XPRSbtran


Purpose
Post-multiplies a (row) vector provided by the user by the inverse of the current basis.
Synopsis
int XPRS_CC XPRSbtran(XPRSprob prob, double vec[]);
Arguments
prob 
The current problem.
vec 
Double array of length ROWS containing the values by which the basis inverse is to be multiplied. The transformed values will also be returned in this array.
Related controls
Double
ETATOL 
Tolerance on eta elements.

Example
Get the (unscaled) tableau row z of constraint number irow, assuming that all arrays have been dimensioned.
/* Minimum size of arrays:
 * y: nrow + ncol;
 * mstart: 2;
 * mrowind, dmatval: nrow.
 */

/* set up the unit vector y to pick out row irow */
for(i = 0; i < nrow; i++) y[i] = 0.0;
y[irow] = 1.0;

rc = XPRSbtran(prob,y);       /* y = e*B^{-1} */

/* Form z = y * A */
for(j = 0; j < ncol, j++) {
  rc = XPRSgetcols(prob, mstart, mrowind, dmatval,
                   nrow, &nelt, j, j);
  for(d = 0.0, ielt = 0, ielt < nelt; ielt++)
    d += y[mrowind[ielt]] * dmatval[ielt];
  y[nrow + j] = d;
}
Further information
If the matrix is in a presolved state, XPRSbtran works with the basis for the presolved problem.
Related topics