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

© 2001-2020 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.