|
Simplex basis.Consider the linear program as provided from class SPxLP:
where , and . Solving this LP with the simplex algorithm requires the definition of a basis. Such can be defined as a set of column vectors or a set of row vectors building a nonsingular matrix. We will refer to the first case as the columnwise representation and the latter case will be called the rowwise representation. In both cases, a basis is a set of vectors forming a nonsigular matrix. The dimension of the vectors is refered to as the basis' dimension, whereas the number of vectors belonging to the LP is called the basis' codimension.
More...
#include <spxbasis.h>
|
|
SPxStatus | status () const |
| returns current SPxStatus. More...
|
|
void | setStatus (SPxStatus stat) |
| sets basis SPxStatus to stat . More...
|
|
void | setMaxUpdates (int maxUp) |
| change maximum number of iterations until a refactorization is performed More...
|
|
int | getMaxUpdates () const |
| returns maximum number of updates before a refactorization is performed More...
|
|
const Desc & | desc () const |
|
Desc & | desc () |
| returns current basis Descriptor. More...
|
|
Desc::Status | dualColStatus (int i) const |
| dual Status for the i'th column variable of the loaded LP. More...
|
|
Desc::Status | dualStatus (const SPxColId &id) const |
| dual Status for the column variable with ID id of the loaded LP. More...
|
|
Desc::Status | dualRowStatus (int i) const |
| dual Status for the i'th row variable of the loaded LP. More...
|
|
Desc::Status | dualStatus (const SPxRowId &id) const |
| dual Status for the row variable with ID id of the loaded LP. More...
|
|
Desc::Status | dualStatus (const SPxId &id) const |
| dual Status for the variable with ID id of the loaded LP. More...
|
|
|
SPxId & | baseId (int i) |
|
SPxId | baseId (int i) const |
| returns the Id of the i'th basis vector. More...
|
|
const SVector & | baseVec (int i) const |
| returns the i'th basic vector. More...
|
|
SPxId | lastEntered () const |
| returns SPxId of last vector included to the basis. More...
|
|
SPxId | lastLeft () const |
| returns SPxId of last vector that left the basis. More...
|
|
int | lastIndex () const |
| returns index in basis where last update was done. More...
|
|
int | lastUpdate () const |
| returns number of basis changes since last refactorization. More...
|
|
int | iteration () const |
| returns number of basis changes since last load(). More...
|
|
SPxSolver * | solver () const |
| returns loaded solver. More...
|
|
|
Vector & | multBaseWith (Vector &x) const |
| Basis-vector product. More...
|
|
void | multBaseWith (SSVector &x, SSVector &result) const |
| Basis-vector product. More...
|
|
Vector & | multWithBase (Vector &x) const |
| Vector-basis product. More...
|
|
void | multWithBase (SSVector &x, SSVector &result) const |
| Vector-basis product. More...
|
|
Real | condition (int maxiters=10, Real tolerance=1e-6) |
|
Real | getEstimatedCondition () |
|
Real | getExactCondition () |
|
Real | stability () const |
| returns the stability of the basis matrix. More...
|
|
void | solve (Vector &x, const Vector &rhs) |
|
void | solve (SSVector &x, const SVector &rhs) |
|
void | solve4update (SSVector &x, const SVector &rhs) |
| solves linear system with basis matrix. More...
|
|
void | solve4update (SSVector &x, Vector &y, const SVector &rhsx, SSVector &rhsy) |
| solves two systems in one call. More...
|
|
void | solve4update (SSVector &x, SSVector &y, const SVector &rhsx, SSVector &rhsy) |
| solves two systems in one call using only sparse data structures More...
|
|
void | solve4update (SSVector &x, Vector &y, Vector &y2, const SVector &rhsx, SSVector &rhsy, SSVector &rhsy2) |
| solves three systems in one call. More...
|
|
void | solve4update (SSVector &x, SSVector &y, SSVector &y2, const SVector &rhsx, SSVector &rhsy, SSVector &rhsy2) |
| solves three systems in one call using only sparse data structures More...
|
|
void | coSolve (Vector &x, const Vector &rhs) |
| Cosolves linear system with basis matrix. More...
|
|
void | coSolve (SSVector &x, const SVector &rhs) |
| Sparse version of coSolve. More...
|
|
void | coSolve (SSVector &x, Vector &y, const SVector &rhsx, SSVector &rhsy) |
| solves two systems in one call. More...
|
|
void | coSolve (SSVector &x, SSVector &y, const SVector &rhsx, SSVector &rhsy) |
| Sparse version of solving two systems in one call. More...
|
|
void | coSolve (SSVector &x, Vector &y, Vector &z, const SVector &rhsx, SSVector &rhsy, SSVector &rhsz) |
| solves three systems in one call. May be improved by using just one pass through the basis. More...
|
|
void | coSolve (SSVector &x, SSVector &y, SSVector &z, const SVector &rhsx, SSVector &rhsy, SSVector &rhsz) |
| Sparse version of solving three systems in one call. More...
|
|
|
These methods must be called after the loaded LP has been modified.
|
void | addedRows (int n) |
| inform SPxBasis, that n new rows had been added. More...
|
|
void | removedRow (int i) |
| inform SPxBasis that row i had been removed. More...
|
|
void | removedRows (const int perm[]) |
| inform SPxBasis that rows in perm with negative entry were removed. More...
|
|
void | addedCols (int n) |
| inform SPxBasis that n new columns had been added. More...
|
|
void | removedCol (int i) |
| inform SPxBasis that column i had been removed. More...
|
|
void | removedCols (const int perm[]) |
| inform SPxBasis that columns in perm with negative entry were removed. More...
|
|
void | changedRow (int) |
| inform SPxBasis that a row had been changed. More...
|
|
void | changedCol (int) |
| inform SPxBasis that a column had been changed. More...
|
|
void | changedElement (int, int) |
| inform SPxBasis that a matrix entry had been changed. More...
|
|
|
virtual void | change (int i, SPxId &id, const SVector *enterVec, const SSVector *eta=0) |
| performs basis update. More...
|
|
virtual bool | readBasis (std::istream &in, const NameSet *rowNames, const NameSet *colNames) |
|
virtual void | writeBasis (std::ostream &os, const NameSet *rownames, const NameSet *colnames, const bool cpxFormat=false) const |
|
virtual void | printMatrix () const |
|
void | printMatrixMTX (int number) |
|
virtual bool | isDescValid (const Desc &ds) |
| checks if a Descriptor is valid for the current LP w.r.t. its bounds More...
|
|
virtual void | loadDesc (const Desc &) |
| sets up basis. More...
|
|
virtual void | loadSolver (SLinSolver *solver, const bool destroy=false) |
| sets up linear solver to use. More...
|
|
virtual void | load (SPxSolver *lp) |
| loads the LP lp to the basis. More...
|
|
virtual void | unLoad () |
| unloads the LP from the basis. More...
|
|
void | invalidate () |
| invalidates actual basis. More...
|
|
void | restoreInitialBasis () |
| Restores initial basis. More...
|
|
void | dump () |
| output basis entries. More...
|
|
bool | isConsistent () const |
| consistency check. More...
|
|
Real | getTotalUpdateTime () const |
| time spent in updates More...
|
|
int | getTotalUpdateCount () const |
| number of updates performed More...
|
|
std::string | statistics () const |
| returns statistical information in form of a string. More...
|
|
void | setOutstream (SPxOut &newOutstream) |
|
|
| SPxBasis (Timer::TYPE ttype=Timer::USER_TIME) |
| default constructor. More...
|
|
| SPxBasis (const SPxBasis &old) |
| copy constructor More...
|
|
SPxBasis & | operator= (const SPxBasis &rhs) |
| assignment operator More...
|
|
virtual | ~SPxBasis () |
| destructor. More...
|
|
Simplex basis.
Consider the linear program as provided from class SPxLP:
where , and . Solving this LP with the simplex algorithm requires the definition of a basis. Such can be defined as a set of column vectors or a set of row vectors building a nonsingular matrix. We will refer to the first case as the columnwise representation and the latter case will be called the rowwise representation. In both cases, a basis is a set of vectors forming a nonsigular matrix. The dimension of the vectors is refered to as the basis' dimension, whereas the number of vectors belonging to the LP is called the basis' codimension.
Class SPxBasis is designed to represent a generic simplex basis, suitable for both representations. At any time the representation can be changed by calling method setRep().
Class SPxBasis provides methods for solving linear systems with the basis matrix. However, SPxBasis does not provide a linear solver by its own. Instead, a SLinSolver object must be loaded to a SPxBasis which will be called for solving linear systems.
Definition at line 82 of file spxbasis.h.
basis status.
Each SPxBasis is assigned a status flag, which can take on of the above values.
Enumerator |
---|
NO_PROBLEM |
No Problem has been loaded to the basis.
|
SINGULAR |
Basis is singular.
|
REGULAR |
Basis is not known to be dual nor primal feasible.
|
DUAL |
Basis is dual feasible.
|
PRIMAL |
Basis is primal feasible.
|
OPTIMAL |
Basis is optimal, i.e. dual and primal feasible.
|
UNBOUNDED |
LP has been proven to be primal unbounded.
|
INFEASIBLE |
LP has been proven to be primal infeasible.
|
Definition at line 90 of file spxbasis.h.
inform SPxBasis that n new columns had been added.
Definition at line 255 of file spxchangebasis.cpp.
References SPxBasis::baseId(), SPxBasis::Desc::colStatus(), SPxSolver::COLUMN, SPxBasis::DUAL, SPxBasis::factorized, SPxBasis::INFEASIBLE, SPxBasis::loadMatrixVecs(), SPxBasis::matrixIsSetup, MSG_ERROR, SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxBasis::OPTIMAL, SPxBasis::PRIMAL, soplex::primalColStatus(), SPxBasis::reDim(), SPxBasis::REGULAR, SPxSolver::rep(), SPxSolver::ROW, SPxBasis::setStatus(), SPxBasis::SINGULAR, SPxBasis::status(), SPxBasis::thedesc, SPxBasis::theLP, and SPxBasis::UNBOUNDED.
Referenced by SPxSolver::addedCols(), SPxSolver::addedRows(), and SPxBasis::coSolve().
inform SPxBasis, that n new rows had been added.
Definition at line 59 of file spxchangebasis.cpp.
References SPxBasis::baseId(), SPxSolver::COLUMN, SPxBasis::DUAL, SPxBasis::dualRowStatus(), SPxBasis::factorized, SPxBasis::INFEASIBLE, SPxBasis::loadMatrixVecs(), SPxBasis::matrixIsSetup, MSG_ERROR, SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxBasis::OPTIMAL, SPxBasis::PRIMAL, SPxBasis::reDim(), SPxBasis::REGULAR, SPxSolver::rep(), SPxSolver::ROW, SPxBasis::Desc::rowStatus(), SPxBasis::setStatus(), SPxBasis::SINGULAR, SPxBasis::status(), SPxBasis::thedesc, SPxBasis::theLP, and SPxBasis::UNBOUNDED.
Referenced by SPxSolver::addedRows(), and SPxBasis::coSolve().
Definition at line 497 of file spxbasis.h.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxSolver::computeDualfarkas4Row(), SPxSolver::computeEnterCoPrhs(), SPxSolver::computeEnterCoPrhs4Col(), SPxSolver::computeEnterCoPrhs4Row(), SPxSolver::computeLeaveCoPrhs(), SPxSolver::computeLeaveCoPrhs4Col(), SPxSolver::computeLeaveCoPrhs4Row(), SPxWeightPR::computeLeavePenalty(), SPxSolver::computePrimalray4Col(), SPxSolver::enter(), SPxBoundFlippingRT::flipAndUpdate(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SPxBoundFlippingRT::getData(), SPxSolver::getDual(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getPrimal(), SPxSolver::getRedCost(), SPxSolver::getSlacks(), SPxSolver::leave(), SPxBasis::loadMatrixVecs(), SPxFastRT::maxReLeave(), SPxFastRT::minReLeave(), SPxSolver::perturbMax(), SPxSolver::perturbMin(), SPxBasis::removedCol(), SPxBasis::removedRow(), SPxBasis::restoreInitialBasis(), SPxFastRT::selectLeave(), SPxBoundFlippingRT::selectLeave(), SPxSolver::setDual(), SPxSolver::setEnterBound4Col(), SPxSolver::setEnterBound4Row(), SPxSolver::setEnterBounds(), SPxSolver::setLeaveBound4Col(), SPxSolver::setLeaveBound4Row(), SPxSolver::setLeaveBounds(), SPxSolver::setPrimal(), SPxSolver::setRedCost(), SPxSolver::setSlacks(), SPxSteepPR::setupWeights(), SPxSolver::solve(), and SPxSolver::unShift().
SPxId baseId |
( |
int |
i | ) |
const |
returns the Id of the i'th basis vector.
Definition at line 502 of file spxbasis.h.
const SVector& baseVec |
( |
int |
i | ) |
const |
performs basis update.
Changes the i 'th vector of the basis with the vector associated to id . This includes:
The basis descriptor is not modified, since factor() cannot know about how to set up the status of the involved variables correctly.
A vector enterVec may be passed for a fast ETA update of the LU factorization associated to the basis. It must be initialized with the solution vector of the right linear system with the entering vector as right-hand side vector , where denotes the basis matrix. This can be computed using method solve(). When using FAST updates, a vector eta may be passed for improved performance. It must be initialized by a call to factor->solveRightUpdate() as described in SLinSolver. The implementation hidden behind FAST updates depends on the SLinSolver implementation class.
Definition at line 715 of file spxbasis.cpp.
References SLinSolver::change(), SPxBasis::factor, SPxBasis::factorize(), SPxBasis::factorized, SPxBasis::iterCount, SPxBasis::lastFill, SPxBasis::lastidx, SPxBasis::lastin, SPxBasis::lastNzCount, SPxBasis::lastout, SPxBasis::matrix, SPxBasis::matrixIsSetup, SPxBasis::maxUpdates, SLinSolver::memory(), SPxBasis::minStab, MSG_INFO3, SPxBasis::nonzeroFactor, SPxBasis::nzCount, SLinSolver::OK, SPxBasis::REGULAR, SVectorBase< R >::size(), SPxBasis::spxout, SLinSolver::stability(), Timer::start(), SLinSolver::status(), SPxBasis::status(), Timer::stop(), SPxBasis::theBaseId, SPxBasis::theTime, SPxBasis::totalUpdateCount, and SPxBasis::updateCount.
Referenced by SPxBasis::coSolve(), SPxSolver::enter(), and SPxSolver::leave().
void changedElement |
( |
int |
, |
|
|
int |
|
|
) |
| |
Real condition |
( |
int |
maxiters = 10 , |
|
|
Real |
tolerance = 1e-6 |
|
) |
| |
Definition at line 978 of file spxbasis.cpp.
References SSVectorBase< R >::add(), SPxBasis::factor, SSVectorBase< R >::length(), SPxBasis::matrix, SPxBasis::matrixIsSetup, SPxBasis::multBaseWith(), SPxBasis::multWithBase(), SPxBasis::REGULAR, SSVectorBase< R >::setValue(), SLinSolver::solveLeft(), SLinSolver::solveRight(), soplex::spxAbs(), SPxBasis::status(), and SPxBasis::thedesc.
Referenced by SPxBasis::getEstimatedCondition(), SPxBasis::getExactCondition(), and SPxBasis::solver().
Cosolves linear system with basis matrix.
Depending on the representation, for a SPxBasis B, B.coSolve(x) computes
in the columnwise case and
in the rowwise case.
Both can be seen uniformly as solving a linear system with the basis matrix B and a right handside vector x aligned the same way as the covectors of B .
Definition at line 678 of file spxbasis.h.
References SPxBasis::factorize(), and SLinSolver::solveLeft().
Referenced by SPxSolver::addedRows(), SPxSolver::enter(), SPxSolver::factorize(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SPxSolver::init(), SPxSteepPR::isConsistent(), SPxSolver::leave(), SPxSolver::reinitializeVecs(), SPxSteepPR::selectLeave(), SPxSteepPR::setupWeights(), SPxSolver::terminate(), and SPxSolver::testVecs().
Sparse version of solving three systems in one call.
Definition at line 713 of file spxbasis.h.
References SPxBasis::addedCols(), SPxBasis::addedRows(), SPxBasis::change(), SPxBasis::changedCol(), SPxBasis::changedElement(), SPxBasis::changedRow(), SPxBasis::factorize(), SPxBasis::isDescValid(), SPxBasis::load(), SPxBasis::loadDesc(), SPxBasis::loadSolver(), SPxBasis::printMatrix(), SPxBasis::printMatrixMTX(), SPxBasis::readBasis(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SLinSolver::solveLeft(), SPxBasis::solver(), and SPxBasis::writeBasis().
const Desc& desc |
( |
| ) |
const |
Definition at line 457 of file spxbasis.h.
References SPxBasis::thedesc.
Referenced by SoPlex::_performOptIRStable(), SPxSolver::addedRows(), SPxSolver::changeLhsStatus(), SPxSolver::changeLowerStatus(), SPxSolver::changeRhsStatus(), SPxSolver::changeUpperStatus(), SPxSolver::computeCoTest(), SPxSolver::computeEnterCoPrhs4Col(), SPxSolver::computeEnterCoPrhs4Row(), SPxSolver::computeFrhs(), SPxSolver::computeFrhs1(), SPxSolver::computeFrhs2(), SPxSolver::computeFrhsXtra(), SPxSolver::computeLeaveCoPrhs4Col(), SPxSolver::computeLeaveCoPrhs4Row(), SPxSolver::computeTest(), SPxSolver::enter(), SPxBoundFlippingRT::flipAndUpdate(), SPxSolver::getBasis(), SPxSolver::getBasisColStatus(), SPxSolver::getBasisRowStatus(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SPxSolver::getPrimal(), SPxSolver::getSlacks(), SPxSolver::init(), SPxSolver::initRep(), SPxSolver::leave(), SPxSolver::nonbasicValue(), SPxSolver::perturbMaxLeave(), SPxSolver::perturbMinLeave(), SPxSolver::rejectEnter(), SPxSolver::rejectLeave(), SPxWeightPR::selectEnter(), SPxFastRT::selectLeave(), SPxSolver::setBasis(), SPxSolver::setDualColBounds(), SPxSolver::setEnterBound4Col(), SPxSolver::setEnterBound4Row(), SPxSolver::setLeaveBound4Col(), SPxSolver::setLeaveBound4Row(), SoPlexLegacy::solve(), SPxSolver::solve(), SPxSolver::ungetEnterVal(), SPxSolver::unShift(), SPxSolver::updateCoTest(), and SPxSolver::updateTest().
dual Status for the i'th column variable of the loaded LP.
Definition at line 69 of file spxbasis.cpp.
References SPxBasis::Desc::D_FREE, SPxBasis::Desc::D_ON_BOTH, SPxBasis::Desc::D_ON_LOWER, SPxBasis::Desc::D_ON_UPPER, SPxBasis::Desc::D_UNDEFINED, soplex::infinity, and SPxBasis::theLP.
Referenced by SPxSolver::changeLowerStatus(), SPxSolver::changeUpperStatus(), SPxBasis::desc(), SPxBasis::dualStatus(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxBasis::loadDesc(), SPxBasis::readBasis(), SPxSolver::setDualRowBounds(), soplex::setDualStatus(), and SPxSolver::varStatusToBasisStatusCol().
dual Status for the i'th row variable of the loaded LP.
Definition at line 46 of file spxbasis.cpp.
References SPxBasis::Desc::D_FREE, SPxBasis::Desc::D_ON_BOTH, SPxBasis::Desc::D_ON_LOWER, SPxBasis::Desc::D_ON_UPPER, SPxBasis::Desc::D_UNDEFINED, soplex::infinity, SPxLPBase< R >::lhs(), SPxLPBase< R >::rhs(), and SPxBasis::theLP.
Referenced by SPxBasis::addedRows(), SPxSolver::changeLhsStatus(), SPxSolver::changeRhsStatus(), SPxBasis::desc(), SPxBasis::dualStatus(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxBasis::loadDesc(), SPxBasis::readBasis(), SPxBasis::restoreInitialBasis(), SPxSolver::setDualRowBounds(), soplex::setDualStatus(), and SPxSolver::varStatusToBasisStatusRow().
dual Status for the variable with ID id of the loaded LP.
It is automatically detected, whether the id is one of a row or a column variable, and the correct row or column status is returned.
Definition at line 484 of file spxbasis.h.
References SPxBasis::dualStatus().
output basis entries.
Definition at line 1051 of file spxbasis.cpp.
References SPxBasis::Desc::colStatus(), SPxSolver::dim(), SPxSolver::isBasic(), SPxBasis::matrix, SPxLPBase< R >::nCols(), SPxBasis::Desc::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxBasis::Desc::nRows(), SPxLPBase< R >::number(), SPxBasis::Desc::rowStatus(), SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
factorizes the basis matrix.
Reimplemented in SPxSolver.
Definition at line 845 of file spxbasis.cpp.
References SPxBasis::factor, SPxBasis::factorized, SPxBasis::fillFactor, SPxBasis::lastFill, SPxBasis::lastMem, SPxBasis::lastNzCount, SLinSolver::load(), SPxBasis::loadDesc(), SPxBasis::matrix, SPxBasis::matrixIsSetup, SLinSolver::memory(), SPxBasis::minStab, MSG_ERROR, SPxBasis::nonzeroFactor, SPxBasis::nzCount, SLinSolver::OK, SPxBasis::REGULAR, SPxBasis::setStatus(), SLinSolver::SINGULAR, SPxBasis::SINGULAR, SLinSolver::stability(), SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::updateCount.
Referenced by SPxBasis::change(), SPxBasis::coSolve(), SPxSolver::factorize(), SPxSolver::init(), SPxBasis::setOutstream(), SPxBasis::solve(), and SPxBasis::solve4update().
Real getEstimatedCondition |
( |
| ) |
|
Real getExactCondition |
( |
| ) |
|
int getMaxUpdates |
( |
| ) |
const |
int getTotalUpdateCount |
( |
| ) |
const |
Real getTotalUpdateTime |
( |
| ) |
const |
bool isConsistent |
( |
| ) |
const |
consistency check.
Definition at line 1094 of file spxbasis.cpp.
References SPxBasis::Desc::colStatus(), SPxSolver::dim(), SPxBasis::dualColStatus(), SPxBasis::dualRowStatus(), SPxBasis::factor, SLinSolver::isConsistent(), SPxBasis::Desc::isConsistent(), SPxBasis::matrix, MSGinconsistent, SPxLPBase< R >::nCols(), SPxBasis::Desc::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxBasis::Desc::nRows(), SPxBasis::Desc::rowStatus(), SPxBasis::status(), SPxBasis::theBaseId, SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxSolver::isConsistent(), SPxBasis::operator=(), and SPxBasis::SPxBasis().
bool isDescValid |
( |
const Desc & |
ds | ) |
|
|
virtual |
checks if a Descriptor is valid for the current LP w.r.t. its bounds
Definition at line 111 of file spxbasis.cpp.
References SPxBasis::Desc::colstat, SPxBasis::dualColStatus(), SPxBasis::dualRowStatus(), soplex::infinity, MSG_DEBUG, SPxLPBase< R >::nCols(), SPxBasis::Desc::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxBasis::Desc::nRows(), SPxBasis::Desc::P_FIXED, SPxBasis::Desc::P_ON_LOWER, SPxBasis::Desc::P_ON_UPPER, SPxBasis::Desc::rowstat, SPxBasis::status(), and SPxBasis::theLP.
Referenced by SPxBasis::coSolve(), SPxBasis::loadDesc(), and SoPlexLegacy::solve().
returns number of basis changes since last load().
Definition at line 539 of file spxbasis.h.
References SPxBasis::iterCount.
Referenced by SPxSteepPR::entered4(), SPxSolver::factorize(), SoPlexLegacy::iteration(), SPxSolver::leave(), SPxSteepPR::left4(), SPxSolver::perturbMaxEnter(), SPxSolver::perturbMaxLeave(), SPxSolver::perturbMinEnter(), SPxSolver::perturbMinLeave(), SPxSolver::printDisplayLine(), SPxFastRT::selectEnter(), SPxBoundFlippingRT::selectEnter(), SPxFastRT::selectLeave(), SPxBoundFlippingRT::selectLeave(), SPxSolver::solve(), SPxSolver::terminate(), SPxSolver::testVecs(), and SPxSolver::updateNonbasicValue().
SPxId lastEntered |
( |
| ) |
const |
loads the LP lp to the basis.
This involves resetting all counters to 0 and setting up a regular default basis consisting of slacks, artificial variables or bounds.
Definition at line 305 of file spxbasis.cpp.
References SPxBasis::loadDesc(), SPxBasis::restoreInitialBasis(), SPxBasis::setOutstream(), SPxBasis::setRep(), SPxSolver::spxout, SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::coSolve(), SPxSolver::init(), SPxSolver::loadBasis(), SPxSolver::loadLP(), SPxBasis::readBasis(), SPxSolver::setBasis(), SPxSolver::setType(), and SPxSolver::solve().
void loadDesc |
( |
const Desc & |
ds | ) |
|
|
virtual |
sets up basis.
Loads a Descriptor to the basis and sets up the basis matrix and all vectors accordingly. The Descriptor must have the same number of rows and columns as the currently loaded LP.
Definition at line 188 of file spxbasis.cpp.
References SLinSolver::clear(), SPxBasis::Desc::colStatus(), SPxSolver::dim(), SPxBasis::dualColStatus(), SPxBasis::dualRowStatus(), SPxBasis::factor, SPxBasis::factorized, soplex::infinity, SPxSolver::isBasic(), SPxBasis::isDescValid(), SPxBasis::iterCount, SPxBasis::lastidx, SPxBasis::lastin, SPxBasis::lastout, SPxBasis::matrix, SPxBasis::matrixIsSetup, MSG_INFO3, SPxLPBase< R >::nCols(), SPxBasis::Desc::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxBasis::Desc::nRows(), SPxBasis::nzCount, SPxBasis::Desc::P_FIXED, SPxBasis::Desc::P_FREE, SPxBasis::Desc::P_ON_LOWER, SPxBasis::Desc::P_ON_UPPER, SPxBasis::restoreInitialBasis(), SPxBasis::Desc::rowStatus(), SPxBasis::setRep(), SPxBasis::spxout, SPxBasis::status(), SPxBasis::theBaseId, SPxBasis::thedesc, SPxBasis::theLP, SPxBasis::updateCount, and SPxSolver::vector().
Referenced by SPxBasis::coSolve(), SPxBasis::factorize(), SPxSolver::init(), SPxSolver::initRep(), SPxBasis::load(), SPxSolver::loadBasis(), and SPxBasis::readBasis().
loads matrix according to the SPxIds stored in theBaseId.
This method must be called whenever there is a chance, that the vector pointers may have changed due to manipulations of the LP.
Definition at line 91 of file spxbasis.cpp.
References SPxBasis::baseId(), SLinSolver::clear(), SPxSolver::dim(), SPxBasis::factor, SPxBasis::factorized, SPxBasis::matrix, SPxBasis::matrixIsSetup, MSG_INFO3, SPxBasis::nzCount, SPxBasis::spxout, SPxBasis::theLP, and SPxSolver::vector().
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxBasis::restoreInitialBasis(), and SPxBasis::setOutstream().
void loadSolver |
( |
SLinSolver * |
solver, |
|
|
const bool |
destroy = false |
|
) |
| |
|
virtual |
sets up linear solver to use.
If destroy is true, solver will be freed inside this object, e.g. in the destructor.
Definition at line 319 of file spxbasis.cpp.
References SLinSolver::clear(), SPxBasis::factor, SPxBasis::factorized, SPxBasis::freeSlinSolver, MSG_INFO3, SPxBasis::setOutstream(), SLinSolver::spxout, and SPxBasis::spxout.
Referenced by SPxBasis::coSolve(), and SPxSolver::setSolver().
Basis-vector product.
Depending on the representation, for an SPxBasis B, B.multBaseWith(x) computes
in the columnwise case, and
in the rowwise case.
Both can be seen uniformly as multiplying the basis matrix B with a vector x aligned the same way as the vectors of B .
Definition at line 931 of file spxbasis.cpp.
References VectorBase< R >::clear(), VectorBase< R >::dim(), SPxSolver::dim(), SPxBasis::matrix, SPxBasis::matrixIsSetup, VectorBase< R >::multAdd(), SPxBasis::SINGULAR, SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::condition(), SPxSolver::enter(), SPxSolver::factorize(), SPxSolver::leave(), SPxBasis::solver(), and SPxSolver::testVecs().
Basis-vector product.
Definition at line 954 of file spxbasis.cpp.
References SSVectorBase< R >::clear(), SSVectorBase< R >::dim(), SPxSolver::dim(), SPxBasis::matrix, SPxBasis::matrixIsSetup, SSVectorBase< R >::multAdd(), SPxBasis::SINGULAR, SSVectorBase< R >::size(), SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
Vector-basis product.
Depending on the representation, for a SPxBasis B, B.multWithBase(x) computes
in the columnwise case and
in the rowwise case.
Both can be seen uniformly as multiplying the basis matrix B with a vector x aligned the same way as the covectors of B .
Definition at line 894 of file spxbasis.cpp.
References VectorBase< R >::dim(), SPxSolver::dim(), SPxBasis::matrix, SPxBasis::matrixIsSetup, SPxBasis::SINGULAR, SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::condition(), SPxSolver::factorize(), SPxBasis::solver(), and SPxSolver::testVecs().
assignment operator
- Warning
- Note that we do not create a deep copy of the corresponding SPxSolver object. Only the reference to that object is copied.
Definition at line 1227 of file spxbasis.cpp.
References SLinSolver::clone(), SPxBasis::factor, SPxBasis::factorized, SPxBasis::fillFactor, SPxBasis::freeSlinSolver, SPxBasis::isConsistent(), SPxBasis::iterCount, SPxBasis::lastFill, SPxBasis::lastidx, SPxBasis::lastin, SPxBasis::lastNzCount, SPxBasis::lastout, SPxBasis::matrix, SPxBasis::matrixIsSetup, SPxBasis::maxUpdates, SPxBasis::minStab, SPxBasis::nonzeroFactor, SPxBasis::nzCount, SPxBasis::theBaseId, SPxBasis::thedesc, SPxBasis::theLP, and SPxBasis::thestatus.
Referenced by SPxSolver::operator=().
void printMatrix |
( |
| ) |
const |
|
virtual |
void printMatrixMTX |
( |
int |
number | ) |
|
bool readBasis |
( |
std::istream & |
is, |
|
|
const NameSet * |
rowNames, |
|
|
const NameSet * |
colNames |
|
) |
| |
|
virtual |
Load basis from in in MPS format. If rowNames and colNames are NULL , default names are used for the constraints and variables.
The specification is taken from the
ILOG CPLEX 7.0 Reference Manual, Appendix E, Page 543.
This routine should read valid BAS format files.
- Returns
- true if the file was read correctly.
Here is a very brief outline of the format:
The format is in a form similar to an MPS file. The basic assumption is that all (column) variables are nonbasic at their lower bound and all row (variables) are basic; only the differences to this rule are given. Each data line contains an indicator, a variable name and possibly a row/constraint name. The following meaning applies with respect to the indicators:
- XU: the variable is basic, the row is nonbasic at its upper bound
- XL: the variable is basic, the row is nonbasic at its lower bound
- UL: the variable is nonbasic and at its upper bound
- LL: the variable is nonbasic and at its lower bound
The CPLEX format contains an additional indicator 'BS', but this is unsupported here.
Nonbasic variables without lower bound have the following default status for SoPlex:
- at their upper bound if finite,
- at zero if free.
Definition at line 372 of file spxbasis.cpp.
References NameSet::add(), SPxSolver::colId(), SPxBasis::Desc::colstat, SPxBasis::dualColStatus(), SPxBasis::dualRowStatus(), SPxBasis::Desc::dump(), MPSInput::ENDATA, LPRowBase< R >::EQUAL, MPSInput::field0(), MPSInput::field1(), MPSInput::field2(), MPSInput::field3(), LPRowBase< R >::GREATER_EQUAL, MPSInput::hasError(), soplex::infinity, LPRowBase< R >::LESS_EQUAL, SPxBasis::load(), SPxBasis::loadDesc(), MSG_DEBUG, SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), NameSet::number(), SPxBasis::Desc::P_FIXED, SPxBasis::Desc::P_FREE, SPxBasis::Desc::P_ON_LOWER, SPxBasis::Desc::P_ON_UPPER, MPSInput::readLine(), SPxBasis::REGULAR, NameSet::reMax(), SPxSolver::rowId(), SPxBasis::Desc::rowstat, MPSInput::section(), MPSInput::setSection(), SPxBasis::setStatus(), soplex::spx_alloc(), soplex::spx_free(), SPxBasis::status(), MPSInput::syntaxError(), SPxBasis::thedesc, SPxBasis::theLP, and NameSet::~NameSet().
Referenced by SPxBasis::coSolve(), and SPxSolver::readBasisFile().
resizes internal arrays.
When a new LP is loaded, the basis matrix and vectors become invalid and possibly also of the wrong dimension. Hence, after loading an LP, reDim() is called to reset all arrays etc. accoriding to the dimensions of the loaded LP.
Definition at line 26 of file spxchangebasis.cpp.
References SPxSolver::dim(), SPxBasis::factorized, SPxBasis::matrix, SPxBasis::matrixIsSetup, MSG_DEBUG, MSG_INFO3, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxBasis::Desc::reSize(), SPxBasis::spxout, SPxBasis::theBaseId, SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxSolver::clear(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::setOutstream(), and SPxBasis::setRep().
inform SPxBasis that column i had been removed.
Definition at line 314 of file spxchangebasis.cpp.
References SPxBasis::baseId(), SPxBasis::Desc::colStatus(), SPxSolver::COLUMN, SPxSolver::dim(), SPxBasis::factorized, SPxSolver::isBasic(), SPxBasis::matrix, SPxBasis::matrixIsSetup, SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::number(), SPxBasis::reDim(), SPxSolver::rep(), SPxSolver::ROW, SPxBasis::setStatus(), SPxBasis::status(), SPxBasis::thedesc, SPxBasis::theLP, and SPxSolver::vector().
Referenced by SPxBasis::coSolve(), and SPxSolver::doRemoveCol().
void removedCols |
( |
const int |
perm[] | ) |
|
inform SPxBasis that columns in perm with negative entry were removed.
Definition at line 352 of file spxchangebasis.cpp.
References SPxBasis::Desc::colStatus(), SPxSolver::COLUMN, SPxBasis::factorized, SPxSolver::isBasic(), SPxBasis::matrixIsSetup, SPxBasis::Desc::nCols(), SPxBasis::NO_PROBLEM, SPxBasis::reDim(), SPxSolver::rep(), SPxSolver::ROW, SPxBasis::setStatus(), SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::coSolve(), and SPxSolver::doRemoveCols().
inform SPxBasis that row i had been removed.
Definition at line 119 of file spxchangebasis.cpp.
References SPxBasis::baseId(), SPxSolver::COLUMN, SPxSolver::dim(), SPxBasis::factorized, SPxSolver::isBasic(), SPxBasis::matrix, SPxBasis::matrixIsSetup, MSG_DEBUG, SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxLPBase< R >::number(), SPxBasis::reDim(), SPxSolver::rep(), SPxSolver::ROW, SPxBasis::Desc::rowStatus(), SPxBasis::setStatus(), SPxBasis::status(), SPxBasis::thedesc, SPxBasis::theLP, and SPxSolver::vector().
Referenced by SPxBasis::coSolve(), and SPxSolver::doRemoveRow().
void removedRows |
( |
const int |
perm[] | ) |
|
inform SPxBasis that rows in perm with negative entry were removed.
Definition at line 165 of file spxchangebasis.cpp.
References SPxSolver::COLUMN, SPxBasis::factorized, SPxSolver::isBasic(), SPxBasis::matrixIsSetup, MSG_DEBUG, SPxBasis::NO_PROBLEM, SPxBasis::Desc::nRows(), SPxBasis::reDim(), SPxSolver::rep(), SPxSolver::ROW, SPxBasis::Desc::rowStatus(), SPxBasis::setStatus(), SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::coSolve(), and SPxSolver::doRemoveRows().
void restoreInitialBasis |
( |
| ) |
|
Restores initial basis.
This method changes the basis to that present just after loading the LP (see addedRows() and addedCols()). This may be necessary if a row or a column is changed, since then the current basis may become singular.
Create the initial slack basis descriptor and set up the basis matrix accordingly. This code has been adapted from SPxBasis::addedRows() and SPxBasis::addedCols().
Definition at line 415 of file spxchangebasis.cpp.
References SPxBasis::baseId(), SPxBasis::Desc::colStatus(), SPxSolver::COLUMN, SPxBasis::dualRowStatus(), SPxBasis::factorized, SPxBasis::loadMatrixVecs(), SPxBasis::matrixIsSetup, SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), soplex::primalColStatus(), SPxBasis::REGULAR, SPxSolver::rep(), SPxSolver::ROW, SPxBasis::Desc::rowStatus(), SPxBasis::setStatus(), SPxBasis::status(), SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxBasis::changedCol(), SPxBasis::changedElement(), SPxBasis::changedRow(), SPxBasis::load(), SPxBasis::loadDesc(), and SPxBasis::unLoad().
void setMaxUpdates |
( |
int |
maxUp | ) |
|
void setOutstream |
( |
SPxOut & |
newOutstream | ) |
|
Definition at line 872 of file spxbasis.h.
References SPxBasis::factorize(), SPxBasis::loadMatrixVecs(), SPxBasis::Desc::operator<<, SPxBasis::Desc::operator=(), SPxBasis::reDim(), SPxBasis::setRep(), SPxBasis::Desc::SPxBasis, SPxBasis::Desc::status(), Timer::USER_TIME, and SPxBasis::~SPxBasis().
Referenced by SPxBasis::load(), and SPxBasis::loadSolver().
sets descriptor representation according to loaded LP.
Definition at line 286 of file spxbasis.cpp.
References SPxBasis::Desc::colstat, SPxBasis::Desc::costat, SPxBasis::minStab, SPxBasis::reDim(), SPxSolver::rep(), SPxSolver::ROW, SPxBasis::Desc::rowstat, SPxBasis::Desc::stat, SPxBasis::thedesc, and SPxBasis::theLP.
Referenced by SPxSolver::initRep(), SPxBasis::load(), SPxBasis::loadDesc(), and SPxBasis::setOutstream().
sets basis SPxStatus to stat .
Definition at line 425 of file spxbasis.h.
References SPxBasis::invalidate(), MSG_DEBUG, and SPxBasis::NO_PROBLEM.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxBasis::factorize(), SPxBasis::readBasis(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), and SPxBasis::unLoad().
Definition at line 605 of file spxbasis.h.
References SPxBasis::factorize(), and SLinSolver::solveRight().
Referenced by SPxSolver::addedRows(), SPxSolver::factorize(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SPxSolver::init(), SPxSolver::leave(), SPxSolver::reinitializeVecs(), SPxSolver::terminate(), and SPxSolver::testVecs().
std::string statistics |
( |
| ) |
const |
returns current SPxStatus.
Definition at line 419 of file spxbasis.h.
References SPxBasis::thestatus.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_addRowReal(), SoPlex::_addRowsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeElementReal(), SoPlex::_changeLhsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_performOptIRStable(), SoPlex::_removeColReal(), SoPlex::_removeColsReal(), SoPlex::_removeRowReal(), SoPlex::_removeRowsReal(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_storeSolutionReal(), SPxBasis::addedCols(), SPxSolver::addedCols(), SPxBasis::addedRows(), SPxSolver::addedRows(), SPxBasis::change(), SPxSolver::changeCol(), SPxSolver::changeElement(), SPxSolver::changeLhs(), SPxSolver::changeLower(), SPxSolver::changeRange(), SPxSolver::changeRhs(), SPxSolver::changeRow(), SPxSolver::changeUpper(), SPxBasis::condition(), SPxSolver::doRemoveCol(), SPxSolver::doRemoveCols(), SPxSolver::doRemoveRow(), SPxSolver::doRemoveRows(), SPxBasis::dump(), SPxBasis::factorize(), SPxSolver::factorize(), SPxSolver::getDualfarkas(), SoPlex::getEstimatedCondition(), SoPlex::getExactCondition(), SPxSolver::getPrimalray(), SPxSolver::init(), SPxSolver::initRep(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxSolver::loadBasis(), SPxBasis::loadDesc(), SPxBasis::multBaseWith(), SPxBasis::multWithBase(), SPxBasis::readBasis(), SoPlex::readBasisFile(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), SoPlex::setBasis(), SPxSolver::setBasis(), SoPlexLegacy::solve(), SPxSolver::solve(), SPxSolver::status(), SPxSolver::terminate(), SPxSolver::testVecs(), and SPxBasis::writeBasis().
void writeBasis |
( |
std::ostream & |
os, |
|
|
const NameSet * |
rownames, |
|
|
const NameSet * |
colnames, |
|
|
const bool |
cpxFormat = false |
|
) |
| const |
|
virtual |
Write basis to os in MPS format. If rowNames and colNames are NULL , default names are used for the constraints and variables.
Definition at line 589 of file spxbasis.cpp.
References SPxBasis::Desc::colStatus(), SPxBasis::Desc::dump(), soplex::getColName(), soplex::getRowName(), soplex::infinity, SPxLPBase< R >::lower(), MSG_DEBUG, SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SPxBasis::Desc::P_FIXED, SPxBasis::Desc::P_FREE, SPxBasis::Desc::P_ON_LOWER, SPxBasis::Desc::P_ON_UPPER, LPRowBase< R >::RANGE, SPxBasis::Desc::rowStatus(), SPxBasis::status(), SPxBasis::thedesc, SPxBasis::theLP, and SPxLPBase< R >::upper().
Referenced by SPxBasis::coSolve(), and SPxSolver::writeBasisFile().
true iff factor = matrix .
Definition at line 357 of file spxbasis.h.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxBasis::change(), SPxBasis::factorize(), SPxSolver::init(), SPxBasis::invalidate(), SPxBasis::loadDesc(), SPxBasis::loadMatrixVecs(), SPxBasis::loadSolver(), SPxBasis::operator=(), SPxBasis::reDim(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), and SPxSolver::setType().
pointers to the vectors of the basis matrix.
Definition at line 347 of file spxbasis.h.
Referenced by SPxBasis::change(), SPxBasis::condition(), SPxBasis::dump(), SPxBasis::factorize(), SPxBasis::isConsistent(), SPxBasis::loadDesc(), SPxBasis::loadMatrixVecs(), SPxBasis::multBaseWith(), SPxBasis::multWithBase(), SPxBasis::operator=(), SPxBasis::printMatrix(), SPxBasis::printMatrixMTX(), SPxBasis::reDim(), SPxBasis::removedCol(), and SPxBasis::removedRow().
true iff the pointers in matrix are set up correctly.
Definition at line 349 of file spxbasis.h.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxBasis::change(), SPxBasis::condition(), SPxBasis::factorize(), SPxSolver::init(), SPxBasis::invalidate(), SPxBasis::loadDesc(), SPxBasis::loadMatrixVecs(), SPxBasis::multBaseWith(), SPxBasis::multWithBase(), SPxBasis::operator=(), SPxBasis::printMatrix(), SPxBasis::reDim(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), SPxSolver::setType(), and SPxSolver::solve().
the basis' Descriptor
Definition at line 407 of file spxbasis.h.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxBasis::condition(), SPxBasis::desc(), SPxBasis::dump(), SPxBasis::factorize(), SPxBasis::isConsistent(), SPxBasis::load(), SPxBasis::loadDesc(), SPxBasis::multBaseWith(), SPxBasis::multWithBase(), SPxBasis::operator=(), SPxBasis::readBasis(), SPxBasis::reDim(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), SPxBasis::setRep(), and SPxBasis::writeBasis().
the LP
For storing the basis matrix we keep two arrays: Array theBaseId contains the SPxIds of the basis vectors, and matrix the pointers to the vectors themselfes. Method loadMatrixVecs() serves for loading matrix according to the SPxIds stored in theBaseId. This method must be called whenever the vector pointers may have changed due to manipulations of the LP.
Definition at line 343 of file spxbasis.h.
Referenced by SPxBasis::addedCols(), SPxBasis::addedRows(), SPxSolver::clear(), SPxBasis::dualColStatus(), SPxBasis::dualRowStatus(), SPxBasis::dualStatus(), SPxBasis::dump(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxBasis::load(), SPxBasis::loadDesc(), SPxBasis::loadMatrixVecs(), SPxBasis::multBaseWith(), SPxBasis::multWithBase(), SPxBasis::operator=(), SPxSolver::operator=(), SPxSolver::read(), SPxBasis::readBasis(), SPxBasis::reDim(), SPxSolver::reLoad(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), SPxBasis::setRep(), SPxBasis::solver(), SPxSolver::SPxSolver(), and SPxBasis::writeBasis().
|