Open
Description
While testing the snapshot
command with scipampl I noticed that no ".sstatus" is returned on the solution file and looking through the source code I found this functions in "scip/src/lpi/lpi.h":
/*
* LP Basis Methods
*/
/**@name LP Basis Methods */
/**@{ */
/** gets current basis status for columns and rows; arrays must be large enough to store the basis status */
SCIP_EXPORT
SCIP_RETCODE SCIPlpiGetBase(
SCIP_LPI* lpi, /**< LP interface structure */
int* cstat, /**< array to store column basis status, or NULL */
int* rstat /**< array to store row basis status, or NULL */
);
/** sets current basis status for columns and rows */
SCIP_EXPORT
SCIP_RETCODE SCIPlpiSetBase(
SCIP_LPI* lpi, /**< LP interface structure */
const int* cstat, /**< array with column basis status */
const int* rstat /**< array with row basis status */
);
/** returns the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m */
SCIP_EXPORT
SCIP_RETCODE SCIPlpiGetBasisInd(
SCIP_LPI* lpi, /**< LP interface structure */
int* bind /**< pointer to store basis indices ready to keep number of rows entries */
);
/** get row of inverse basis matrix B^-1
*
* @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
* uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
* see also the explanation in lpi.h.
*/
SCIP_EXPORT
SCIP_RETCODE SCIPlpiGetBInvRow(
SCIP_LPI* lpi, /**< LP interface structure */
int r, /**< row number */
SCIP_Real* coef, /**< pointer to store the coefficients of the row */
int* inds, /**< array to store the non-zero indices, or NULL */
int* ninds /**< pointer to store the number of non-zero indices, or NULL
* (-1: if we do not store sparsity information) */
);
/** get column of inverse basis matrix B^-1
*
* @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
* uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
* see also the explanation in lpi.h.
*/
SCIP_EXPORT
SCIP_RETCODE SCIPlpiGetBInvCol(
SCIP_LPI* lpi, /**< LP interface structure */
int c, /**< column number of B^-1; this is NOT the number of the column in the LP;
* you have to call SCIPlpiGetBasisInd() to get the array which links the
* B^-1 column numbers to the row and column numbers of the LP!
* c must be between 0 and nrows-1, since the basis has the size
* nrows * nrows */
SCIP_Real* coef, /**< pointer to store the coefficients of the column */
int* inds, /**< array to store the non-zero indices, or NULL */
int* ninds /**< pointer to store the number of non-zero indices, or NULL
* (-1: if we do not store sparsity information) */
);
/** get row of inverse basis matrix times constraint matrix B^-1 * A
*
* @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
* uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
* see also the explanation in lpi.h.
*/
SCIP_EXPORT
SCIP_RETCODE SCIPlpiGetBInvARow(
SCIP_LPI* lpi, /**< LP interface structure */
int r, /**< row number */
const SCIP_Real* binvrow, /**< row in (A_B)^-1 from prior call to SCIPlpiGetBInvRow(), or NULL */
SCIP_Real* coef, /**< vector to return coefficients of the row */
int* inds, /**< array to store the non-zero indices, or NULL */
int* ninds /**< pointer to store the number of non-zero indices, or NULL
* (-1: if we do not store sparsity information) */
);
/** get column of inverse basis matrix times constraint matrix B^-1 * A
*
* @note The LP interface defines slack variables to have coefficient +1. This means that if, internally, the LP solver
* uses a -1 coefficient, then rows associated with slacks variables whose coefficient is -1, should be negated;
* see also the explanation in lpi.h.
*/
SCIP_EXPORT
SCIP_RETCODE SCIPlpiGetBInvACol(
SCIP_LPI* lpi, /**< LP interface structure */
int c, /**< column number */
SCIP_Real* coef, /**< vector to return coefficients of the column */
int* inds, /**< array to store the non-zero indices, or NULL */
int* ninds /**< pointer to store the number of non-zero indices, or NULL
* (-1: if we do not store sparsity information) */
);
/**@} */
And looking at other drivers it's clear that who wrote the actual scipampl interface didn't bothered to implement it.
Metadata
Metadata
Assignees
Labels
No labels