Scippy

SoPlex

Sequential object-oriented simPlex

SoPlexBase< R > Class Template Reference

#include <soplex.h>

Classes

struct  RowViolation
 
struct  RowViolationCompare
 
class  Settings
 class of parameter settings More...
 
class  Statistics
 

Public Member Functions

Construction and destruction
 SoPlexBase ()
 default constructor More...
 
SoPlexBase< R > & operator= (const SoPlexBase< R > &rhs)
 assignment operator More...
 
 SoPlexBase (const SoPlexBase< R > &rhs)
 copy constructor More...
 
virtual ~SoPlexBase ()
 destructor More...
 
Access to the real LP
int numRows () const
 returns number of rows More...
 
int numRowsReal () const
 
int numRowsRational () const
 
int numCols () const
 Templated function that returns number of columns. More...
 
int numColsReal () const
 
int numColsRational () const
 
int numNonzeros () const
 returns number of nonzeros More...
 
int numNonzerosRational () const
 
minAbsNonzeroReal () const
 returns smallest non-zero element in absolute value More...
 
maxAbsNonzeroReal () const
 returns biggest non-zero element in absolute value More...
 
coefReal (int row, int col) const
 returns (unscaled) coefficient More...
 
const SVectorBase< R > & rowVectorRealInternal (int i) const
 returns vector of row i, ignoring scaling More...
 
void getRowVectorReal (int i, DSVectorBase< R > &row) const
 gets vector of row i More...
 
const VectorBase< R > & rhsRealInternal () const
 returns right-hand side vector, ignoring scaling More...
 
void getRhsReal (VectorBase< R > &rhs) const
 gets right-hand side vector More...
 
rhsReal (int i) const
 returns right-hand side of row i More...
 
const VectorBase< R > & lhsRealInternal () const
 returns left-hand side vector, ignoring scaling More...
 
void getLhsReal (VectorBase< R > &lhs) const
 gets left-hand side vector More...
 
lhsReal (int i) const
 returns left-hand side of row i More...
 
LPRowBase< R >::Type rowTypeReal (int i) const
 returns inequality type of row i More...
 
const SVectorBase< R > & colVectorRealInternal (int i) const
 returns vector of col i, ignoring scaling More...
 
void getColVectorReal (int i, DSVectorBase< R > &col) const
 gets vector of col i More...
 
const VectorBase< R > & upperRealInternal () const
 returns upper bound vector More...
 
upperReal (int i) const
 returns upper bound of column i More...
 
void getUpperReal (VectorBase< R > &upper) const
 gets upper bound vector More...
 
const VectorBase< R > & lowerRealInternal () const
 returns lower bound vector More...
 
lowerReal (int i) const
 returns lower bound of column i More...
 
void getLowerReal (VectorBase< R > &lower) const
 gets lower bound vector More...
 
void getObjReal (VectorBase< R > &obj) const
 gets objective function vector More...
 
objReal (int i) const
 returns objective value of column i More...
 
const VectorBase< R > & maxObjRealInternal () const
 returns objective function vector after transformation to a maximization problem; since this is how it is stored internally, this is generally faster More...
 
maxObjReal (int i) const
 returns objective value of column i after transformation to a maximization problem; since this is how it is stored internally, this is generally faster More...
 
void getNdualNorms (int &nnormsRow, int &nnormsCol) const
 gets number of available dual norms More...
 
bool getDualNorms (int &nnormsRow, int &nnormsCol, R *norms) const
 gets steepest edge norms and returns false if they are not available More...
 
bool setDualNorms (int nnormsRow, int nnormsCol, R *norms)
 sets steepest edge norms and returns false if that's not possible More...
 
void setIntegralityInformation (int ncols, int *intInfo)
 pass integrality information about the variables to the solver More...
 
Access to the rational LP
Rational minAbsNonzeroRational () const
 returns smallest non-zero element in absolute value More...
 
Rational maxAbsNonzeroRational () const
 returns biggest non-zero element in absolute value More...
 
void getRowRational (int i, LPRowRational &lprow) const
 gets row i More...
 
void getRowsRational (int start, int end, LPRowSetRational &lprowset) const
 gets rows start, ..., end. More...
 
const SVectorRationalrowVectorRational (int i) const
 returns vector of row i More...
 
const VectorRationalrhsRational () const
 returns right-hand side vector More...
 
const RationalrhsRational (int i) const
 returns right-hand side of row i More...
 
const VectorRationallhsRational () const
 returns left-hand side vector More...
 
const RationallhsRational (int i) const
 returns left-hand side of row i More...
 
LPRowRational::Type rowTypeRational (int i) const
 returns inequality type of row i More...
 
void getColRational (int i, LPColRational &lpcol) const
 gets column i More...
 
void getColsRational (int start, int end, LPColSetRational &lpcolset) const
 gets columns start, ..., end More...
 
const SVectorRationalcolVectorRational (int i) const
 returns vector of column i More...
 
const VectorRationalupperRational () const
 returns upper bound vector More...
 
const RationalupperRational (int i) const
 returns upper bound of column i More...
 
const VectorRationallowerRational () const
 returns lower bound vector More...
 
const RationallowerRational (int i) const
 returns lower bound of column i More...
 
void getObjRational (VectorRational &obj) const
 gets objective function vector More...
 
void getObjRational (int i, Rational &obj) const
 gets objective value of column i More...
 
Rational objRational (int i) const
 returns objective value of column i More...
 
const VectorRationalmaxObjRational () const
 returns objective function vector after transformation to a maximization problem; since this is how it is stored internally, this is generally faster More...
 
const RationalmaxObjRational (int i) const
 returns objective value of column i after transformation to a maximization problem; since this is how it is stored internally, this is generally faster More...
 
Modification of the real LP
void addRowReal (const LPRowBase< R > &lprow)
 adds a single row More...
 
void addRowsReal (const LPRowSetBase< R > &lprowset)
 adds multiple rows More...
 
void addColReal (const LPColBase< R > &lpcol)
 adds a single column More...
 
void addColsReal (const LPColSetBase< R > &lpcolset)
 adds multiple columns More...
 
void changeRowReal (int i, const LPRowBase< R > &lprow)
 replaces row i with lprow More...
 
void changeLhsReal (const VectorBase< R > &lhs)
 changes left-hand side vector for constraints to lhs More...
 
void changeLhsReal (int i, const R &lhs)
 changes left-hand side of row i to lhs More...
 
void changeRhsReal (const VectorBase< R > &rhs)
 changes right-hand side vector to rhs More...
 
void changeRhsReal (int i, const R &rhs)
 changes right-hand side of row i to rhs More...
 
void changeRangeReal (const VectorBase< R > &lhs, const VectorBase< R > &rhs)
 changes left- and right-hand side vectors More...
 
void changeRangeReal (int i, const R &lhs, const R &rhs)
 changes left- and right-hand side of row i More...
 
void changeColReal (int i, const LPColReal &lpcol)
 replaces column i with lpcol More...
 
void changeLowerReal (const VectorBase< R > &lower)
 changes vector of lower bounds to lower More...
 
void changeLowerReal (int i, const R &lower)
 changes lower bound of column i to lower More...
 
void changeUpperReal (const VectorBase< R > &upper)
 changes vector of upper bounds to upper More...
 
void changeUpperReal (int i, const R &upper)
 changes i 'th upper bound to upper More...
 
void changeBoundsReal (const VectorBase< R > &lower, const VectorBase< R > &upper)
 changes vectors of column bounds to lower and upper More...
 
void changeBoundsReal (int i, const R &lower, const R &upper)
 changes bounds of column i to lower and upper More...
 
void changeObjReal (const VectorBase< R > &obj)
 changes objective function vector to obj More...
 
void changeObjReal (int i, const R &obj)
 changes objective coefficient of column i to obj More...
 
void changeElementReal (int i, int j, const R &val)
 changes matrix entry in row i and column j to val More...
 
void removeRowReal (int i)
 removes row i More...
 
void removeRowsReal (int perm[])
 removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where row i has been moved to; note that perm must point to an array of size at least numRows() More...
 
void removeRowsReal (int idx[], int n, int perm[]=0)
 remove all rows with indices in array idx of size n; an array perm of size numRows() may be passed as buffer memory More...
 
void removeRowRangeReal (int start, int end, int perm[]=0)
 removes rows start to end including both; an array perm of size numRows() may be passed as buffer memory More...
 
void removeColReal (int i)
 removes column i More...
 
void removeColsReal (int perm[])
 removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where column i has been moved to; note that perm must point to an array of size at least numColsReal() More...
 
void removeColsReal (int idx[], int n, int perm[]=0)
 remove all columns with indices in array idx of size n; an array perm of size numColsReal() may be passed as buffer memory More...
 
void removeColRangeReal (int start, int end, int perm[]=0)
 removes columns start to end including both; an array perm of size numColsReal() may be passed as buffer memory More...
 
void clearLPReal ()
 clears the LP More...
 
void syncLPReal ()
 synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, if sync mode is manual More...
 
Modification of the rational LP
void addRowRational (const LPRowRational &lprow)
 adds a single row More...
 
void addRowRational (const mpq_t *lhs, const mpq_t *rowValues, const int *rowIndices, const int rowSize, const mpq_t *rhs)
 adds a single row (GMP only method) More...
 
void addRowsRational (const mpq_t *lhs, const mpq_t *rowValues, const int *rowIndices, const int *rowStarts, const int *rowLengths, const int numRows, const int numValues, const mpq_t *rhs)
 adds a set of rows (GMP only method) More...
 
void addRowsRational (const LPRowSetRational &lprowset)
 adds multiple rows More...
 
void addColRational (const LPColRational &lpcol)
 adds a single column More...
 
void addColRational (const mpq_t *obj, const mpq_t *lower, const mpq_t *colValues, const int *colIndices, const int colSize, const mpq_t *upper)
 adds a single column (GMP only method) More...
 
void addColsRational (const mpq_t *obj, const mpq_t *lower, const mpq_t *colValues, const int *colIndices, const int *colStarts, const int *colLengths, const int numCols, const int numValues, const mpq_t *upper)
 adds a set of columns (GMP only method) More...
 
void addColsRational (const LPColSetRational &lpcolset)
 adds multiple columns More...
 
void changeRowRational (int i, const LPRowRational &lprow)
 replaces row i with lprow More...
 
void changeLhsRational (const VectorRational &lhs)
 changes left-hand side vector for constraints to lhs More...
 
void changeLhsRational (int i, const Rational &lhs)
 changes left-hand side of row i to lhs More...
 
void changeLhsRational (int i, const mpq_t *lhs)
 changes left-hand side of row i to lhs (GMP only method) More...
 
void changeRhsRational (const VectorRational &rhs)
 changes right-hand side vector to rhs More...
 
void changeRhsRational (const mpq_t *rhs, int rhsSize)
 changes right-hand side vector to rhs (GMP only method) More...
 
void changeRhsRational (int i, const Rational &rhs)
 changes right-hand side of row i to rhs More...
 
void changeRangeRational (const VectorRational &lhs, const VectorRational &rhs)
 changes left- and right-hand side vectors More...
 
void changeRangeRational (int i, const Rational &lhs, const Rational &rhs)
 changes left- and right-hand side of row i More...
 
void changeRangeRational (int i, const mpq_t *lhs, const mpq_t *rhs)
 changes left- and right-hand side of row i (GMP only method) More...
 
void changeColRational (int i, const LPColRational &lpcol)
 replaces column i with lpcol More...
 
void changeLowerRational (const VectorRational &lower)
 changes vector of lower bounds to lower More...
 
void changeLowerRational (int i, const Rational &lower)
 changes lower bound of column i to lower More...
 
void changeLowerRational (int i, const mpq_t *lower)
 changes lower bound of column i to lower (GMP only method) More...
 
void changeUpperRational (const VectorRational &upper)
 changes vector of upper bounds to upper More...
 
void changeUpperRational (int i, const Rational &upper)
 changes i 'th upper bound to upper More...
 
void changeUpperRational (int i, const mpq_t *upper)
 changes upper bound of column i to upper (GMP only method) More...
 
void changeBoundsRational (const VectorRational &lower, const VectorRational &upper)
 changes vectors of column bounds to lower and upper More...
 
void changeBoundsRational (int i, const Rational &lower, const Rational &upper)
 changes bounds of column i to lower and upper More...
 
void changeBoundsRational (int i, const mpq_t *lower, const mpq_t *upper)
 changes bounds of column i to lower and upper (GMP only method) More...
 
void changeObjRational (const VectorRational &obj)
 changes objective function vector to obj More...
 
void changeObjRational (int i, const Rational &obj)
 changes objective coefficient of column i to obj More...
 
void changeObjRational (int i, const mpq_t *obj)
 changes objective coefficient of column i to obj (GMP only method) More...
 
void changeElementRational (int i, int j, const Rational &val)
 changes matrix entry in row i and column j to val More...
 
void changeElementRational (int i, int j, const mpq_t *val)
 changes matrix entry in row i and column j to val (GMP only method) More...
 
void removeRowRational (int i)
 removes row i More...
 
void removeRowsRational (int perm[])
 removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where row i has been moved to; note that perm must point to an array of size at least numRowsRational() More...
 
void removeRowsRational (int idx[], int n, int perm[]=0)
 remove all rows with indices in array idx of size n; an array perm of size numRowsRational() may be passed as buffer memory More...
 
void removeRowRangeRational (int start, int end, int perm[]=0)
 removes rows start to end including both; an array perm of size numRowsRational() may be passed as buffer memory More...
 
void removeColRational (int i)
 removes column i More...
 
void removeColsRational (int perm[])
 removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where column i has been moved to; note that perm must point to an array of size at least numColsRational() More...
 
void removeColsRational (int idx[], int n, int perm[]=0)
 remove all columns with indices in array idx of size n; an array perm of size numColsRational() may be passed as buffer memory More...
 
void removeColRangeRational (int start, int end, int perm[]=0)
 removes columns start to end including both; an array perm of size numColsRational() may be passed as buffer memory More...
 
void clearLPRational ()
 clears the LP More...
 
void syncLPRational ()
 synchronizes rational LP with real LP, i.e., copies real LP to rational LP, if sync mode is manual More...
 
Solving and general solution query
SPxSolverBase< R >::Status optimize (volatile bool *interrupt=NULL)
 optimize the given LP More...
 
SPxSolverBase< R >::Status solve (volatile bool *interrupt=NULL)
 
SPxSolverBase< R >::Status status () const
 returns the current solver status More...
 
bool isPrimalFeasible () const
 is stored primal solution feasible? More...
 
bool hasSol () const
 is a solution available (not neccessarily feasible)? More...
 
bool hasPrimal () const
 deprecated: use hasSol() instead More...
 
bool hasDual () const
 deprecated: use hasSol() instead More...
 
bool hasPrimalRay () const
 is a primal unbounded ray available? More...
 
bool isDualFeasible () const
 is stored dual solution feasible? More...
 
bool hasDualFarkas () const
 is Farkas proof of infeasibility available? More...
 
bool ignoreUnscaledViolations ()
 sets the status to OPTIMAL in case the LP has been solved with unscaled violations More...
 
Query for the real solution data
objValueReal ()
 returns the objective value if a primal solution is available More...
 
bool getPrimal (VectorBase< R > &vector)
 gets the primal solution vector if available; returns true on success More...
 
bool getPrimalReal (R *p_vector, int size)
 
bool getPrimalRational (VectorRational &vector)
 
bool getSlacksReal (VectorBase< R > &vector)
 gets the vector of slack values if available; returns true on success More...
 
bool getSlacksReal (R *p_vector, int dim)
 
bool getPrimalRay (VectorBase< R > &vector)
 gets the primal ray if available; returns true on success More...
 
bool getPrimalRayReal (R *vector, int dim)
 
bool getPrimalRayRational (VectorRational &vector)
 
bool getDual (VectorBase< R > &vector)
 gets the dual solution vector if available; returns true on success More...
 
bool getDualReal (R *p_vector, int dim)
 
bool getDualRational (VectorRational &vector)
 
bool getRedCost (VectorBase< R > &vector)
 gets the vector of reduced cost values if available; returns true on success More...
 
bool getRedCostReal (R *vector, int dim)
 
bool getRedCostRational (VectorRational &vector)
 
bool getDualFarkas (VectorBase< R > &vector)
 gets the Farkas proof if available; returns true on success More...
 
bool getDualFarkasReal (R *vector, int dim)
 
bool getDualFarkasRational (VectorRational &vector)
 
bool getBoundViolation (R &maxviol, R &sumviol)
 gets violation of bounds; returns true on success More...
 
bool getBoundViolationRational (Rational &maxviol, Rational &sumviol)
 
bool getRowViolation (R &maxviol, R &sumviol)
 gets violation of constraints; returns true on success More...
 
bool getRowViolationRational (Rational &maxviol, Rational &sumviol)
 
bool getRedCostViolation (R &maxviol, R &sumviol)
 gets violation of reduced costs; returns true on success More...
 
bool getRedCostViolationRational (Rational &maxviol, Rational &sumviol)
 
bool getDualViolation (R &maxviol, R &sumviol)
 gets violation of dual multipliers; returns true on success More...
 
bool getDualViolationRational (Rational &maxviol, Rational &sumviol)
 
Query for the rational solution data
Rational objValueRational ()
 returns the objective value if a primal solution is available More...
 
bool getSlacksRational (VectorRational &vector)
 gets the vector of slack values if available; returns true on success More...
 
bool getPrimalRational (mpq_t *vector, const int size)
 gets the primal solution vector if available; returns true on success (GMP only method) More...
 
bool getSlacksRational (mpq_t *vector, const int size)
 gets the vector of slack values if available; returns true on success (GMP only method) More...
 
bool getPrimalRayRational (mpq_t *vector, const int size)
 gets the primal ray if LP is unbounded; returns true on success (GMP only method) More...
 
bool getDualRational (mpq_t *vector, const int size)
 gets the dual solution vector if available; returns true on success (GMP only method) More...
 
bool getRedCostRational (mpq_t *vector, const int size)
 gets the vector of reduced cost values if available; returns true on success (GMP only method) More...
 
bool getDualFarkasRational (mpq_t *vector, const int size)
 gets the Farkas proof if LP is infeasible; returns true on success (GMP only method) More...
 
int totalSizePrimalRational (const int base=2)
 get size of primal solution More...
 
int totalSizeDualRational (const int base=2)
 get size of dual solution More...
 
int dlcmSizePrimalRational (const int base=2)
 get size of least common multiple of denominators in primal solution More...
 
int dlcmSizeDualRational (const int base=2)
 get size of least common multiple of denominators in dual solution More...
 
int dmaxSizePrimalRational (const int base=2)
 get size of largest denominator in primal solution More...
 
int dmaxSizeDualRational (const int base=2)
 get size of largest denominator in dual solution More...
 
Access and modification of basis information
bool hasBasis () const
 is an advanced starting basis available? More...
 
SPxBasisBase< R >::SPxStatus basisStatus () const
 returns the current basis status More...
 
SPxSolverBase< R >::VarStatus basisRowStatus (int row) const
 returns basis status for a single row More...
 
SPxSolverBase< R >::VarStatus basisColStatus (int col) const
 returns basis status for a single column More...
 
void getBasis (typename SPxSolverBase< R >::VarStatus rows[], typename SPxSolverBase< R >::VarStatus cols[]) const
 gets current basis via arrays of statuses More...
 
void getBasisInd (int *bind) const
 gets the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m More...
 
bool getBasisMetric (R &metric, int type=0)
 
bool getEstimatedCondition (R &condition)
 computes an estimated condition number for the current basis matrix using the power method; returns true on success More...
 
bool getExactCondition (R &condition)
 computes the exact condition number for the current basis matrix using the power method; returns true on success More...
 
bool getBasisInverseRowReal (int r, R *coef, int *inds=NULL, int *ninds=NULL, bool unscale=true)
 computes row r of basis inverse; returns true on success More...
 
bool getBasisInverseColReal (int c, R *coef, int *inds=NULL, int *ninds=NULL, bool unscale=true)
 computes column c of basis inverse; returns true on success More...
 
bool getBasisInverseTimesVecReal (R *rhs, R *sol, bool unscale=true)
 computes dense solution of basis matrix B * sol = rhs; returns true on success More...
 
bool multBasis (R *vec, bool unscale=true)
 multiply with basis matrix; B * vec (inplace) More...
 
bool multBasisTranspose (R *vec, bool unscale=true)
 multiply with transpose of basis matrix; vec * B^T (inplace) More...
 
bool computeBasisInverseRational ()
 compute rational basis inverse; returns true on success More...
 
bool getBasisIndRational (DataArray< int > &bind)
 gets an array of indices for the columns of the rational basis matrix; bind[i] >= 0 means that the i-th column of the basis matrix contains variable bind[i]; bind[i] < 0 means that the i-th column of the basis matrix contains the slack variable for row -bind[i]-1; performs rational factorization if not available; returns true on success More...
 
bool getBasisInverseRowRational (const int r, SSVectorRational &vec)
 computes row r of basis inverse; performs rational factorization if not available; returns true on success More...
 
bool getBasisInverseColRational (const int c, SSVectorRational &vec)
 computes column c of basis inverse; performs rational factorization if not available; returns true on success More...
 
bool getBasisInverseTimesVecRational (const SVectorRational &rhs, SSVectorRational &sol)
 computes solution of basis matrix B * sol = rhs; performs rational factorization if not available; returns true on success More...
 
void setBasis (const typename SPxSolverBase< R >::VarStatus rows[], const typename SPxSolverBase< R >::VarStatus cols[])
 sets starting basis via arrays of statuses More...
 
void clearBasis ()
 clears starting basis More...
 
Statistical information
int numIterations () const
 number of iterations since last call to solve More...
 
Real solveTime () const
 time spent in last call to solve More...
 
std::string statisticString () const
 statistical information in form of a string More...
 
const char * getStarterName ()
 name of starter More...
 
const char * getSimplifierName ()
 name of simplifier More...
 
const char * getScalerName ()
 name of scaling method More...
 
const char * getPricerName ()
 name of currently loaded pricer More...
 
const char * getRatiotesterName ()
 name of currently loaded ratiotester More...
 
File I/O
bool readFile (const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0)
 reads LP file in LP or MPS format according to READMODE parameter; gets row names, column names, and integer variables if desired; returns true on success More...
 
bool writeFile (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0, const bool unscale=true) const
 Templated write function Real writes real LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and colNames are NULL, default names are used; if intVars is not NULL, the variables contained in it are marked as integer; returns true on success Rational writes rational LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and colNames are NULL, default names are used; if intVars is not NULL, the variables contained in it are marked as integer; returns true on success. More...
 
bool writeFileRational (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0) const
 
bool writeFileReal (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0, const bool unscale=true) const
 
bool writeDualFileReal (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0) const
 writes the dual of the real LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and colNames are NULL, default names are used; if intVars is not NULL, the variables contained in it are marked as integer; returns true on success More...
 
bool readBasisFile (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0)
 reads basis information from filename and returns true on success; if rowNames and colNames are NULL, default names are assumed; returns true on success More...
 
bool writeBasisFile (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const bool cpxFormat=false) const
 writes basis information to filename; if rowNames and colNames are NULL, default names are used; returns true on success More...
 
void writeStateReal (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const bool cpxFormat=false) const
 writes internal LP, basis information, and parameter settings; if rowNames and colNames are NULL, default names are used More...
 
void writeStateRational (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const bool cpxFormat=false) const
 writes internal LP, basis information, and parameter settings; if rowNames and colNames are NULL, default names are used More...
 
Statistics
void setTimings (const Timer::TYPE ttype)
 set statistic timers to a certain type More...
 
void printSolutionStatistics (std::ostream &os)
 prints solution statistics More...
 
void printSolvingStatistics (std::ostream &os)
 prints statistics on solving process More...
 
void printShortStatistics (std::ostream &os)
 prints short statistics More...
 
void printStatistics (std::ostream &os)
 prints complete statistics More...
 
void printStatus (std::ostream &os, typename SPxSolverBase< R >::Status status)
 prints status More...
 

Private Member Functions

Constant helper methods
void _ensureDSVectorRationalMemory (DSVectorRational &vec, const int newmax) const
 extends sparse vector to hold newmax entries if and only if it holds no more free entries More...
 
void _idxToPerm (int *idx, int idxSize, int *perm, int permSize) const
 creates a permutation for removing rows/columns from an array of indices More...
 
void _rangeToPerm (int start, int end, int *perm, int permSize) const
 creates a permutation for removing rows/columns from a range of indices More...
 
bool _isConsistent () const
 checks consistency More...
 
bool _isSolveStopped (bool &stoppedTime, bool &stoppedIter) const
 should solving process be stopped? More...
 
RangeType _rangeTypeReal (const R &lower, const R &upper) const
 determines RangeType from real bounds More...
 
RangeType _rangeTypeRational (const Rational &lower, const Rational &upper) const
 determines RangeType from rational bounds More...
 
RangeType _switchRangeType (const RangeType &rangeType) const
 switches RANGETYPE_LOWER to RANGETYPE_UPPER and vice versa More...
 
bool _lowerFinite (const RangeType &rangeType) const
 checks whether RangeType corresponds to finite lower bound More...
 
bool _upperFinite (const RangeType &rangeType) const
 checks whether RangeType corresponds to finite upper bound More...
 
Non-constant helper methods
void _addRowReal (const LPRowBase< R > &lprow)
 adds a single row to the real LP and adjusts basis More...
 
void _addRowReal (R lhs, const SVectorBase< R > &lprow, R rhs)
 adds a single row to the real LP and adjusts basis More...
 
void _addRowsReal (const LPRowSetBase< R > &lprowset)
 adds multiple rows to the real LP and adjusts basis More...
 
void _addColReal (const LPColReal &lpcol)
 adds a single column to the real LP and adjusts basis More...
 
void _addColReal (R obj, R lower, const SVectorBase< R > &lpcol, R upper)
 adds a single column to the real LP and adjusts basis More...
 
void _addColsReal (const LPColSetReal &lpcolset)
 adds multiple columns to the real LP and adjusts basis More...
 
void _changeRowReal (int i, const LPRowBase< R > &lprow)
 replaces row i with lprow and adjusts basis More...
 
void _changeLhsReal (const VectorBase< R > &lhs)
 changes left-hand side vector for constraints to lhs and adjusts basis More...
 
void _changeLhsReal (int i, const R &lhs)
 changes left-hand side of row i to lhs and adjusts basis More...
 
void _changeRhsReal (const VectorBase< R > &rhs)
 changes right-hand side vector to rhs and adjusts basis More...
 
void _changeRhsReal (int i, const R &rhs)
 changes right-hand side of row i to rhs and adjusts basis More...
 
void _changeRangeReal (const VectorBase< R > &lhs, const VectorBase< R > &rhs)
 changes left- and right-hand side vectors and adjusts basis More...
 
void _changeRangeReal (int i, const R &lhs, const R &rhs)
 changes left- and right-hand side of row i and adjusts basis More...
 
void _changeColReal (int i, const LPColReal &lpcol)
 replaces column i with lpcol and adjusts basis More...
 
void _changeLowerReal (const VectorBase< R > &lower)
 changes vector of lower bounds to lower and adjusts basis More...
 
void _changeLowerReal (int i, const R &lower)
 changes lower bound of column i to lower and adjusts basis More...
 
void _changeUpperReal (const VectorBase< R > &upper)
 changes vector of upper bounds to upper and adjusts basis More...
 
void _changeUpperReal (int i, const R &upper)
 changes i 'th upper bound to upper and adjusts basis More...
 
void _changeBoundsReal (const VectorBase< R > &lower, const VectorBase< R > &upper)
 changes vectors of column bounds to lower and upper and adjusts basis More...
 
void _changeBoundsReal (int i, const R &lower, const R &upper)
 changes bounds of column i to lower and upper and adjusts basis More...
 
void _changeElementReal (int i, int j, const R &val)
 changes matrix entry in row i and column j to val and adjusts basis More...
 
void _removeRowReal (int i)
 removes row i and adjusts basis More...
 
void _removeRowsReal (int perm[])
 removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where row i has been moved to; note that perm must point to an array of size at least numRows() More...
 
void _removeRowsReal (int idx[], int n, int perm[])
 remove all rows with indices in array idx of size n; an array perm of size numRows() may be passed as buffer memory More...
 
void _removeRowRangeReal (int start, int end, int perm[])
 removes rows start to end including both; an array perm of size numRows() may be passed as buffer memory More...
 
void _removeColReal (int i)
 removes column i More...
 
void _removeColsReal (int perm[])
 removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where column i has been moved to; note that perm must point to an array of size at least numColsReal() More...
 
void _removeColsReal (int idx[], int n, int perm[])
 remove all columns with indices in array idx of size n; an array perm of size numColsReal() may be passed as buffer memory More...
 
void _removeColRangeReal (int start, int end, int perm[])
 removes columns start to end including both; an array perm of size numColsReal() may be passed as buffer memory More...
 
void _invalidateSolution ()
 invalidates solution More...
 
void _enableSimplifierAndScaler ()
 enables simplifier and scaler according to current parameters More...
 
void _disableSimplifierAndScaler ()
 disables simplifier and scaler More...
 
void _ensureRationalLP ()
 ensures that the rational LP is available; performs no sync More...
 
void _ensureRealLPLoaded ()
 ensures that the real LP and the basis are loaded in the solver; performs no sync More...
 
void _solveRealLPAndRecordStatistics (volatile bool *interrupt=NULL)
 call floating-point solver and update statistics on iterations etc. More...
 
bool _readFileReal (const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0)
 reads real LP in LP or MPS format from file and returns true on success; gets row names, column names, and integer variables if desired More...
 
bool _readFileRational (const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0)
 reads rational LP in LP or MPS format from file and returns true on success; gets row names, column names, and integer variables if desired More...
 
void _completeRangeTypesRational ()
 completes range type arrays after adding columns and/or rows More...
 
void _recomputeRangeTypesReal ()
 recomputes range types from scratch using real LP More...
 
void _recomputeRangeTypesRational ()
 recomputes range types from scratch using rational LP More...
 
void _syncLPReal (bool time=true)
 synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, without looking at the sync mode More...
 
void _syncLPRational (bool time=true)
 synchronizes rational LP with real LP, i.e., copies real LP to rational LP, without looking at the sync mode More...
 
void _syncRealSolution ()
 synchronizes rational solution with real solution, i.e., copies (rounded) rational solution to real solution More...
 
void _syncRationalSolution ()
 synchronizes real solution with rational solution, i.e., copies real solution to rational solution More...
 
const UnitVectorRational_unitVectorRational (const int i)
 returns pointer to a constant unit vector available until destruction of the SoPlexBase class More...
 
bool _parseSettingsLine (char *line, const int lineNumber)
 parses one line in a settings file and returns true on success; note that the string is modified More...
 
void _performOptIRStable (SolRational &sol, bool acceptUnbounded, bool acceptInfeasible, int minRounds, bool &primalFeasible, bool &dualFeasible, bool &infeasible, bool &unbounded, bool &stoppedTime, bool &stoppedIter, bool &error)
 solves current problem with iterative refinement and recovery mechanism More...
 
void _performUnboundedIRStable (SolRational &sol, bool &hasUnboundedRay, bool &stoppedTime, bool &stoppedIter, bool &error)
 performs iterative refinement on the auxiliary problem for testing unboundedness More...
 
void _performFeasIRStable (SolRational &sol, bool &withDualFarkas, bool &stoppedTime, bool &stoppedIter, bool &error)
 performs iterative refinement on the auxiliary problem for testing feasibility More...
 
void _lift ()
 reduces matrix coefficient in absolute value by the lifting procedure of Thiele et al. 2013 More...
 
void _project (SolRational &sol)
 undoes lifting More...
 
void _storeBasis ()
 store basis More...
 
void _restoreBasis ()
 restore basis More...
 
void _storeLPReal ()
 stores objective, bounds, and sides of real LP More...
 
void _restoreLPReal ()
 restores objective, bounds, and sides of real LP More...
 
void _transformEquality ()
 introduces slack variables to transform inequality constraints into equations for both rational and real LP, which should be in sync More...
 
void _untransformEquality (SolRational &sol)
 undoes transformation to equality form More...
 
void _transformUnbounded ()
 transforms LP to unboundedness problem by moving the objective function to the constraints, changing right-hand side and bounds to zero, and adding an auxiliary variable for the decrease in the objective function More...
 
void _untransformUnbounded (SolRational &sol, bool unbounded)
 undoes transformation to unboundedness problem More...
 
void _transformFeasibility ()
 transforms LP to feasibility problem by removing the objective function, shifting variables, and homogenizing the right-hand side More...
 
void _untransformFeasibility (SolRational &sol, bool infeasible)
 undoes transformation to feasibility problem More...
 
void _computeInfeasBox (SolRational &sol, bool transformed)
 
SPxSolverBase< R >::Status _solveRealForRational (bool fromscratch, VectorBase< R > &primal, VectorBase< R > &dual, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusRows, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusCols)
 solves real LP during iterative refinement More...
 
SPxSolverBase< R >::Status _solveRealStable (bool acceptUnbounded, bool acceptInfeasible, VectorBase< R > &primal, VectorBase< R > &dual, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusRows, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusCols, const bool forceNoSimplifier=false)
 solves real LP with recovery mechanism More...
 
void _computeBasisInverseRational ()
 computes rational inverse of basis matrix as defined by _rationalLUSolverBind More...
 
void _factorizeColumnRational (SolRational &sol, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusRows, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusCols, bool &stoppedTime, bool &stoppedIter, bool &error, bool &optimal)
 factorizes rational basis matrix in column representation More...
 
bool _reconstructSolutionRational (SolRational &sol, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusRows, DataArray< typename SPxSolverBase< R >::VarStatus > &basisStatusCols, const Rational &denomBoundSquared)
 attempts rational reconstruction of primal-dual solution More...
 
Private solving methods implemented in solvereal.cpp
void _optimize (volatile bool *interrupt=NULL)
 solves the templated LP More...
 
void _optimizeRational (volatile bool *interrupt=NULL)
 temporary fix for Rational More...
 
void _evaluateSolutionReal (typename SPxSimplifier< R >::Result simplificationStatus)
 checks result of the solving process and solves again without preprocessing if necessary More...
 
void _preprocessAndSolveReal (bool applyPreprocessing, volatile bool *interrupt=NULL)
 solves real LP with/without preprocessing More...
 
void _resolveWithoutPreprocessing (typename SPxSimplifier< R >::Result simplificationStatus)
 loads original problem into solver and solves again after it has been solved to optimality with preprocessing More...
 
void _verifySolutionReal ()
 verify computed solution and resolve if necessary More...
 
void _storeSolutionReal (bool verify=true)
 stores solution of the real LP; before calling this, the real LP must be loaded in the solver and solved (again) More...
 
void _storeSolutionRealFromPresol ()
 stores solution from the simplifier because problem vanished in presolving step More...
 
void _unscaleSolutionReal (SPxLPBase< R > &LP, bool persistent=true)
 unscales stored solution to remove internal or external scaling of LP More...
 
void _loadRealLP (bool initBasis)
 load original LP and possibly setup a slack basis More...
 
void _checkScaling (SPxLPBase< R > *origLP) const
 check scaling of LP More...
 
void _checkBasisScaling ()
 check correctness of (un)scaled basis matrix operations More...
 
bool _reapplyPersistentScaling () const
 check whether persistent scaling is supposed to be reapplied again after unscaling More...
 
void _solveDecompositionDualSimplex ()
 solves LP using the decomposition based dual simplex More...
 
void _createDecompReducedAndComplementaryProblems ()
 creating copies of the original problem that will be manipulated to form the reduced and complementary problems More...
 
void _formDecompReducedProblem (bool &stop)
 forms the reduced problem More...
 
void _solveDecompReducedProblem ()
 solves the reduced problem More...
 
void _formDecompComplementaryProblem ()
 forms the complementary problem More...
 
void _decompSimplifyAndSolve (SPxSolverBase< R > &solver, SLUFactor< R > &sluFactor, bool fromScratch, bool applyPreprocessing)
 simplifies the problem and solves More...
 
void _decompResolveWithoutPreprocessing (SPxSolverBase< R > &solver, SLUFactor< R > &sluFactor, typename SPxSimplifier< R >::Result result)
 loads original problem into solver and solves again after it has been solved to optimality with preprocessing More...
 
void _getZeroDualMultiplierIndices (VectorBase< R > feasVector, int *nonposind, int *colsforremoval, int *nnonposind, bool &stop)
 identifies the columns of the row-form basis that correspond to rows with zero dual multipliers. More...
 
void _getCompatibleColumns (VectorBase< R > feasVector, int *nonposind, int *compatind, int *rowsforremoval, int *colsforremoval, int nnonposind, int *ncompatind, bool formRedProb, bool &stop)
 retrieves the compatible columns from the constraint matrix More...
 
void _computeReducedProbObjCoeff (bool &stop)
 computes the reduced problem objective coefficients More...
 
void _getCompatibleBoundCons (LPRowSetBase< R > &boundcons, int *compatboundcons, int *nonposind, int *ncompatboundcons, int nnonposind, bool &stop)
 computes the compatible bound constraints and adds them to the reduced problem More...
 
void _getRowsForRemovalComplementaryProblem (int *nonposind, int *bind, int *rowsforremoval, int *nrowsforremoval, int nnonposind)
 computes the rows to remove from the complementary problem More...
 
void _deleteAndUpdateRowsComplementaryProblem (SPxRowId rangedRowIds[], int &naddedrows)
 removing rows from the complementary problem. More...
 
void _evaluateSolutionDecomp (SPxSolverBase< R > &solver, SLUFactor< R > &sluFactor, typename SPxSimplifier< R >::Result result)
 evaluates the solution of the reduced problem for the DBDS More...
 
void _updateDecompReducedProblem (R objVal, VectorBase< R > dualVector, VectorBase< R > redcostVector, VectorBase< R > compPrimalVector, VectorBase< R > compDualVector)
 update the reduced problem with additional columns and rows More...
 
void _updateDecompReducedProblemViol (bool allrows)
 update the reduced problem with additional columns and rows based upon the violated original bounds and rows More...
 
void _findViolatedRows (R compObjValue, Array< RowViolation > &violatedrows, int &nviolatedrows)
 builds the update rows with those violated in the complmentary problem More...
 
void _updateDecompComplementaryDualProblem (bool origObj)
 update the dual complementary problem with additional columns and rows More...
 
void _updateDecompComplementaryPrimalProblem (bool origObj)
 update the primal complementary problem with additional columns and rows More...
 
void _checkOriginalProblemOptimality (VectorBase< R > primalVector, bool printViol)
 checking the optimality of the original problem. More...
 
void _updateComplementaryDualSlackColCoeff ()
 updating the slack column coefficients to adjust for equality constraints More...
 
void _updateComplementaryPrimalSlackColCoeff ()
 updating the slack column coefficients to adjust for equality constraints More...
 
void _removeComplementaryDualFixedPrimalVars (int *currFixedVars)
 removing the dual columns related to the fixed variables More...
 
void _identifyComplementaryDualFixedPrimalVars (int *currFixedVars)
 removing the dual columns related to the fixed variables More...
 
void _updateComplementaryDualFixedPrimalVars (int *currFixedVars)
 updating the dual columns related to the fixed primal variables. More...
 
void _identifyComplementaryPrimalFixedPrimalVars (int *currFixedVars)
 removing the dual columns related to the fixed variables More...
 
void _updateComplementaryPrimalFixedPrimalVars (int *currFixedVars)
 updating the dual columns related to the fixed primal variables. More...
 
void _setComplementaryDualOriginalObjective ()
 updating the complementary dual problem with the original objective function More...
 
void _setComplementaryPrimalOriginalObjective ()
 updating the complementary primal problem with the original objective function More...
 
int getOrigVarFixedDirection (int colNum)
 determining which bound the primal variables will be fixed to. More...
 
bool checkBasisDualFeasibility (VectorBase< R > feasVec)
 checks the dual feasibility of the current basis More...
 
DualSign getExpectedDualVariableSign (int rowNumber)
 returns the expected sign of the dual variables for the reduced problem More...
 
DualSign getOrigProbDualVariableSign (int rowNumber)
 returns the expected sign of the dual variables for the original problem More...
 
void printDecompDisplayLine (SPxSolverBase< R > &solver, const SPxOut::Verbosity origVerb, bool force, bool forceHead)
 prints a display line of the flying table for the DBDS More...
 
void getOriginalProblemStatistics ()
 stores the problem statistics of the original problem More...
 
void printOriginalProblemStatistics (std::ostream &os)
 stores the problem statistics of the original problem More...
 
getCompSlackVarCoeff (int primalRowNum)
 gets the coefficient of the slack variable in the primal complementary problem More...
 
bool getDecompBoundViolation (R &maxviol, R &sumviol)
 gets violation of bounds; returns true on success More...
 
bool getDecompRowViolation (R &maxviol, R &sumviol)
 gets violation of constraints; returns true on success More...
 
bool decompTerminate (R timeLimit)
 function call to terminate the decomposition simplex More...
 
void _writeOriginalProblemBasis (const char *filename, NameSet *rowNames, NameSet *colNames, bool cpxFormat)
 function to build a basis for the original problem as given by the solution to the reduced problem More...
 
void getOriginalProblemBasisRowStatus (DataArray< int > &degenerateRowNums, DataArray< typename SPxSolverBase< R >::VarStatus > &degenerateRowStatus, int &nDegenerateRows, int &nNonBasicRows)
 function to retrieve the original problem row basis status from the reduced and complementary problems More...
 
void getOriginalProblemBasisColStatus (int &nNonBasicCols)
 function to retrieve the column status for the original problem basis from the reduced and complementary problems More...
 

Private Attributes

Statistics on solving process
Statistics_statistics
 statistics since last call to solveReal() or solveRational() More...
 
Parameter settings
Settings_currentSettings
 
Rational _rationalPosInfty
 
Rational _rationalNegInfty
 
Rational _rationalFeastol
 
Rational _rationalOpttol
 
Rational _rationalMaxscaleincr
 
Data for the real LP
SPxSolverBase< R > _solver
 
SLUFactor< R > _slufactor
 
SPxMainSM< R > _simplifierMainSM
 
Presol< R > _simplifierPaPILO
 
SPxEquiliSC< R > _scalerUniequi
 
SPxEquiliSC< R > _scalerBiequi
 
SPxGeometSC< R > _scalerGeo1
 
SPxGeometSC< R > _scalerGeo8
 
SPxGeometSC< R > _scalerGeoequi
 
SPxLeastSqSC< R > _scalerLeastsq
 
SPxWeightST< R > _starterWeight
 
SPxSumST< R > _starterSum
 
SPxVectorST< R > _starterVector
 
SPxAutoPR< R > _pricerAuto
 
SPxDantzigPR< R > _pricerDantzig
 
SPxParMultPR< R > _pricerParMult
 
SPxDevexPR< R > _pricerDevex
 
SPxSteepPR< R > _pricerQuickSteep
 
SPxSteepExPR< R > _pricerSteep
 
SPxDefaultRT< R > _ratiotesterTextbook
 
SPxHarrisRT< R > _ratiotesterHarris
 
SPxFastRT< R > _ratiotesterFast
 
SPxBoundFlippingRT< R > _ratiotesterBoundFlipping
 
SPxLPBase< R > * _realLP
 
SPxLPBase< R > * _decompLP
 
SPxSimplifier< R > * _simplifier
 
SPxScaler< R > * _scaler
 
SPxStarter< R > * _starter
 
bool _isRealLPLoaded
 
bool _isRealLPScaled
 
bool _applyPolishing
 
VectorBase< R > _manualLower
 
VectorBase< R > _manualUpper
 
VectorBase< R > _manualLhs
 
VectorBase< R > _manualRhs
 
VectorBase< R > _manualObj
 
SPxLPBase< R > _manualRealLP
 
Solution data
SPxSolverBase< R >::Status _status
 
int _lastSolveMode
 
DataArray< typename SPxSolverBase< R >::VarStatus > _basisStatusRows
 
DataArray< typename SPxSolverBase< R >::VarStatus > _basisStatusCols
 
SolBase< R > _solReal
 
SolRational _solRational
 
SolRational _workSol
 
bool _hasBasis
 
bool _hasSolReal
 
bool _hasSolRational
 

Parameters

enum  BoolParam {
  LIFTING = 0, EQTRANS = 1, TESTDUALINF = 2, RATFAC = 3,
  USEDECOMPDUALSIMPLEX = 4, COMPUTEDEGEN = 5, USECOMPDUAL = 6, EXPLICITVIOL = 7,
  ACCEPTCYCLING = 8, RATREC = 9, POWERSCALING = 10, RATFACJUMP = 11,
  ROWBOUNDFLIPS = 12, PERSISTENTSCALING = 13, FULLPERTURBATION = 14, ENSURERAY = 15,
  FORCEBASIC = 16, BOOLPARAM_COUNT = 17
}
 boolean parameters More...
 
enum  IntParam {
  OBJSENSE = 0, REPRESENTATION = 1, ALGORITHM = 2, FACTOR_UPDATE_TYPE = 3,
  FACTOR_UPDATE_MAX = 4, ITERLIMIT = 5, REFLIMIT = 6, STALLREFLIMIT = 7,
  DISPLAYFREQ = 8, VERBOSITY = 9, SIMPLIFIER = 10, SCALER = 11,
  STARTER = 12, PRICER = 13, RATIOTESTER = 14, SYNCMODE = 15,
  READMODE = 16, SOLVEMODE = 17, CHECKMODE = 18, TIMER = 19,
  HYPER_PRICING = 20, RATFAC_MINSTALLS = 21, LEASTSQ_MAXROUNDS = 22, SOLUTION_POLISHING = 23,
  DECOMP_ITERLIMIT = 24, DECOMP_MAXADDEDROWS = 25, DECOMP_DISPLAYFREQ = 26, DECOMP_VERBOSITY = 27,
  PRINTBASISMETRIC = 28, STATTIMER = 29, INTPARAM_COUNT = 30
}
 integer parameters More...
 
enum  { OBJSENSE_MINIMIZE = -1, OBJSENSE_MAXIMIZE = 1 }
 values for parameter OBJSENSE More...
 
enum  { REPRESENTATION_AUTO = 0, REPRESENTATION_COLUMN = 1, REPRESENTATION_ROW = 2 }
 values for parameter REPRESENTATION More...
 
enum  { ALGORITHM_PRIMAL = 0, ALGORITHM_DUAL = 1 }
 values for parameter ALGORITHM More...
 
enum  { FACTOR_UPDATE_TYPE_ETA = 0, FACTOR_UPDATE_TYPE_FT = 1 }
 values for parameter FACTOR_UPDATE_TYPE More...
 
enum  {
  VERBOSITY_ERROR = 0, VERBOSITY_WARNING = 1, VERBOSITY_DEBUG = 2, VERBOSITY_NORMAL = 3,
  VERBOSITY_HIGH = 4, VERBOSITY_FULL = 5
}
 values for parameter VERBOSITY More...
 
enum  { SIMPLIFIER_OFF = 0, SIMPLIFIER_INTERNAL = 3, SIMPLIFIER_PAPILO = 2, SIMPLIFIER_AUTO = 1 }
 values for parameter SIMPLIFIER More...
 
enum  {
  SCALER_OFF = 0, SCALER_UNIEQUI = 1, SCALER_BIEQUI = 2, SCALER_GEO1 = 3,
  SCALER_GEO8 = 4, SCALER_LEASTSQ = 5, SCALER_GEOEQUI = 6
}
 values for parameter SCALER More...
 
enum  { STARTER_OFF = 0, STARTER_WEIGHT = 1, STARTER_SUM = 2, STARTER_VECTOR = 3 }
 values for parameter STARTER More...
 
enum  {
  PRICER_AUTO = 0, PRICER_DANTZIG = 1, PRICER_PARMULT = 2, PRICER_DEVEX = 3,
  PRICER_QUICKSTEEP = 4, PRICER_STEEP = 5
}
 values for parameter PRICER More...
 
enum  { RATIOTESTER_TEXTBOOK = 0, RATIOTESTER_HARRIS = 1, RATIOTESTER_FAST = 2, RATIOTESTER_BOUNDFLIPPING = 3 }
 values for parameter RATIOTESTER More...
 
enum  { SYNCMODE_ONLYREAL = 0, SYNCMODE_AUTO = 1, SYNCMODE_MANUAL = 2 }
 values for parameter SYNCMODE More...
 
enum  { READMODE_REAL = 0, READMODE_RATIONAL = 1 }
 values for parameter READMODE More...
 
enum  { SOLVEMODE_REAL = 0, SOLVEMODE_AUTO = 1, SOLVEMODE_RATIONAL = 2 }
 values for parameter SOLVEMODE More...
 
enum  { CHECKMODE_REAL = 0, CHECKMODE_AUTO = 1, CHECKMODE_RATIONAL = 2 }
 values for parameter CHECKMODE More...
 
enum  { TIMER_OFF = 0, TIMER_CPU = 1, TIMER_WALLCLOCK = 2 }
 values for parameter TIMER More...
 
enum  { HYPER_PRICING_OFF = 0, HYPER_PRICING_AUTO = 1, HYPER_PRICING_ON = 2 }
 values for parameter HYPER_PRICING More...
 
enum  { POLISHING_OFF = 0, POLISHING_INTEGRALITY = 1, POLISHING_FRACTIONALITY = 2 }
 values for parameter SOLUTION_POLISHING More...
 
enum  RealParam {
  FEASTOL = 0, OPTTOL = 1, EPSILON_ZERO = 2, EPSILON_FACTORIZATION = 3,
  EPSILON_UPDATE = 4, EPSILON_PIVOT = 5, INFTY = 6, TIMELIMIT = 7,
  OBJLIMIT_LOWER = 8, OBJLIMIT_UPPER = 9, FPFEASTOL = 10, FPOPTTOL = 11,
  MAXSCALEINCR = 12, LIFTMINVAL = 13, LIFTMAXVAL = 14, SPARSITY_THRESHOLD = 15,
  REPRESENTATION_SWITCH = 16, RATREC_FREQ = 17, MINRED = 18, REFAC_BASIS_NNZ = 19,
  REFAC_UPDATE_FILL = 20, REFAC_MEM_FACTOR = 21, LEASTSQ_ACRCY = 22, OBJ_OFFSET = 23,
  MIN_MARKOWITZ = 24, SIMPLIFIER_MODIFYROWFAC = 25, REALPARAM_COUNT = 26
}
 real parameters More...
 
SPxOut spxout
 
bool boolParam (const BoolParam param) const
 returns boolean parameter value More...
 
int intParam (const IntParam param) const
 returns integer parameter value More...
 
Real realParam (const RealParam param) const
 returns real parameter value More...
 
const Settingssettings () const
 returns current parameter settings More...
 
bool setBoolParam (const BoolParam param, const bool value, const bool init=true)
 sets boolean parameter value; returns true on success More...
 
bool setIntParam (const IntParam param, const int value, const bool init=true)
 sets integer parameter value; returns true on success More...
 
bool setRealParam (const RealParam param, const Real value, const bool init=true)
 sets real parameter value; returns true on success More...
 
bool setSettings (const Settings &newSettings, const bool init=true)
 sets parameter settings; returns true on success More...
 
void resetSettings (const bool quiet=false, const bool init=true)
 resets default parameter settings More...
 
void printUserSettings ()
 print non-default parameter values More...
 
bool saveSettingsFile (const char *filename, const bool onlyChanged=false, int solvemode=1) const
 writes settings file; returns true on success More...
 
bool loadSettingsFile (const char *filename)
 reads settings file; returns true on success More...
 
bool parseSettingsString (char *str)
 parses one setting string and returns true on success; note that string is modified More...
 

Miscellaneous

int _optimizeCalls
 
int _unscaleCalls
 
Rational _rationalPosone
 
Rational _rationalNegone
 
Rational _rationalZero
 
void printVersion () const
 prints version and compilation options More...
 
bool areLPsInSync (const bool checkVecVals=true, const bool checkMatVals=false, const bool quiet=false) const
 checks if real LP and rational LP are in sync; dimensions will always be compared, vector and matrix values only if the respective parameter is set to true. If quiet is set to true the function will only display which vectors are different. More...
 
void setRandomSeed (unsigned int seed)
 set the random seeds of the solver instance More...
 
unsigned int randomSeed () const
 returns the current random seed of the solver instance More...
 

Data for the rational LP

enum  RangeType {
  RANGETYPE_FREE = 0, RANGETYPE_LOWER = 1, RANGETYPE_UPPER = 2, RANGETYPE_BOXED = 3,
  RANGETYPE_FIXED = 4
}
 type of bounds and sides More...
 
SPxLPRational_rationalLP
 
SLUFactorRational _rationalLUSolver
 
DataArray< int > _rationalLUSolverBind
 
LPColSetRational _slackCols
 
VectorRational _unboundedLower
 
VectorRational _unboundedUpper
 
VectorRational _unboundedLhs
 
VectorRational _unboundedRhs
 
DSVectorRational _tauColVector
 
VectorRational _feasObj
 
VectorRational _feasLhs
 
VectorRational _feasRhs
 
VectorRational _feasLower
 
VectorRational _feasUpper
 
VectorRational _modLower
 
VectorRational _modUpper
 
VectorRational _modLhs
 
VectorRational _modRhs
 
VectorRational _modObj
 
DSVectorRational _primalDualDiff
 
DataArray< typename SPxSolverBase< R >::VarStatus > _storedBasisStatusRows
 
DataArray< typename SPxSolverBase< R >::VarStatus > _storedBasisStatusCols
 
Array< UnitVectorRational *> _unitMatrixRational
 
bool _storedBasis
 
int _beforeLiftRows
 
int _beforeLiftCols
 
DataArray< RangeType_colTypes
 
DataArray< RangeType_rowTypes
 

Data for the Decomposition Based Dual Simplex

enum  decompStatus { DECOMP_ORIG = 0, DECOMP_RED = 1, DECOMP_COMP = 2 }
 
enum  DualSign { IS_POS = 0, IS_NEG = 1, IS_FREE = 2 }
 
SPxSolverBase< R > _compSolver
 
SLUFactor< R > _compSlufactor
 
SPxBasisBase< R > _decompTransBasis
 
VectorBase< R > _transformedObj
 
VectorBase< R > _decompFeasVector
 
LPRowSetBase< R > _transformedRows
 
SPxColId _compSlackColId
 
SPxRowId _compSlackDualRowId
 
bool * _decompReducedProbRows
 
bool * _decompReducedProbCols
 
int * _decompRowStatus
 
int * _decompColStatus
 
int * _decompCompProbColIDsIdx
 
DataArray< SPxRowId_decompReducedProbRowIDs
 
DataArray< SPxRowId_decompReducedProbColRowIDs
 
DataArray< SPxColId_decompReducedProbColIDs
 
DataArray< SPxRowId_decompPrimalRowIDs
 
DataArray< SPxColId_decompPrimalColIDs
 
DataArray< SPxRowId_decompElimPrimalRowIDs
 
DataArray< SPxRowId_decompDualRowIDs
 
DataArray< SPxColId_decompDualColIDs
 
DataArray< SPxColId_decompFixedVarDualIDs
 
DataArray< SPxColId_decompVarBoundDualIDs
 
DataArray< SPxColId_decompCompPrimalFixedVarIDs
 
DataArray< SPxColId_decompCompPrimalVarBoundIDs
 
DataArray< SPxRowId_decompCompPrimalRowIDs
 
DataArray< SPxColId_decompCompPrimalColIDs
 
int _nDecompViolBounds
 
int _nDecompViolRows
 
int * _decompViolatedBounds
 
int * _decompViolatedRows
 
int * _fixedOrigVars
 
int _nPrimalRows
 
int _nPrimalCols
 
int _nElimPrimalRows
 
int _nDualRows
 
int _nDualCols
 
int _nCompPrimalRows
 
int _nCompPrimalCols
 
int _decompDisplayLine
 
NameSet_rowNames
 
NameSet_colNames
 
int numIncludedRows
 
int numDecompIter
 
int numRedProbIter
 
int numCompProbIter
 
int numProbRows
 
int numProbCols
 
int nNonzeros
 
minAbsNonzero
 
maxAbsNonzero
 
int origCountLower
 
int origCountUpper
 
int origCountBoxed
 
int origCountFreeCol
 
int origCountEqual
 
int origCountLhs
 
int origCountRhs
 
int origCountRanged
 
int origCountFreeRow
 
decompStatus _currentProb
 

Detailed Description

template<class R>
class soplex::SoPlexBase< R >

Definition at line 111 of file soplex.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

values for parameter STARTER

Enumerator
STARTER_OFF 

slack basis

STARTER_WEIGHT 

greedy crash basis weighted by objective, bounds, and sides

STARTER_SUM 

crash basis from a greedy solution

STARTER_VECTOR 

generic solution-based crash basis

Definition at line 1195 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter PRICER

Enumerator
PRICER_AUTO 

automatic pricer

PRICER_DANTZIG 

Dantzig pricer.

PRICER_PARMULT 

partial multiple pricer based on Dantzig pricing

PRICER_DEVEX 

devex pricer

PRICER_QUICKSTEEP 

steepest edge pricer with initialization to unit norms

PRICER_STEEP 

steepest edge pricer with exact initialization of norms

Definition at line 1211 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter RATIOTESTER

Enumerator
RATIOTESTER_TEXTBOOK 

textbook ratio test without stabilization

RATIOTESTER_HARRIS 

standard Harris ratio test

RATIOTESTER_FAST 

modified Harris ratio test

RATIOTESTER_BOUNDFLIPPING 

bound flipping ratio test for long steps in the dual simplex

Definition at line 1233 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter SYNCMODE

Enumerator
SYNCMODE_ONLYREAL 

store only real LP

SYNCMODE_AUTO 

automatic sync of real and rational LP

SYNCMODE_MANUAL 

user sync of real and rational LP

Definition at line 1249 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter READMODE

Enumerator
READMODE_REAL 

standard floating-point parsing

READMODE_RATIONAL 

rational parsing

Definition at line 1262 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter SOLVEMODE

Enumerator
SOLVEMODE_REAL 

apply standard floating-point algorithm

SOLVEMODE_AUTO 

decide depending on tolerances whether to apply iterative refinement

SOLVEMODE_RATIONAL 

force iterative refinement

Definition at line 1272 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter CHECKMODE

Enumerator
CHECKMODE_REAL 

floating-point check

CHECKMODE_AUTO 

decide according to READMODE

CHECKMODE_RATIONAL 

rational check

Definition at line 1285 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter TIMER

Enumerator
TIMER_OFF 

disable timing

TIMER_CPU 

cpu or user time

TIMER_WALLCLOCK 

wallclock time

Definition at line 1298 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter HYPER_PRICING

Enumerator
HYPER_PRICING_OFF 

never

HYPER_PRICING_AUTO 

decide according to problem size

HYPER_PRICING_ON 

always

Definition at line 1311 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter SOLUTION_POLISHING

Enumerator
POLISHING_OFF 

no solution polishing

POLISHING_INTEGRALITY 

maximize number of basic slack variables, i.e. more variables on bounds

POLISHING_FRACTIONALITY 

minimize number of basic slack variables, i.e. more variables between bounds

Definition at line 1324 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter OBJSENSE

Enumerator
OBJSENSE_MINIMIZE 

minimization

OBJSENSE_MAXIMIZE 

maximization

Definition at line 1089 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter REPRESENTATION

Enumerator
REPRESENTATION_AUTO 

automatic choice according to number of rows and columns

REPRESENTATION_COLUMN 

column representation Ax - s = 0, lower <= x <= upper, lhs <= s <= rhs

REPRESENTATION_ROW 

row representation (lower,lhs) <= (x,Ax) <= (upper,rhs)

Definition at line 1099 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter ALGORITHM

Enumerator
ALGORITHM_PRIMAL 

primal simplex algorithm, i.e., entering for column and leaving for row representation

ALGORITHM_DUAL 

dual simplex algorithm, i.e., leaving for column and entering for row representation

Definition at line 1112 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter FACTOR_UPDATE_TYPE

Enumerator
FACTOR_UPDATE_TYPE_ETA 

product form update

FACTOR_UPDATE_TYPE_FT 

Forrest-Tomlin type update.

Definition at line 1122 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter VERBOSITY

Enumerator
VERBOSITY_ERROR 

only error output

VERBOSITY_WARNING 

only error and warning output

VERBOSITY_DEBUG 

only error, warning, and debug output

VERBOSITY_NORMAL 

standard verbosity level

VERBOSITY_HIGH 

high verbosity level

VERBOSITY_FULL 

full verbosity level

Definition at line 1132 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter SIMPLIFIER

Enumerator
SIMPLIFIER_OFF 

disabling presolving

SIMPLIFIER_INTERNAL 

using internal presolving methods

SIMPLIFIER_PAPILO 

using the presolve lib papilo

SIMPLIFIER_AUTO 

SoPlex chooses automatically (currently always "internal")

Definition at line 1154 of file soplex.h.

◆ anonymous enum

anonymous enum

values for parameter SCALER

Enumerator
SCALER_OFF 

no scaler

SCALER_UNIEQUI 

equilibrium scaling on rows or columns

SCALER_BIEQUI 

equilibrium scaling on rows and columns

SCALER_GEO1 

geometric mean scaling on rows and columns, max 1 round

SCALER_GEO8 

geometric mean scaling on rows and columns, max 8 rounds

SCALER_LEASTSQ 

least square scaling

SCALER_GEOEQUI 

geometric mean scaling (max 8 rounds) followed by equilibrium scaling (rows and columns)

Definition at line 1170 of file soplex.h.

◆ BoolParam

enum BoolParam

boolean parameters

Enumerator
LIFTING 

should lifting be used to reduce range of nonzero matrix coefficients?

EQTRANS 

should LP be transformed to equality form before a rational solve?

TESTDUALINF 

should dual infeasibility be tested in order to try to return a dual solution even if primal infeasible?

RATFAC 

should a rational factorization be performed after iterative refinement?

USEDECOMPDUALSIMPLEX 

should the decomposition based dual simplex be used to solve the LP? Setting this to true forces the solve mode to SOLVEMODE_REAL and the basis representation to REPRESENTATION_ROW

COMPUTEDEGEN 

should the degeneracy be computed for each basis?

USECOMPDUAL 

should the dual of the complementary problem be used in the decomposition simplex?

EXPLICITVIOL 

should row and bound violations be computed explicitly in the update of reduced problem in the decomposition simplex

ACCEPTCYCLING 

should cycling solutions be accepted during iterative refinement?

RATREC 

apply rational reconstruction after each iterative refinement?

POWERSCALING 

round scaling factors for iterative refinement to powers of two?

RATFACJUMP 

continue iterative refinement with exact basic solution if not optimal?

ROWBOUNDFLIPS 

use bound flipping also for row representation?

PERSISTENTSCALING 

use persistent scaling?

FULLPERTURBATION 

perturb the entire problem or only the relevant bounds of s single pivot?

ENSURERAY 

re-optimize the original problem to get a proof (ray) of infeasibility/unboundedness?

FORCEBASIC 

try to enforce that the optimal solution is a basic solutiong

BOOLPARAM_COUNT 

number of boolean parameters

Definition at line 933 of file soplex.h.

◆ decompStatus

enum decompStatus
private
Enumerator
DECOMP_ORIG 
DECOMP_RED 
DECOMP_COMP 

Definition at line 1788 of file soplex.h.

◆ DualSign

enum DualSign
private
Enumerator
IS_POS 
IS_NEG 
IS_FREE 

Definition at line 1801 of file soplex.h.

◆ IntParam

enum IntParam

integer parameters

Enumerator
OBJSENSE 

objective sense

REPRESENTATION 

type of computational form, i.e., column or row representation

ALGORITHM 

type of algorithm, i.e., primal or dual

FACTOR_UPDATE_TYPE 

type of LU update

FACTOR_UPDATE_MAX 

maximum number of updates without fresh factorization

ITERLIMIT 

iteration limit (-1 if unlimited)

REFLIMIT 

refinement limit (-1 if unlimited)

STALLREFLIMIT 

stalling refinement limit (-1 if unlimited)

DISPLAYFREQ 

display frequency

VERBOSITY 

verbosity level

SIMPLIFIER 

type of simplifier

SCALER 

type of scaler

STARTER 

type of starter used to create crash basis

PRICER 

type of pricer

RATIOTESTER 

type of ratio test

SYNCMODE 

mode for synchronizing real and rational LP

READMODE 

mode for reading LP files

SOLVEMODE 

mode for iterative refinement strategy

CHECKMODE 

mode for a posteriori feasibility checks

TIMER 

type of timer

HYPER_PRICING 

mode for hyper sparse pricing

RATFAC_MINSTALLS 

minimum number of stalling refinements since last pivot to trigger rational factorization

LEASTSQ_MAXROUNDS 

maximum number of conjugate gradient iterations in least square scaling

SOLUTION_POLISHING 

mode for solution polishing

DECOMP_ITERLIMIT 

the number of iterations before the decomposition simplex initialisation is terminated.

DECOMP_MAXADDEDROWS 

the maximum number of rows that are added in each iteration of the decomposition based simplex

DECOMP_DISPLAYFREQ 

the iteration frequency at which the decomposition solve output is displayed.

DECOMP_VERBOSITY 

the verbosity of the decomposition based simplex

PRINTBASISMETRIC 

print condition number during the solve

STATTIMER 

type of timer for statistics

INTPARAM_COUNT 

number of integer parameters

Definition at line 992 of file soplex.h.

◆ RangeType

enum RangeType
private

type of bounds and sides

Enumerator
RANGETYPE_FREE 

both bounds are infinite

RANGETYPE_LOWER 

lower bound is finite, upper bound is infinite

RANGETYPE_UPPER 

upper bound is finite, lower bound is infinite

RANGETYPE_BOXED 

lower and upper bound finite, but different

RANGETYPE_FIXED 

lower bound equals upper bound

Definition at line 1729 of file soplex.h.

◆ RealParam

enum RealParam

real parameters

Enumerator
FEASTOL 

primal feasibility tolerance

OPTTOL 

dual feasibility tolerance

EPSILON_ZERO 

general zero tolerance

EPSILON_FACTORIZATION 

zero tolerance used in factorization

EPSILON_UPDATE 

zero tolerance used in update of the factorization

EPSILON_PIVOT 

pivot zero tolerance used in factorization

INFTY 

infinity threshold

TIMELIMIT 

time limit in seconds (INFTY if unlimited)

OBJLIMIT_LOWER 

lower limit on objective value

OBJLIMIT_UPPER 

upper limit on objective value

FPFEASTOL 

working tolerance for feasibility in floating-point solver during iterative refinement

FPOPTTOL 

working tolerance for optimality in floating-point solver during iterative refinement

MAXSCALEINCR 

maximum increase of scaling factors between refinements

LIFTMINVAL 

lower threshold in lifting (nonzero matrix coefficients with smaller absolute value will be reformulated)

LIFTMAXVAL 

upper threshold in lifting (nonzero matrix coefficients with larger absolute value will be reformulated)

SPARSITY_THRESHOLD 

sparse pricing threshold (#violations < dimension * SPARSITY_THRESHOLD activates sparse pricing)

REPRESENTATION_SWITCH 

threshold on number of rows vs. number of columns for switching from column to row representations in auto mode

RATREC_FREQ 

geometric frequency at which to apply rational reconstruction

MINRED 

minimal reduction (sum of removed rows/cols) to continue simplification

REFAC_BASIS_NNZ 

refactor threshold for nonzeros in last factorized basis matrix compared to updated basis matrix

REFAC_UPDATE_FILL 

refactor threshold for fill-in in current factor update compared to fill-in in last factorization

REFAC_MEM_FACTOR 

refactor threshold for memory growth in factorization since last refactorization

LEASTSQ_ACRCY 

accuracy of conjugate gradient method in least squares scaling (higher value leads to more iterations)

OBJ_OFFSET 

objective offset

MIN_MARKOWITZ 

minimal Markowitz threshold to control sparsity/stability in LU factorization

SIMPLIFIER_MODIFYROWFAC 

minimal modification threshold to apply presolve reductions

REALPARAM_COUNT 

number of real parameters

Definition at line 1337 of file soplex.h.

Constructor & Destructor Documentation

◆ SoPlexBase() [1/2]

default constructor

◆ SoPlexBase() [2/2]

SoPlexBase ( const SoPlexBase< R > &  rhs)

copy constructor

◆ ~SoPlexBase()

virtual ~SoPlexBase ( )
virtual

destructor

Referenced by runSoPlex().

Member Function Documentation

◆ _addColReal() [1/2]

void _addColReal ( const LPColReal lpcol)
private

adds a single column to the real LP and adjusts basis

◆ _addColReal() [2/2]

void _addColReal ( obj,
lower,
const SVectorBase< R > &  lpcol,
upper 
)
private

adds a single column to the real LP and adjusts basis

◆ _addColsReal()

void _addColsReal ( const LPColSetReal lpcolset)
private

adds multiple columns to the real LP and adjusts basis

◆ _addRowReal() [1/2]

void _addRowReal ( const LPRowBase< R > &  lprow)
private

adds a single row to the real LP and adjusts basis

◆ _addRowReal() [2/2]

void _addRowReal ( lhs,
const SVectorBase< R > &  lprow,
rhs 
)
private

adds a single row to the real LP and adjusts basis

◆ _addRowsReal()

void _addRowsReal ( const LPRowSetBase< R > &  lprowset)
private

adds multiple rows to the real LP and adjusts basis

◆ _changeBoundsReal() [1/2]

void _changeBoundsReal ( const VectorBase< R > &  lower,
const VectorBase< R > &  upper 
)
private

changes vectors of column bounds to lower and upper and adjusts basis

◆ _changeBoundsReal() [2/2]

void _changeBoundsReal ( int  i,
const R &  lower,
const R &  upper 
)
private

changes bounds of column i to lower and upper and adjusts basis

◆ _changeColReal()

void _changeColReal ( int  i,
const LPColReal lpcol 
)
private

replaces column i with lpcol and adjusts basis

◆ _changeElementReal()

void _changeElementReal ( int  i,
int  j,
const R &  val 
)
private

changes matrix entry in row i and column j to val and adjusts basis

◆ _changeLhsReal() [1/2]

void _changeLhsReal ( const VectorBase< R > &  lhs)
private

changes left-hand side vector for constraints to lhs and adjusts basis

◆ _changeLhsReal() [2/2]

void _changeLhsReal ( int  i,
const R &  lhs 
)
private

changes left-hand side of row i to lhs and adjusts basis

◆ _changeLowerReal() [1/2]

void _changeLowerReal ( const VectorBase< R > &  lower)
private

changes vector of lower bounds to lower and adjusts basis

◆ _changeLowerReal() [2/2]

void _changeLowerReal ( int  i,
const R &  lower 
)
private

changes lower bound of column i to lower and adjusts basis

◆ _changeRangeReal() [1/2]

void _changeRangeReal ( const VectorBase< R > &  lhs,
const VectorBase< R > &  rhs 
)
private

changes left- and right-hand side vectors and adjusts basis

◆ _changeRangeReal() [2/2]

void _changeRangeReal ( int  i,
const R &  lhs,
const R &  rhs 
)
private

changes left- and right-hand side of row i and adjusts basis

◆ _changeRhsReal() [1/2]

void _changeRhsReal ( const VectorBase< R > &  rhs)
private

changes right-hand side vector to rhs and adjusts basis

◆ _changeRhsReal() [2/2]

void _changeRhsReal ( int  i,
const R &  rhs 
)
private

changes right-hand side of row i to rhs and adjusts basis

◆ _changeRowReal()

void _changeRowReal ( int  i,
const LPRowBase< R > &  lprow 
)
private

replaces row i with lprow and adjusts basis

◆ _changeUpperReal() [1/2]

void _changeUpperReal ( const VectorBase< R > &  upper)
private

changes vector of upper bounds to upper and adjusts basis

◆ _changeUpperReal() [2/2]

void _changeUpperReal ( int  i,
const R &  upper 
)
private

changes i 'th upper bound to upper and adjusts basis

◆ _checkBasisScaling()

void _checkBasisScaling ( )
private

check correctness of (un)scaled basis matrix operations

◆ _checkOriginalProblemOptimality()

void _checkOriginalProblemOptimality ( VectorBase< R >  primalVector,
bool  printViol 
)
private

checking the optimality of the original problem.

◆ _checkScaling()

void _checkScaling ( SPxLPBase< R > *  origLP) const
private

check scaling of LP

◆ _completeRangeTypesRational()

void _completeRangeTypesRational ( )
private

completes range type arrays after adding columns and/or rows

◆ _computeBasisInverseRational()

void _computeBasisInverseRational ( )
private

computes rational inverse of basis matrix as defined by _rationalLUSolverBind

◆ _computeInfeasBox()

void _computeInfeasBox ( SolRational sol,
bool  transformed 
)
private

computes radius of infeasibility box implied by an approximate Farkas' proof

Given constraints of the form \( lhs <= Ax <= rhs \), a farkas proof y should satisfy \( y^T A = 0 \) and \( y_+^T lhs - y_-^T rhs > 0 \), where \( y_+, y_- \) denote the positive and negative parts of \( y \). If \( y \) is approximate, it may not satisfy \( y^T A = 0 \) exactly, but the proof is still valid as long as the following holds for all potentially feasible \( x \):

\[ y^T Ax < (y_+^T lhs - y_-^T rhs) (*) \]

we may therefore calculate \( y^T A \) and \( y_+^T lhs - y_-^T rhs \) exactly and check if the upper and lower bounds on \( x \) imply that all feasible \( x \) satisfy (*), and if not then compute bounds on \( x \) to guarantee (*). The simplest way to do this is to compute

\[ B = (y_+^T lhs - y_-^T rhs) / \sum_i(|(y^T A)_i|) \]

noting that if every component of \( x \) has \( |x_i| < B \), then (*) holds.

\( B \) can be increased by iteratively including variable bounds smaller than \( B \). The speed of this method can be further improved by using interval arithmetic for all computations. For related information see Sec. 4 of Neumaier and Shcherbina, Mathematical Programming A, 2004.

Set transformed to true if this method is called after _transformFeasibility().

◆ _computeReducedProbObjCoeff()

void _computeReducedProbObjCoeff ( bool &  stop)
private

computes the reduced problem objective coefficients

◆ _createDecompReducedAndComplementaryProblems()

void _createDecompReducedAndComplementaryProblems ( )
private

creating copies of the original problem that will be manipulated to form the reduced and complementary problems

◆ _decompResolveWithoutPreprocessing()

void _decompResolveWithoutPreprocessing ( SPxSolverBase< R > &  solver,
SLUFactor< R > &  sluFactor,
typename SPxSimplifier< R >::Result  result 
)
private

loads original problem into solver and solves again after it has been solved to optimality with preprocessing

◆ _decompSimplifyAndSolve()

void _decompSimplifyAndSolve ( SPxSolverBase< R > &  solver,
SLUFactor< R > &  sluFactor,
bool  fromScratch,
bool  applyPreprocessing 
)
private

simplifies the problem and solves

◆ _deleteAndUpdateRowsComplementaryProblem()

void _deleteAndUpdateRowsComplementaryProblem ( SPxRowId  rangedRowIds[],
int &  naddedrows 
)
private

removing rows from the complementary problem.

◆ _disableSimplifierAndScaler()

void _disableSimplifierAndScaler ( )
private

disables simplifier and scaler

◆ _enableSimplifierAndScaler()

void _enableSimplifierAndScaler ( )
private

enables simplifier and scaler according to current parameters

◆ _ensureDSVectorRationalMemory()

void _ensureDSVectorRationalMemory ( DSVectorRational vec,
const int  newmax 
) const
private

extends sparse vector to hold newmax entries if and only if it holds no more free entries

◆ _ensureRationalLP()

void _ensureRationalLP ( )
private

ensures that the rational LP is available; performs no sync

◆ _ensureRealLPLoaded()

void _ensureRealLPLoaded ( )
private

ensures that the real LP and the basis are loaded in the solver; performs no sync

◆ _evaluateSolutionDecomp()

void _evaluateSolutionDecomp ( SPxSolverBase< R > &  solver,
SLUFactor< R > &  sluFactor,
typename SPxSimplifier< R >::Result  result 
)
private

evaluates the solution of the reduced problem for the DBDS

◆ _evaluateSolutionReal()

void _evaluateSolutionReal ( typename SPxSimplifier< R >::Result  simplificationStatus)
private

checks result of the solving process and solves again without preprocessing if necessary

◆ _factorizeColumnRational()

void _factorizeColumnRational ( SolRational sol,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusRows,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusCols,
bool &  stoppedTime,
bool &  stoppedIter,
bool &  error,
bool &  optimal 
)
private

factorizes rational basis matrix in column representation

◆ _findViolatedRows()

void _findViolatedRows ( compObjValue,
Array< RowViolation > &  violatedrows,
int &  nviolatedrows 
)
private

builds the update rows with those violated in the complmentary problem

◆ _formDecompComplementaryProblem()

void _formDecompComplementaryProblem ( )
private

forms the complementary problem

◆ _formDecompReducedProblem()

void _formDecompReducedProblem ( bool &  stop)
private

forms the reduced problem

◆ _getCompatibleBoundCons()

void _getCompatibleBoundCons ( LPRowSetBase< R > &  boundcons,
int *  compatboundcons,
int *  nonposind,
int *  ncompatboundcons,
int  nnonposind,
bool &  stop 
)
private

computes the compatible bound constraints and adds them to the reduced problem

◆ _getCompatibleColumns()

void _getCompatibleColumns ( VectorBase< R >  feasVector,
int *  nonposind,
int *  compatind,
int *  rowsforremoval,
int *  colsforremoval,
int  nnonposind,
int *  ncompatind,
bool  formRedProb,
bool &  stop 
)
private

retrieves the compatible columns from the constraint matrix

◆ _getRowsForRemovalComplementaryProblem()

void _getRowsForRemovalComplementaryProblem ( int *  nonposind,
int *  bind,
int *  rowsforremoval,
int *  nrowsforremoval,
int  nnonposind 
)
private

computes the rows to remove from the complementary problem

◆ _getZeroDualMultiplierIndices()

void _getZeroDualMultiplierIndices ( VectorBase< R >  feasVector,
int *  nonposind,
int *  colsforremoval,
int *  nnonposind,
bool &  stop 
)
private

identifies the columns of the row-form basis that correspond to rows with zero dual multipliers.

◆ _identifyComplementaryDualFixedPrimalVars()

void _identifyComplementaryDualFixedPrimalVars ( int *  currFixedVars)
private

removing the dual columns related to the fixed variables

◆ _identifyComplementaryPrimalFixedPrimalVars()

void _identifyComplementaryPrimalFixedPrimalVars ( int *  currFixedVars)
private

removing the dual columns related to the fixed variables

◆ _idxToPerm()

void _idxToPerm ( int *  idx,
int  idxSize,
int *  perm,
int  permSize 
) const
private

creates a permutation for removing rows/columns from an array of indices

◆ _invalidateSolution()

void _invalidateSolution ( )
private

invalidates solution

◆ _isConsistent()

bool _isConsistent ( ) const
private

checks consistency

◆ _isSolveStopped()

bool _isSolveStopped ( bool &  stoppedTime,
bool &  stoppedIter 
) const
private

should solving process be stopped?

◆ _lift()

void _lift ( )
private

reduces matrix coefficient in absolute value by the lifting procedure of Thiele et al. 2013

◆ _loadRealLP()

void _loadRealLP ( bool  initBasis)
private

load original LP and possibly setup a slack basis

◆ _lowerFinite()

bool _lowerFinite ( const RangeType rangeType) const
private

checks whether RangeType corresponds to finite lower bound

◆ _optimize()

void _optimize ( volatile bool *  interrupt = NULL)
private

solves the templated LP

◆ _optimizeRational()

void _optimizeRational ( volatile bool *  interrupt = NULL)
private

temporary fix for Rational

◆ _parseSettingsLine()

bool _parseSettingsLine ( char *  line,
const int  lineNumber 
)
private

parses one line in a settings file and returns true on success; note that the string is modified

◆ _performFeasIRStable()

void _performFeasIRStable ( SolRational sol,
bool &  withDualFarkas,
bool &  stoppedTime,
bool &  stoppedIter,
bool &  error 
)
private

performs iterative refinement on the auxiliary problem for testing feasibility

◆ _performOptIRStable()

void _performOptIRStable ( SolRational sol,
bool  acceptUnbounded,
bool  acceptInfeasible,
int  minRounds,
bool &  primalFeasible,
bool &  dualFeasible,
bool &  infeasible,
bool &  unbounded,
bool &  stoppedTime,
bool &  stoppedIter,
bool &  error 
)
private

solves current problem with iterative refinement and recovery mechanism

◆ _performUnboundedIRStable()

void _performUnboundedIRStable ( SolRational sol,
bool &  hasUnboundedRay,
bool &  stoppedTime,
bool &  stoppedIter,
bool &  error 
)
private

performs iterative refinement on the auxiliary problem for testing unboundedness

◆ _preprocessAndSolveReal()

void _preprocessAndSolveReal ( bool  applyPreprocessing,
volatile bool *  interrupt = NULL 
)
private

solves real LP with/without preprocessing

◆ _project()

void _project ( SolRational sol)
private

undoes lifting

◆ _rangeToPerm()

void _rangeToPerm ( int  start,
int  end,
int *  perm,
int  permSize 
) const
private

creates a permutation for removing rows/columns from a range of indices

◆ _rangeTypeRational()

RangeType _rangeTypeRational ( const Rational lower,
const Rational upper 
) const
private

determines RangeType from rational bounds

◆ _rangeTypeReal()

RangeType _rangeTypeReal ( const R &  lower,
const R &  upper 
) const
private

determines RangeType from real bounds

◆ _readFileRational()

bool _readFileRational ( const char *  filename,
NameSet rowNames = 0,
NameSet colNames = 0,
DIdxSet intVars = 0 
)
private

reads rational LP in LP or MPS format from file and returns true on success; gets row names, column names, and integer variables if desired

◆ _readFileReal()

bool _readFileReal ( const char *  filename,
NameSet rowNames = 0,
NameSet colNames = 0,
DIdxSet intVars = 0 
)
private

reads real LP in LP or MPS format from file and returns true on success; gets row names, column names, and integer variables if desired

◆ _reapplyPersistentScaling()

bool _reapplyPersistentScaling ( ) const
private

check whether persistent scaling is supposed to be reapplied again after unscaling

◆ _recomputeRangeTypesRational()

void _recomputeRangeTypesRational ( )
private

recomputes range types from scratch using rational LP

◆ _recomputeRangeTypesReal()

void _recomputeRangeTypesReal ( )
private

recomputes range types from scratch using real LP

◆ _reconstructSolutionRational()

bool _reconstructSolutionRational ( SolRational sol,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusRows,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusCols,
const Rational denomBoundSquared 
)
private

attempts rational reconstruction of primal-dual solution

◆ _removeColRangeReal()

void _removeColRangeReal ( int  start,
int  end,
int  perm[] 
)
private

removes columns start to end including both; an array perm of size numColsReal() may be passed as buffer memory

◆ _removeColReal()

void _removeColReal ( int  i)
private

removes column i

◆ _removeColsReal() [1/2]

void _removeColsReal ( int  perm[])
private

removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where column i has been moved to; note that perm must point to an array of size at least numColsReal()

◆ _removeColsReal() [2/2]

void _removeColsReal ( int  idx[],
int  n,
int  perm[] 
)
private

remove all columns with indices in array idx of size n; an array perm of size numColsReal() may be passed as buffer memory

◆ _removeComplementaryDualFixedPrimalVars()

void _removeComplementaryDualFixedPrimalVars ( int *  currFixedVars)
private

removing the dual columns related to the fixed variables

◆ _removeRowRangeReal()

void _removeRowRangeReal ( int  start,
int  end,
int  perm[] 
)
private

removes rows start to end including both; an array perm of size numRows() may be passed as buffer memory

◆ _removeRowReal()

void _removeRowReal ( int  i)
private

removes row i and adjusts basis

◆ _removeRowsReal() [1/2]

void _removeRowsReal ( int  perm[])
private

removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where row i has been moved to; note that perm must point to an array of size at least numRows()

◆ _removeRowsReal() [2/2]

void _removeRowsReal ( int  idx[],
int  n,
int  perm[] 
)
private

remove all rows with indices in array idx of size n; an array perm of size numRows() may be passed as buffer memory

◆ _resolveWithoutPreprocessing()

void _resolveWithoutPreprocessing ( typename SPxSimplifier< R >::Result  simplificationStatus)
private

loads original problem into solver and solves again after it has been solved to optimality with preprocessing

◆ _restoreBasis()

void _restoreBasis ( )
private

restore basis

◆ _restoreLPReal()

void _restoreLPReal ( )
private

restores objective, bounds, and sides of real LP

◆ _setComplementaryDualOriginalObjective()

void _setComplementaryDualOriginalObjective ( )
private

updating the complementary dual problem with the original objective function

◆ _setComplementaryPrimalOriginalObjective()

void _setComplementaryPrimalOriginalObjective ( )
private

updating the complementary primal problem with the original objective function

◆ _solveDecompositionDualSimplex()

void _solveDecompositionDualSimplex ( )
private

solves LP using the decomposition based dual simplex

◆ _solveDecompReducedProblem()

void _solveDecompReducedProblem ( )
private

solves the reduced problem

◆ _solveRealForRational()

SPxSolverBase<R>::Status _solveRealForRational ( bool  fromscratch,
VectorBase< R > &  primal,
VectorBase< R > &  dual,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusRows,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusCols 
)
private

solves real LP during iterative refinement

◆ _solveRealLPAndRecordStatistics()

void _solveRealLPAndRecordStatistics ( volatile bool *  interrupt = NULL)
private

call floating-point solver and update statistics on iterations etc.

◆ _solveRealStable()

SPxSolverBase<R>::Status _solveRealStable ( bool  acceptUnbounded,
bool  acceptInfeasible,
VectorBase< R > &  primal,
VectorBase< R > &  dual,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusRows,
DataArray< typename SPxSolverBase< R >::VarStatus > &  basisStatusCols,
const bool  forceNoSimplifier = false 
)
private

solves real LP with recovery mechanism

◆ _storeBasis()

void _storeBasis ( )
private

store basis

◆ _storeLPReal()

void _storeLPReal ( )
private

stores objective, bounds, and sides of real LP

◆ _storeSolutionReal()

void _storeSolutionReal ( bool  verify = true)
private

stores solution of the real LP; before calling this, the real LP must be loaded in the solver and solved (again)

◆ _storeSolutionRealFromPresol()

void _storeSolutionRealFromPresol ( )
private

stores solution from the simplifier because problem vanished in presolving step

◆ _switchRangeType()

RangeType _switchRangeType ( const RangeType rangeType) const
private

switches RANGETYPE_LOWER to RANGETYPE_UPPER and vice versa

◆ _syncLPRational()

void _syncLPRational ( bool  time = true)
private

synchronizes rational LP with real LP, i.e., copies real LP to rational LP, without looking at the sync mode

◆ _syncLPReal()

void _syncLPReal ( bool  time = true)
private

synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, without looking at the sync mode

◆ _syncRationalSolution()

void _syncRationalSolution ( )
private

synchronizes real solution with rational solution, i.e., copies real solution to rational solution

◆ _syncRealSolution()

void _syncRealSolution ( )
private

synchronizes rational solution with real solution, i.e., copies (rounded) rational solution to real solution

◆ _transformEquality()

void _transformEquality ( )
private

introduces slack variables to transform inequality constraints into equations for both rational and real LP, which should be in sync

◆ _transformFeasibility()

void _transformFeasibility ( )
private

transforms LP to feasibility problem by removing the objective function, shifting variables, and homogenizing the right-hand side

◆ _transformUnbounded()

void _transformUnbounded ( )
private

transforms LP to unboundedness problem by moving the objective function to the constraints, changing right-hand side and bounds to zero, and adding an auxiliary variable for the decrease in the objective function

◆ _unitVectorRational()

const UnitVectorRational* _unitVectorRational ( const int  i)
private

returns pointer to a constant unit vector available until destruction of the SoPlexBase class

◆ _unscaleSolutionReal()

void _unscaleSolutionReal ( SPxLPBase< R > &  LP,
bool  persistent = true 
)
private

unscales stored solution to remove internal or external scaling of LP

◆ _untransformEquality()

void _untransformEquality ( SolRational sol)
private

undoes transformation to equality form

◆ _untransformFeasibility()

void _untransformFeasibility ( SolRational sol,
bool  infeasible 
)
private

undoes transformation to feasibility problem

◆ _untransformUnbounded()

void _untransformUnbounded ( SolRational sol,
bool  unbounded 
)
private

undoes transformation to unboundedness problem

◆ _updateComplementaryDualFixedPrimalVars()

void _updateComplementaryDualFixedPrimalVars ( int *  currFixedVars)
private

updating the dual columns related to the fixed primal variables.

◆ _updateComplementaryDualSlackColCoeff()

void _updateComplementaryDualSlackColCoeff ( )
private

updating the slack column coefficients to adjust for equality constraints

◆ _updateComplementaryPrimalFixedPrimalVars()

void _updateComplementaryPrimalFixedPrimalVars ( int *  currFixedVars)
private

updating the dual columns related to the fixed primal variables.

◆ _updateComplementaryPrimalSlackColCoeff()

void _updateComplementaryPrimalSlackColCoeff ( )
private

updating the slack column coefficients to adjust for equality constraints

◆ _updateDecompComplementaryDualProblem()

void _updateDecompComplementaryDualProblem ( bool  origObj)
private

update the dual complementary problem with additional columns and rows

◆ _updateDecompComplementaryPrimalProblem()

void _updateDecompComplementaryPrimalProblem ( bool  origObj)
private

update the primal complementary problem with additional columns and rows

◆ _updateDecompReducedProblem()

void _updateDecompReducedProblem ( objVal,
VectorBase< R >  dualVector,
VectorBase< R >  redcostVector,
VectorBase< R >  compPrimalVector,
VectorBase< R >  compDualVector 
)
private

update the reduced problem with additional columns and rows

◆ _updateDecompReducedProblemViol()

void _updateDecompReducedProblemViol ( bool  allrows)
private

update the reduced problem with additional columns and rows based upon the violated original bounds and rows

◆ _upperFinite()

bool _upperFinite ( const RangeType rangeType) const
private

checks whether RangeType corresponds to finite upper bound

◆ _verifySolutionReal()

void _verifySolutionReal ( )
private

verify computed solution and resolve if necessary

◆ _writeOriginalProblemBasis()

void _writeOriginalProblemBasis ( const char *  filename,
NameSet rowNames,
NameSet colNames,
bool  cpxFormat 
)
private

function to build a basis for the original problem as given by the solution to the reduced problem

◆ addColRational() [1/2]

void addColRational ( const LPColRational lpcol)

adds a single column

◆ addColRational() [2/2]

void addColRational ( const mpq_t *  obj,
const mpq_t *  lower,
const mpq_t *  colValues,
const int *  colIndices,
const int  colSize,
const mpq_t *  upper 
)

adds a single column (GMP only method)

◆ addColReal()

void addColReal ( const LPColBase< R > &  lpcol)

adds a single column

◆ addColsRational() [1/2]

void addColsRational ( const mpq_t *  obj,
const mpq_t *  lower,
const mpq_t *  colValues,
const int *  colIndices,
const int *  colStarts,
const int *  colLengths,
const int  numCols,
const int  numValues,
const mpq_t *  upper 
)

adds a set of columns (GMP only method)

◆ addColsRational() [2/2]

void addColsRational ( const LPColSetRational lpcolset)

adds multiple columns

◆ addColsReal()

void addColsReal ( const LPColSetBase< R > &  lpcolset)

adds multiple columns

◆ addRowRational() [1/2]

void addRowRational ( const LPRowRational lprow)

adds a single row

◆ addRowRational() [2/2]

void addRowRational ( const mpq_t *  lhs,
const mpq_t *  rowValues,
const int *  rowIndices,
const int  rowSize,
const mpq_t *  rhs 
)

adds a single row (GMP only method)

◆ addRowReal()

void addRowReal ( const LPRowBase< R > &  lprow)

adds a single row

◆ addRowsRational() [1/2]

void addRowsRational ( const mpq_t *  lhs,
const mpq_t *  rowValues,
const int *  rowIndices,
const int *  rowStarts,
const int *  rowLengths,
const int  numRows,
const int  numValues,
const mpq_t *  rhs 
)

adds a set of rows (GMP only method)

◆ addRowsRational() [2/2]

void addRowsRational ( const LPRowSetRational lprowset)

adds multiple rows

◆ addRowsReal()

void addRowsReal ( const LPRowSetBase< R > &  lprowset)

adds multiple rows

◆ areLPsInSync()

bool areLPsInSync ( const bool  checkVecVals = true,
const bool  checkMatVals = false,
const bool  quiet = false 
) const

checks if real LP and rational LP are in sync; dimensions will always be compared, vector and matrix values only if the respective parameter is set to true. If quiet is set to true the function will only display which vectors are different.

◆ basisColStatus()

SPxSolverBase<R>::VarStatus basisColStatus ( int  col) const

returns basis status for a single column

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ basisRowStatus()

SPxSolverBase<R>::VarStatus basisRowStatus ( int  row) const

returns basis status for a single row

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ basisStatus()

SPxBasisBase<R>::SPxStatus basisStatus ( ) const

returns the current basis status

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ boolParam()

bool boolParam ( const BoolParam  param) const

returns boolean parameter value

◆ changeBoundsRational() [1/3]

void changeBoundsRational ( const VectorRational lower,
const VectorRational upper 
)

changes vectors of column bounds to lower and upper

◆ changeBoundsRational() [2/3]

void changeBoundsRational ( int  i,
const Rational lower,
const Rational upper 
)

changes bounds of column i to lower and upper

◆ changeBoundsRational() [3/3]

void changeBoundsRational ( int  i,
const mpq_t *  lower,
const mpq_t *  upper 
)

changes bounds of column i to lower and upper (GMP only method)

◆ changeBoundsReal() [1/2]

void changeBoundsReal ( const VectorBase< R > &  lower,
const VectorBase< R > &  upper 
)

changes vectors of column bounds to lower and upper

◆ changeBoundsReal() [2/2]

void changeBoundsReal ( int  i,
const R &  lower,
const R &  upper 
)

changes bounds of column i to lower and upper

◆ changeColRational()

void changeColRational ( int  i,
const LPColRational lpcol 
)

replaces column i with lpcol

◆ changeColReal()

void changeColReal ( int  i,
const LPColReal lpcol 
)

replaces column i with lpcol

◆ changeElementRational() [1/2]

void changeElementRational ( int  i,
int  j,
const Rational val 
)

changes matrix entry in row i and column j to val

◆ changeElementRational() [2/2]

void changeElementRational ( int  i,
int  j,
const mpq_t *  val 
)

changes matrix entry in row i and column j to val (GMP only method)

◆ changeElementReal()

void changeElementReal ( int  i,
int  j,
const R &  val 
)

changes matrix entry in row i and column j to val

◆ changeLhsRational() [1/3]

void changeLhsRational ( const VectorRational lhs)

changes left-hand side vector for constraints to lhs

◆ changeLhsRational() [2/3]

void changeLhsRational ( int  i,
const Rational lhs 
)

changes left-hand side of row i to lhs

◆ changeLhsRational() [3/3]

void changeLhsRational ( int  i,
const mpq_t *  lhs 
)

changes left-hand side of row i to lhs (GMP only method)

◆ changeLhsReal() [1/2]

void changeLhsReal ( const VectorBase< R > &  lhs)

changes left-hand side vector for constraints to lhs

◆ changeLhsReal() [2/2]

void changeLhsReal ( int  i,
const R &  lhs 
)

changes left-hand side of row i to lhs

◆ changeLowerRational() [1/3]

void changeLowerRational ( const VectorRational lower)

changes vector of lower bounds to lower

◆ changeLowerRational() [2/3]

void changeLowerRational ( int  i,
const Rational lower 
)

changes lower bound of column i to lower

◆ changeLowerRational() [3/3]

void changeLowerRational ( int  i,
const mpq_t *  lower 
)

changes lower bound of column i to lower (GMP only method)

◆ changeLowerReal() [1/2]

void changeLowerReal ( const VectorBase< R > &  lower)

changes vector of lower bounds to lower

◆ changeLowerReal() [2/2]

void changeLowerReal ( int  i,
const R &  lower 
)

changes lower bound of column i to lower

◆ changeObjRational() [1/3]

void changeObjRational ( const VectorRational obj)

changes objective function vector to obj

◆ changeObjRational() [2/3]

void changeObjRational ( int  i,
const Rational obj 
)

changes objective coefficient of column i to obj

◆ changeObjRational() [3/3]

void changeObjRational ( int  i,
const mpq_t *  obj 
)

changes objective coefficient of column i to obj (GMP only method)

◆ changeObjReal() [1/2]

void changeObjReal ( const VectorBase< R > &  obj)

changes objective function vector to obj

◆ changeObjReal() [2/2]

void changeObjReal ( int  i,
const R &  obj 
)

changes objective coefficient of column i to obj

◆ changeRangeRational() [1/3]

void changeRangeRational ( const VectorRational lhs,
const VectorRational rhs 
)

changes left- and right-hand side vectors

◆ changeRangeRational() [2/3]

void changeRangeRational ( int  i,
const Rational lhs,
const Rational rhs 
)

changes left- and right-hand side of row i

◆ changeRangeRational() [3/3]

void changeRangeRational ( int  i,
const mpq_t *  lhs,
const mpq_t *  rhs 
)

changes left- and right-hand side of row i (GMP only method)

◆ changeRangeReal() [1/2]

void changeRangeReal ( const VectorBase< R > &  lhs,
const VectorBase< R > &  rhs 
)

changes left- and right-hand side vectors

◆ changeRangeReal() [2/2]

void changeRangeReal ( int  i,
const R &  lhs,
const R &  rhs 
)

changes left- and right-hand side of row i

◆ changeRhsRational() [1/3]

void changeRhsRational ( const VectorRational rhs)

changes right-hand side vector to rhs

◆ changeRhsRational() [2/3]

void changeRhsRational ( const mpq_t *  rhs,
int  rhsSize 
)

changes right-hand side vector to rhs (GMP only method)

◆ changeRhsRational() [3/3]

void changeRhsRational ( int  i,
const Rational rhs 
)

changes right-hand side of row i to rhs

◆ changeRhsReal() [1/2]

void changeRhsReal ( const VectorBase< R > &  rhs)

changes right-hand side vector to rhs

◆ changeRhsReal() [2/2]

void changeRhsReal ( int  i,
const R &  rhs 
)

changes right-hand side of row i to rhs

◆ changeRowRational()

void changeRowRational ( int  i,
const LPRowRational lprow 
)

replaces row i with lprow

◆ changeRowReal()

void changeRowReal ( int  i,
const LPRowBase< R > &  lprow 
)

replaces row i with lprow

◆ changeUpperRational() [1/3]

void changeUpperRational ( const VectorRational upper)

changes vector of upper bounds to upper

◆ changeUpperRational() [2/3]

void changeUpperRational ( int  i,
const Rational upper 
)

changes i 'th upper bound to upper

◆ changeUpperRational() [3/3]

void changeUpperRational ( int  i,
const mpq_t *  upper 
)

changes upper bound of column i to upper (GMP only method)

◆ changeUpperReal() [1/2]

void changeUpperReal ( const VectorBase< R > &  upper)

changes vector of upper bounds to upper

◆ changeUpperReal() [2/2]

void changeUpperReal ( int  i,
const R &  upper 
)

changes i 'th upper bound to upper

◆ checkBasisDualFeasibility()

bool checkBasisDualFeasibility ( VectorBase< R >  feasVec)
private

checks the dual feasibility of the current basis

◆ clearBasis()

void clearBasis ( )

clears starting basis

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ clearLPRational()

void clearLPRational ( )

clears the LP

◆ clearLPReal()

void clearLPReal ( )

clears the LP

◆ coefReal()

R coefReal ( int  row,
int  col 
) const

returns (unscaled) coefficient

◆ colVectorRational()

const SVectorRational& colVectorRational ( int  i) const

returns vector of column i

◆ colVectorRealInternal()

const SVectorBase<R>& colVectorRealInternal ( int  i) const

returns vector of col i, ignoring scaling

◆ computeBasisInverseRational()

bool computeBasisInverseRational ( )

compute rational basis inverse; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ decompTerminate()

bool decompTerminate ( timeLimit)
private

function call to terminate the decomposition simplex

◆ dlcmSizeDualRational()

int dlcmSizeDualRational ( const int  base = 2)

get size of least common multiple of denominators in dual solution

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ dlcmSizePrimalRational()

int dlcmSizePrimalRational ( const int  base = 2)

get size of least common multiple of denominators in primal solution

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ dmaxSizeDualRational()

int dmaxSizeDualRational ( const int  base = 2)

get size of largest denominator in dual solution

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ dmaxSizePrimalRational()

int dmaxSizePrimalRational ( const int  base = 2)

get size of largest denominator in primal solution

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasis()

void getBasis ( typename SPxSolverBase< R >::VarStatus  rows[],
typename SPxSolverBase< R >::VarStatus  cols[] 
) const

gets current basis via arrays of statuses

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInd()

void getBasisInd ( int *  bind) const

gets the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisIndRational()

bool getBasisIndRational ( DataArray< int > &  bind)

gets an array of indices for the columns of the rational basis matrix; bind[i] >= 0 means that the i-th column of the basis matrix contains variable bind[i]; bind[i] < 0 means that the i-th column of the basis matrix contains the slack variable for row -bind[i]-1; performs rational factorization if not available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInverseColRational()

bool getBasisInverseColRational ( const int  c,
SSVectorRational vec 
)

computes column c of basis inverse; performs rational factorization if not available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInverseColReal()

bool getBasisInverseColReal ( int  c,
R *  coef,
int *  inds = NULL,
int *  ninds = NULL,
bool  unscale = true 
)

computes column c of basis inverse; returns true on success

Parameters
cwhich column of the basis inverse is computed
coefvalues of result vector (not packed but scattered)
indsindices of result vector (NULL if not to be used)
nindsnumber of nonzeros in result vector
unscaledetermines whether the result should be unscaled according to the original LP data

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInverseRowRational()

bool getBasisInverseRowRational ( const int  r,
SSVectorRational vec 
)

computes row r of basis inverse; performs rational factorization if not available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInverseRowReal()

bool getBasisInverseRowReal ( int  r,
R *  coef,
int *  inds = NULL,
int *  ninds = NULL,
bool  unscale = true 
)

computes row r of basis inverse; returns true on success

Parameters
rwhich row of the basis inverse is computed
coefvalues of result vector (not packed but scattered)
indsindices of result vector (NULL if not to be used)
nindsnumber of nonzeros in result vector
unscaledetermines whether the result should be unscaled according to the original LP data

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInverseTimesVecRational()

bool getBasisInverseTimesVecRational ( const SVectorRational rhs,
SSVectorRational sol 
)

computes solution of basis matrix B * sol = rhs; performs rational factorization if not available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisInverseTimesVecReal()

bool getBasisInverseTimesVecReal ( R *  rhs,
R *  sol,
bool  unscale = true 
)

computes dense solution of basis matrix B * sol = rhs; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBasisMetric()

bool getBasisMetric ( R &  metric,
int  type = 0 
)

compute one of several matrix metrics based on the diagonal of the LU factorization type = 0: max/min ratio type = 1: trace of U (sum of diagonal elements) type = 2: determinant (product of diagonal elements)

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBoundViolation()

bool getBoundViolation ( R &  maxviol,
R &  sumviol 
)

gets violation of bounds; returns true on success

Referenced by checkSolutionReal(), and SoPlexBase< R >::ignoreUnscaledViolations().

◆ getBoundViolationRational()

bool getBoundViolationRational ( Rational maxviol,
Rational sumviol 
)

◆ getColRational()

void getColRational ( int  i,
LPColRational lpcol 
) const

gets column i

◆ getColsRational()

void getColsRational ( int  start,
int  end,
LPColSetRational lpcolset 
) const

gets columns start, ..., end

◆ getColVectorReal()

void getColVectorReal ( int  i,
DSVectorBase< R > &  col 
) const

gets vector of col i

◆ getCompSlackVarCoeff()

R getCompSlackVarCoeff ( int  primalRowNum)
private

gets the coefficient of the slack variable in the primal complementary problem

◆ getDecompBoundViolation()

bool getDecompBoundViolation ( R &  maxviol,
R &  sumviol 
)
private

gets violation of bounds; returns true on success

◆ getDecompRowViolation()

bool getDecompRowViolation ( R &  maxviol,
R &  sumviol 
)
private

gets violation of constraints; returns true on success

◆ getDual()

bool getDual ( VectorBase< R > &  vector)

gets the dual solution vector if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and printDualSolution().

◆ getDualFarkas()

bool getDualFarkas ( VectorBase< R > &  vector)

gets the Farkas proof if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and printDualSolution().

◆ getDualFarkasRational() [1/2]

bool getDualFarkasRational ( VectorRational vector)

◆ getDualFarkasRational() [2/2]

bool getDualFarkasRational ( mpq_t *  vector,
const int  size 
)

gets the Farkas proof if LP is infeasible; returns true on success (GMP only method)

◆ getDualFarkasReal()

bool getDualFarkasReal ( R *  vector,
int  dim 
)

◆ getDualNorms()

bool getDualNorms ( int &  nnormsRow,
int &  nnormsCol,
R *  norms 
) const

gets steepest edge norms and returns false if they are not available

◆ getDualRational() [1/2]

bool getDualRational ( VectorRational vector)

◆ getDualRational() [2/2]

bool getDualRational ( mpq_t *  vector,
const int  size 
)

gets the dual solution vector if available; returns true on success (GMP only method)

◆ getDualReal()

bool getDualReal ( R *  p_vector,
int  dim 
)

◆ getDualViolation()

bool getDualViolation ( R &  maxviol,
R &  sumviol 
)

gets violation of dual multipliers; returns true on success

Referenced by checkSolutionReal(), and SoPlexBase< R >::ignoreUnscaledViolations().

◆ getDualViolationRational()

bool getDualViolationRational ( Rational maxviol,
Rational sumviol 
)

◆ getEstimatedCondition()

bool getEstimatedCondition ( R &  condition)

computes an estimated condition number for the current basis matrix using the power method; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getExactCondition()

bool getExactCondition ( R &  condition)

computes the exact condition number for the current basis matrix using the power method; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getExpectedDualVariableSign()

DualSign getExpectedDualVariableSign ( int  rowNumber)
private

returns the expected sign of the dual variables for the reduced problem

◆ getLhsReal()

void getLhsReal ( VectorBase< R > &  lhs) const

gets left-hand side vector

◆ getLowerReal()

void getLowerReal ( VectorBase< R > &  lower) const

gets lower bound vector

◆ getNdualNorms()

void getNdualNorms ( int &  nnormsRow,
int &  nnormsCol 
) const

gets number of available dual norms

◆ getObjRational() [1/2]

void getObjRational ( VectorRational obj) const

gets objective function vector

◆ getObjRational() [2/2]

void getObjRational ( int  i,
Rational obj 
) const

gets objective value of column i

◆ getObjReal()

void getObjReal ( VectorBase< R > &  obj) const

gets objective function vector

◆ getOriginalProblemBasisColStatus()

void getOriginalProblemBasisColStatus ( int &  nNonBasicCols)
private

function to retrieve the column status for the original problem basis from the reduced and complementary problems

◆ getOriginalProblemBasisRowStatus()

void getOriginalProblemBasisRowStatus ( DataArray< int > &  degenerateRowNums,
DataArray< typename SPxSolverBase< R >::VarStatus > &  degenerateRowStatus,
int &  nDegenerateRows,
int &  nNonBasicRows 
)
private

function to retrieve the original problem row basis status from the reduced and complementary problems

◆ getOriginalProblemStatistics()

void getOriginalProblemStatistics ( )
private

stores the problem statistics of the original problem

◆ getOrigProbDualVariableSign()

DualSign getOrigProbDualVariableSign ( int  rowNumber)
private

returns the expected sign of the dual variables for the original problem

◆ getOrigVarFixedDirection()

int getOrigVarFixedDirection ( int  colNum)
private

determining which bound the primal variables will be fixed to.

◆ getPricerName()

const char* getPricerName ( )

name of currently loaded pricer

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getPrimal()

bool getPrimal ( VectorBase< R > &  vector)

gets the primal solution vector if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and printPrimalSolution().

◆ getPrimalRational() [1/2]

bool getPrimalRational ( VectorRational vector)

◆ getPrimalRational() [2/2]

bool getPrimalRational ( mpq_t *  vector,
const int  size 
)

gets the primal solution vector if available; returns true on success (GMP only method)

◆ getPrimalRay()

bool getPrimalRay ( VectorBase< R > &  vector)

gets the primal ray if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and printPrimalSolution().

◆ getPrimalRayRational() [1/2]

bool getPrimalRayRational ( VectorRational vector)

◆ getPrimalRayRational() [2/2]

bool getPrimalRayRational ( mpq_t *  vector,
const int  size 
)

gets the primal ray if LP is unbounded; returns true on success (GMP only method)

◆ getPrimalRayReal()

bool getPrimalRayReal ( R *  vector,
int  dim 
)

◆ getPrimalReal()

bool getPrimalReal ( R *  p_vector,
int  size 
)

◆ getRatiotesterName()

const char* getRatiotesterName ( )

name of currently loaded ratiotester

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getRedCost()

bool getRedCost ( VectorBase< R > &  vector)

gets the vector of reduced cost values if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and printDualSolution().

◆ getRedCostRational() [1/2]

bool getRedCostRational ( VectorRational vector)

◆ getRedCostRational() [2/2]

bool getRedCostRational ( mpq_t *  vector,
const int  size 
)

gets the vector of reduced cost values if available; returns true on success (GMP only method)

◆ getRedCostReal()

bool getRedCostReal ( R *  vector,
int  dim 
)

◆ getRedCostViolation()

bool getRedCostViolation ( R &  maxviol,
R &  sumviol 
)

gets violation of reduced costs; returns true on success

Referenced by checkSolutionReal(), and SoPlexBase< R >::ignoreUnscaledViolations().

◆ getRedCostViolationRational()

bool getRedCostViolationRational ( Rational maxviol,
Rational sumviol 
)

◆ getRhsReal()

void getRhsReal ( VectorBase< R > &  rhs) const

gets right-hand side vector

◆ getRowRational()

void getRowRational ( int  i,
LPRowRational lprow 
) const

gets row i

◆ getRowsRational()

void getRowsRational ( int  start,
int  end,
LPRowSetRational lprowset 
) const

gets rows start, ..., end.

◆ getRowVectorReal()

void getRowVectorReal ( int  i,
DSVectorBase< R > &  row 
) const

gets vector of row i

◆ getRowViolation()

bool getRowViolation ( R &  maxviol,
R &  sumviol 
)

gets violation of constraints; returns true on success

Referenced by checkSolutionReal(), and SoPlexBase< R >::ignoreUnscaledViolations().

◆ getRowViolationRational()

bool getRowViolationRational ( Rational maxviol,
Rational sumviol 
)

◆ getScalerName()

const char* getScalerName ( )

name of scaling method

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getSimplifierName()

const char* getSimplifierName ( )

name of simplifier

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getSlacksRational() [1/2]

bool getSlacksRational ( VectorRational vector)

gets the vector of slack values if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getSlacksRational() [2/2]

bool getSlacksRational ( mpq_t *  vector,
const int  size 
)

gets the vector of slack values if available; returns true on success (GMP only method)

◆ getSlacksReal() [1/2]

bool getSlacksReal ( VectorBase< R > &  vector)

gets the vector of slack values if available; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getSlacksReal() [2/2]

bool getSlacksReal ( R *  p_vector,
int  dim 
)

◆ getStarterName()

const char* getStarterName ( )

name of starter

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ getUpperReal()

void getUpperReal ( VectorBase< R > &  upper) const

gets upper bound vector

◆ hasBasis()

bool hasBasis ( ) const

is an advanced starting basis available?

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ hasDual()

bool hasDual ( ) const

◆ hasDualFarkas()

bool hasDualFarkas ( ) const

is Farkas proof of infeasibility available?

Referenced by SoPlexBase< R >::hasDual().

◆ hasPrimal()

bool hasPrimal ( ) const

deprecated: use hasSol() instead

Definition at line 612 of file soplex.h.

References SoPlexBase< R >::hasSol().

Referenced by checkSolutionRational(), and checkSolutionReal().

◆ hasPrimalRay()

bool hasPrimalRay ( ) const

is a primal unbounded ray available?

Referenced by SoPlexBase< R >::hasDual().

◆ hasSol()

bool hasSol ( ) const

is a solution available (not neccessarily feasible)?

Referenced by SoPlexBase< R >::hasDual(), SoPlexBase< R >::hasPrimal(), and SoPlexBase< R >::solve().

◆ ignoreUnscaledViolations()

bool ignoreUnscaledViolations ( )

sets the status to OPTIMAL in case the LP has been solved with unscaled violations

Definition at line 633 of file soplex.h.

References SoPlexBase< R >::_status, SoPlexBase< R >::basisColStatus(), SoPlexBase< R >::basisRowStatus(), SoPlexBase< R >::basisStatus(), SoPlexBase< R >::clearBasis(), SoPlexBase< R >::computeBasisInverseRational(), SoPlexBase< R >::dlcmSizeDualRational(), SoPlexBase< R >::dlcmSizePrimalRational(), SoPlexBase< R >::dmaxSizeDualRational(), SoPlexBase< R >::dmaxSizePrimalRational(), SoPlexBase< R >::getBasis(), SoPlexBase< R >::getBasisInd(), SoPlexBase< R >::getBasisIndRational(), SoPlexBase< R >::getBasisInverseColRational(), SoPlexBase< R >::getBasisInverseColReal(), SoPlexBase< R >::getBasisInverseRowRational(), SoPlexBase< R >::getBasisInverseRowReal(), SoPlexBase< R >::getBasisInverseTimesVecRational(), SoPlexBase< R >::getBasisInverseTimesVecReal(), SoPlexBase< R >::getBasisMetric(), SoPlexBase< R >::getBoundViolation(), SoPlexBase< R >::getBoundViolationRational(), SoPlexBase< R >::getDual(), SoPlexBase< R >::getDualFarkas(), SoPlexBase< R >::getDualFarkasRational(), SoPlexBase< R >::getDualFarkasReal(), SoPlexBase< R >::getDualRational(), SoPlexBase< R >::getDualReal(), SoPlexBase< R >::getDualViolation(), SoPlexBase< R >::getDualViolationRational(), SoPlexBase< R >::getEstimatedCondition(), SoPlexBase< R >::getExactCondition(), SoPlexBase< R >::getPricerName(), SoPlexBase< R >::getPrimal(), SoPlexBase< R >::getPrimalRational(), SoPlexBase< R >::getPrimalRay(), SoPlexBase< R >::getPrimalRayRational(), SoPlexBase< R >::getPrimalRayReal(), SoPlexBase< R >::getPrimalReal(), SoPlexBase< R >::getRatiotesterName(), SoPlexBase< R >::getRedCost(), SoPlexBase< R >::getRedCostRational(), SoPlexBase< R >::getRedCostReal(), SoPlexBase< R >::getRedCostViolation(), SoPlexBase< R >::getRedCostViolationRational(), SoPlexBase< R >::getRowViolation(), SoPlexBase< R >::getRowViolationRational(), SoPlexBase< R >::getScalerName(), SoPlexBase< R >::getSimplifierName(), SoPlexBase< R >::getSlacksRational(), SoPlexBase< R >::getSlacksReal(), SoPlexBase< R >::getStarterName(), SoPlexBase< R >::hasBasis(), SoPlexBase< R >::multBasis(), SoPlexBase< R >::multBasisTranspose(), SoPlexBase< R >::numIterations(), SoPlexBase< R >::objValueRational(), SoPlexBase< R >::objValueReal(), SoPlexBase< R >::readBasisFile(), SoPlexBase< R >::readFile(), SoPlexBase< R >::setBasis(), SoPlexBase< R >::solveTime(), SoPlexBase< R >::statisticString(), SoPlexBase< R >::totalSizeDualRational(), SoPlexBase< R >::totalSizePrimalRational(), SoPlexBase< R >::writeBasisFile(), SoPlexBase< R >::writeDualFileReal(), SoPlexBase< R >::writeFile(), SoPlexBase< R >::writeFileRational(), SoPlexBase< R >::writeFileReal(), SoPlexBase< R >::writeStateRational(), and SoPlexBase< R >::writeStateReal().

◆ intParam()

int intParam ( const IntParam  param) const

returns integer parameter value

Referenced by checkSolution(), and runSoPlex().

◆ isDualFeasible()

bool isDualFeasible ( ) const

is stored dual solution feasible?

Referenced by SoPlexBase< R >::hasDual(), and printDualSolution().

◆ isPrimalFeasible()

bool isPrimalFeasible ( ) const

is stored primal solution feasible?

Referenced by printPrimalSolution(), and SoPlexBase< R >::solve().

◆ lhsRational() [1/2]

const VectorRational& lhsRational ( ) const

returns left-hand side vector

◆ lhsRational() [2/2]

const Rational& lhsRational ( int  i) const

returns left-hand side of row i

◆ lhsReal()

R lhsReal ( int  i) const

returns left-hand side of row i

◆ lhsRealInternal()

const VectorBase<R>& lhsRealInternal ( ) const

returns left-hand side vector, ignoring scaling

◆ loadSettingsFile()

bool loadSettingsFile ( const char *  filename)

reads settings file; returns true on success

Referenced by runSoPlex().

◆ lowerRational() [1/2]

const VectorRational& lowerRational ( ) const

returns lower bound vector

◆ lowerRational() [2/2]

const Rational& lowerRational ( int  i) const

returns lower bound of column i

◆ lowerReal()

R lowerReal ( int  i) const

returns lower bound of column i

◆ lowerRealInternal()

const VectorBase<R>& lowerRealInternal ( ) const

returns lower bound vector

◆ maxAbsNonzeroRational()

Rational maxAbsNonzeroRational ( ) const

returns biggest non-zero element in absolute value

◆ maxAbsNonzeroReal()

R maxAbsNonzeroReal ( ) const

returns biggest non-zero element in absolute value

◆ maxObjRational() [1/2]

const VectorRational& maxObjRational ( ) const

returns objective function vector after transformation to a maximization problem; since this is how it is stored internally, this is generally faster

◆ maxObjRational() [2/2]

const Rational& maxObjRational ( int  i) const

returns objective value of column i after transformation to a maximization problem; since this is how it is stored internally, this is generally faster

◆ maxObjReal()

R maxObjReal ( int  i) const

returns objective value of column i after transformation to a maximization problem; since this is how it is stored internally, this is generally faster

◆ maxObjRealInternal()

const VectorBase<R>& maxObjRealInternal ( ) const

returns objective function vector after transformation to a maximization problem; since this is how it is stored internally, this is generally faster

◆ minAbsNonzeroRational()

Rational minAbsNonzeroRational ( ) const

returns smallest non-zero element in absolute value

◆ minAbsNonzeroReal()

R minAbsNonzeroReal ( ) const

returns smallest non-zero element in absolute value

◆ multBasis()

bool multBasis ( R *  vec,
bool  unscale = true 
)

multiply with basis matrix; B * vec (inplace)

Parameters
vec(dense) vector to be multiplied with
unscaledetermines whether the result should be unscaled according to the original LP data

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ multBasisTranspose()

bool multBasisTranspose ( R *  vec,
bool  unscale = true 
)

multiply with transpose of basis matrix; vec * B^T (inplace)

Parameters
vec(dense) vector to be multiplied with
unscaledetermines whether the result should be unscaled according to the original LP data

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ numCols()

int numCols ( ) const

Templated function that returns number of columns.

Referenced by printDualSolution(), printPrimalSolution(), and runSoPlex().

◆ numColsRational()

int numColsRational ( ) const

Referenced by printPrimalSolution().

◆ numColsReal()

int numColsReal ( ) const

◆ numIterations()

int numIterations ( ) const

number of iterations since last call to solve

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ numNonzeros()

int numNonzeros ( ) const

returns number of nonzeros

Referenced by runSoPlex().

◆ numNonzerosRational()

int numNonzerosRational ( ) const

◆ numRows()

int numRows ( ) const

returns number of rows

Referenced by printDualSolution(), and runSoPlex().

◆ numRowsRational()

int numRowsRational ( ) const

Referenced by printDualSolution().

◆ numRowsReal()

int numRowsReal ( ) const

◆ objRational()

Rational objRational ( int  i) const

returns objective value of column i

◆ objReal()

R objReal ( int  i) const

returns objective value of column i

◆ objValueRational()

Rational objValueRational ( )

returns the objective value if a primal solution is available

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ objValueReal()

R objValueReal ( )

returns the objective value if a primal solution is available

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ operator=()

SoPlexBase<R>& operator= ( const SoPlexBase< R > &  rhs)

assignment operator

◆ optimize()

SPxSolverBase<R>::Status optimize ( volatile bool *  interrupt = NULL)

optimize the given LP

Referenced by runSoPlex(), and SoPlexBase< R >::solve().

◆ parseSettingsString()

bool parseSettingsString ( char *  str)

parses one setting string and returns true on success; note that string is modified

Referenced by runSoPlex().

◆ printDecompDisplayLine()

void printDecompDisplayLine ( SPxSolverBase< R > &  solver,
const SPxOut::Verbosity  origVerb,
bool  force,
bool  forceHead 
)
private

prints a display line of the flying table for the DBDS

◆ printOriginalProblemStatistics()

void printOriginalProblemStatistics ( std::ostream &  os)
private

stores the problem statistics of the original problem

◆ printShortStatistics()

void printShortStatistics ( std::ostream &  os)

prints short statistics

◆ printSolutionStatistics()

void printSolutionStatistics ( std::ostream &  os)

prints solution statistics

◆ printSolvingStatistics()

void printSolvingStatistics ( std::ostream &  os)

prints statistics on solving process

◆ printStatistics()

void printStatistics ( std::ostream &  os)

prints complete statistics

◆ printStatus()

void printStatus ( std::ostream &  os,
typename SPxSolverBase< R >::Status  status 
)

prints status

◆ printUserSettings()

void printUserSettings ( )

print non-default parameter values

Referenced by runSoPlex().

◆ printVersion()

void printVersion ( ) const

prints version and compilation options

Referenced by runSoPlex().

◆ randomSeed()

unsigned int randomSeed ( ) const

returns the current random seed of the solver instance

◆ readBasisFile()

bool readBasisFile ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0 
)

reads basis information from filename and returns true on success; if rowNames and colNames are NULL, default names are assumed; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and runSoPlex().

◆ readFile()

bool readFile ( const char *  filename,
NameSet rowNames = 0,
NameSet colNames = 0,
DIdxSet intVars = 0 
)

reads LP file in LP or MPS format according to READMODE parameter; gets row names, column names, and integer variables if desired; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and runSoPlex().

◆ realParam()

Real realParam ( const RealParam  param) const

returns real parameter value

Referenced by checkSolutionRational(), and checkSolutionReal().

◆ removeColRangeRational()

void removeColRangeRational ( int  start,
int  end,
int  perm[] = 0 
)

removes columns start to end including both; an array perm of size numColsRational() may be passed as buffer memory

◆ removeColRangeReal()

void removeColRangeReal ( int  start,
int  end,
int  perm[] = 0 
)

removes columns start to end including both; an array perm of size numColsReal() may be passed as buffer memory

◆ removeColRational()

void removeColRational ( int  i)

removes column i

◆ removeColReal()

void removeColReal ( int  i)

removes column i

◆ removeColsRational() [1/2]

void removeColsRational ( int  perm[])

removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where column i has been moved to; note that perm must point to an array of size at least numColsRational()

◆ removeColsRational() [2/2]

void removeColsRational ( int  idx[],
int  n,
int  perm[] = 0 
)

remove all columns with indices in array idx of size n; an array perm of size numColsRational() may be passed as buffer memory

◆ removeColsReal() [1/2]

void removeColsReal ( int  perm[])

removes all columns with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where column i has been moved to; note that perm must point to an array of size at least numColsReal()

◆ removeColsReal() [2/2]

void removeColsReal ( int  idx[],
int  n,
int  perm[] = 0 
)

remove all columns with indices in array idx of size n; an array perm of size numColsReal() may be passed as buffer memory

◆ removeRowRangeRational()

void removeRowRangeRational ( int  start,
int  end,
int  perm[] = 0 
)

removes rows start to end including both; an array perm of size numRowsRational() may be passed as buffer memory

◆ removeRowRangeReal()

void removeRowRangeReal ( int  start,
int  end,
int  perm[] = 0 
)

removes rows start to end including both; an array perm of size numRows() may be passed as buffer memory

◆ removeRowRational()

void removeRowRational ( int  i)

removes row i

◆ removeRowReal()

void removeRowReal ( int  i)

removes row i

◆ removeRowsRational() [1/2]

void removeRowsRational ( int  perm[])

removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where row i has been moved to; note that perm must point to an array of size at least numRowsRational()

◆ removeRowsRational() [2/2]

void removeRowsRational ( int  idx[],
int  n,
int  perm[] = 0 
)

remove all rows with indices in array idx of size n; an array perm of size numRowsRational() may be passed as buffer memory

◆ removeRowsReal() [1/2]

void removeRowsReal ( int  perm[])

removes all rows with an index i such that perm[i] < 0; upon completion, perm[i] >= 0 indicates the new index where row i has been moved to; note that perm must point to an array of size at least numRows()

◆ removeRowsReal() [2/2]

void removeRowsReal ( int  idx[],
int  n,
int  perm[] = 0 
)

remove all rows with indices in array idx of size n; an array perm of size numRows() may be passed as buffer memory

◆ resetSettings()

void resetSettings ( const bool  quiet = false,
const bool  init = true 
)

resets default parameter settings

◆ rhsRational() [1/2]

const VectorRational& rhsRational ( ) const

returns right-hand side vector

◆ rhsRational() [2/2]

const Rational& rhsRational ( int  i) const

returns right-hand side of row i

◆ rhsReal()

R rhsReal ( int  i) const

returns right-hand side of row i

◆ rhsRealInternal()

const VectorBase<R>& rhsRealInternal ( ) const

returns right-hand side vector, ignoring scaling

◆ rowTypeRational()

LPRowRational::Type rowTypeRational ( int  i) const

returns inequality type of row i

◆ rowTypeReal()

LPRowBase<R>::Type rowTypeReal ( int  i) const

returns inequality type of row i

◆ rowVectorRational()

const SVectorRational& rowVectorRational ( int  i) const

returns vector of row i

◆ rowVectorRealInternal()

const SVectorBase<R>& rowVectorRealInternal ( int  i) const

returns vector of row i, ignoring scaling

◆ saveSettingsFile()

bool saveSettingsFile ( const char *  filename,
const bool  onlyChanged = false,
int  solvemode = 1 
) const

writes settings file; returns true on success

Referenced by runSoPlex().

◆ setBasis()

void setBasis ( const typename SPxSolverBase< R >::VarStatus  rows[],
const typename SPxSolverBase< R >::VarStatus  cols[] 
)

sets starting basis via arrays of statuses

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ setBoolParam()

bool setBoolParam ( const BoolParam  param,
const bool  value,
const bool  init = true 
)

sets boolean parameter value; returns true on success

◆ setDualNorms()

bool setDualNorms ( int  nnormsRow,
int  nnormsCol,
R *  norms 
)

sets steepest edge norms and returns false if that's not possible

◆ setIntegralityInformation()

void setIntegralityInformation ( int  ncols,
int *  intInfo 
)

pass integrality information about the variables to the solver

◆ setIntParam()

bool setIntParam ( const IntParam  param,
const int  value,
const bool  init = true 
)

sets integer parameter value; returns true on success

Referenced by runSoPlex().

◆ setRandomSeed()

void setRandomSeed ( unsigned int  seed)

set the random seeds of the solver instance

◆ setRealParam()

bool setRealParam ( const RealParam  param,
const Real  value,
const bool  init = true 
)

sets real parameter value; returns true on success

Referenced by runSoPlex().

◆ setSettings()

bool setSettings ( const Settings newSettings,
const bool  init = true 
)

sets parameter settings; returns true on success

◆ setTimings()

void setTimings ( const Timer::TYPE  ttype)

set statistic timers to a certain type

◆ settings()

const Settings& settings ( ) const

returns current parameter settings

◆ solve()

SPxSolverBase<R>::Status solve ( volatile bool *  interrupt = NULL)

◆ solveTime()

Real solveTime ( ) const

time spent in last call to solve

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ statisticString()

std::string statisticString ( ) const

statistical information in form of a string

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ status()

SPxSolverBase<R>::Status status ( ) const

returns the current solver status

Referenced by SoPlexBase< R >::solve().

◆ syncLPRational()

void syncLPRational ( )

synchronizes rational LP with real LP, i.e., copies real LP to rational LP, if sync mode is manual

◆ syncLPReal()

void syncLPReal ( )

synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, if sync mode is manual

◆ totalSizeDualRational()

int totalSizeDualRational ( const int  base = 2)

get size of dual solution

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ totalSizePrimalRational()

int totalSizePrimalRational ( const int  base = 2)

get size of primal solution

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ upperRational() [1/2]

const VectorRational& upperRational ( ) const

returns upper bound vector

◆ upperRational() [2/2]

const Rational& upperRational ( int  i) const

returns upper bound of column i

◆ upperReal()

R upperReal ( int  i) const

returns upper bound of column i

◆ upperRealInternal()

const VectorBase<R>& upperRealInternal ( ) const

returns upper bound vector

◆ writeBasisFile()

bool writeBasisFile ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const bool  cpxFormat = false 
) const

writes basis information to filename; if rowNames and colNames are NULL, default names are used; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ writeDualFileReal()

bool writeDualFileReal ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const DIdxSet intvars = 0 
) const

writes the dual of the real LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and colNames are NULL, default names are used; if intVars is not NULL, the variables contained in it are marked as integer; returns true on success

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and runSoPlex().

◆ writeFile()

bool writeFile ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const DIdxSet intvars = 0,
const bool  unscale = true 
) const

Templated write function Real writes real LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and colNames are NULL, default names are used; if intVars is not NULL, the variables contained in it are marked as integer; returns true on success Rational writes rational LP to file; LP or MPS format is chosen from the extension in filename; if rowNames and colNames are NULL, default names are used; if intVars is not NULL, the variables contained in it are marked as integer; returns true on success.

Referenced by SoPlexBase< R >::ignoreUnscaledViolations(), and runSoPlex().

◆ writeFileRational()

bool writeFileRational ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const DIdxSet intvars = 0 
) const

◆ writeFileReal()

bool writeFileReal ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const DIdxSet intvars = 0,
const bool  unscale = true 
) const

◆ writeStateRational()

void writeStateRational ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const bool  cpxFormat = false 
) const

writes internal LP, basis information, and parameter settings; if rowNames and colNames are NULL, default names are used

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ writeStateReal()

void writeStateReal ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const bool  cpxFormat = false 
) const

writes internal LP, basis information, and parameter settings; if rowNames and colNames are NULL, default names are used

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

Member Data Documentation

◆ _applyPolishing

bool _applyPolishing
private

Definition at line 1685 of file soplex.h.

◆ _basisStatusCols

DataArray<typename SPxSolverBase<R>::VarStatus > _basisStatusCols
private

Definition at line 1914 of file soplex.h.

◆ _basisStatusRows

DataArray<typename SPxSolverBase<R>::VarStatus > _basisStatusRows
private

Definition at line 1913 of file soplex.h.

◆ _beforeLiftCols

int _beforeLiftCols
private

Definition at line 1726 of file soplex.h.

◆ _beforeLiftRows

int _beforeLiftRows
private

Definition at line 1725 of file soplex.h.

◆ _colNames

NameSet* _colNames
private

Definition at line 1876 of file soplex.h.

◆ _colTypes

DataArray< RangeType > _colTypes
private

Definition at line 1747 of file soplex.h.

◆ _compSlackColId

SPxColId _compSlackColId
private

Definition at line 1822 of file soplex.h.

◆ _compSlackDualRowId

SPxRowId _compSlackDualRowId
private

Definition at line 1823 of file soplex.h.

◆ _compSlufactor

SLUFactor<R> _compSlufactor
private

Definition at line 1813 of file soplex.h.

◆ _compSolver

SPxSolverBase<R> _compSolver
private

Definition at line 1809 of file soplex.h.

◆ _currentProb

decompStatus _currentProb
private

Definition at line 1902 of file soplex.h.

◆ _currentSettings

Settings* _currentSettings
private

Definition at line 1637 of file soplex.h.

◆ _decompColStatus

int* _decompColStatus
private

Definition at line 1827 of file soplex.h.

◆ _decompCompPrimalColIDs

DataArray< SPxColId > _decompCompPrimalColIDs
private

Definition at line 1855 of file soplex.h.

◆ _decompCompPrimalFixedVarIDs

DataArray< SPxColId > _decompCompPrimalFixedVarIDs
private

Definition at line 1848 of file soplex.h.

◆ _decompCompPrimalRowIDs

DataArray< SPxRowId > _decompCompPrimalRowIDs
private

Definition at line 1853 of file soplex.h.

◆ _decompCompPrimalVarBoundIDs

DataArray< SPxColId > _decompCompPrimalVarBoundIDs
private

Definition at line 1850 of file soplex.h.

◆ _decompCompProbColIDsIdx

int* _decompCompProbColIDsIdx
private

Definition at line 1828 of file soplex.h.

◆ _decompDisplayLine

int _decompDisplayLine
private

Definition at line 1873 of file soplex.h.

◆ _decompDualColIDs

DataArray< SPxColId > _decompDualColIDs
private

Definition at line 1842 of file soplex.h.

◆ _decompDualRowIDs

DataArray< SPxRowId > _decompDualRowIDs
private

Definition at line 1840 of file soplex.h.

◆ _decompElimPrimalRowIDs

DataArray< SPxRowId > _decompElimPrimalRowIDs
private

Definition at line 1838 of file soplex.h.

◆ _decompFeasVector

VectorBase<R> _decompFeasVector
private

Definition at line 1819 of file soplex.h.

◆ _decompFixedVarDualIDs

DataArray< SPxColId > _decompFixedVarDualIDs
private

Definition at line 1843 of file soplex.h.

◆ _decompLP

SPxLPBase<R>* _decompLP
private

Definition at line 1677 of file soplex.h.

◆ _decompPrimalColIDs

DataArray< SPxColId > _decompPrimalColIDs
private

Definition at line 1836 of file soplex.h.

◆ _decompPrimalRowIDs

DataArray< SPxRowId > _decompPrimalRowIDs
private

Definition at line 1835 of file soplex.h.

◆ _decompReducedProbColIDs

DataArray< SPxColId > _decompReducedProbColIDs
private

Definition at line 1834 of file soplex.h.

◆ _decompReducedProbColRowIDs

DataArray< SPxRowId > _decompReducedProbColRowIDs
private

Definition at line 1832 of file soplex.h.

◆ _decompReducedProbCols

bool* _decompReducedProbCols
private

Definition at line 1825 of file soplex.h.

◆ _decompReducedProbRowIDs

DataArray< SPxRowId > _decompReducedProbRowIDs
private

Definition at line 1830 of file soplex.h.

◆ _decompReducedProbRows

bool* _decompReducedProbRows
private

Definition at line 1824 of file soplex.h.

◆ _decompRowStatus

int* _decompRowStatus
private

Definition at line 1826 of file soplex.h.

◆ _decompTransBasis

SPxBasisBase<R> _decompTransBasis
private

Definition at line 1816 of file soplex.h.

◆ _decompVarBoundDualIDs

DataArray< SPxColId > _decompVarBoundDualIDs
private

Definition at line 1845 of file soplex.h.

◆ _decompViolatedBounds

int* _decompViolatedBounds
private

Definition at line 1859 of file soplex.h.

◆ _decompViolatedRows

int* _decompViolatedRows
private

Definition at line 1860 of file soplex.h.

◆ _feasLhs

VectorRational _feasLhs
private

Definition at line 1711 of file soplex.h.

◆ _feasLower

VectorRational _feasLower
private

Definition at line 1713 of file soplex.h.

◆ _feasObj

VectorRational _feasObj
private

Definition at line 1710 of file soplex.h.

◆ _feasRhs

VectorRational _feasRhs
private

Definition at line 1712 of file soplex.h.

◆ _feasUpper

VectorRational _feasUpper
private

Definition at line 1714 of file soplex.h.

◆ _fixedOrigVars

int* _fixedOrigVars
private

Definition at line 1863 of file soplex.h.

◆ _hasBasis

bool _hasBasis
private

Definition at line 1920 of file soplex.h.

◆ _hasSolRational

bool _hasSolRational
private

Definition at line 1922 of file soplex.h.

◆ _hasSolReal

bool _hasSolReal
private

Definition at line 1921 of file soplex.h.

◆ _isRealLPLoaded

bool _isRealLPLoaded
private

Definition at line 1682 of file soplex.h.

◆ _isRealLPScaled

bool _isRealLPScaled
private

Definition at line 1684 of file soplex.h.

◆ _lastSolveMode

int _lastSolveMode
private

Definition at line 1911 of file soplex.h.

◆ _manualLhs

VectorBase<R> _manualLhs
private

Definition at line 1689 of file soplex.h.

◆ _manualLower

VectorBase<R> _manualLower
private

Definition at line 1687 of file soplex.h.

◆ _manualObj

VectorBase<R> _manualObj
private

Definition at line 1691 of file soplex.h.

◆ _manualRealLP

SPxLPBase<R> _manualRealLP
private

Definition at line 1692 of file soplex.h.

◆ _manualRhs

VectorBase<R> _manualRhs
private

Definition at line 1690 of file soplex.h.

◆ _manualUpper

VectorBase<R> _manualUpper
private

Definition at line 1688 of file soplex.h.

◆ _modLhs

VectorRational _modLhs
private

Definition at line 1717 of file soplex.h.

◆ _modLower

VectorRational _modLower
private

Definition at line 1715 of file soplex.h.

◆ _modObj

VectorRational _modObj
private

Definition at line 1719 of file soplex.h.

◆ _modRhs

VectorRational _modRhs
private

Definition at line 1718 of file soplex.h.

◆ _modUpper

VectorRational _modUpper
private

Definition at line 1716 of file soplex.h.

◆ _nCompPrimalCols

int _nCompPrimalCols
private

Definition at line 1871 of file soplex.h.

◆ _nCompPrimalRows

int _nCompPrimalRows
private

Definition at line 1870 of file soplex.h.

◆ _nDecompViolBounds

int _nDecompViolBounds
private

Definition at line 1857 of file soplex.h.

◆ _nDecompViolRows

int _nDecompViolRows
private

Definition at line 1858 of file soplex.h.

◆ _nDualCols

int _nDualCols
private

Definition at line 1869 of file soplex.h.

◆ _nDualRows

int _nDualRows
private

Definition at line 1868 of file soplex.h.

◆ _nElimPrimalRows

int _nElimPrimalRows
private

Definition at line 1867 of file soplex.h.

◆ _nPrimalCols

int _nPrimalCols
private

Definition at line 1866 of file soplex.h.

◆ _nPrimalRows

int _nPrimalRows
private

Definition at line 1865 of file soplex.h.

◆ _optimizeCalls

int _optimizeCalls
private

Definition at line 1929 of file soplex.h.

◆ _pricerAuto

SPxAutoPR<R> _pricerAuto
private

Definition at line 1664 of file soplex.h.

◆ _pricerDantzig

SPxDantzigPR<R> _pricerDantzig
private

Definition at line 1665 of file soplex.h.

◆ _pricerDevex

SPxDevexPR<R> _pricerDevex
private

Definition at line 1667 of file soplex.h.

◆ _pricerParMult

SPxParMultPR<R> _pricerParMult
private

Definition at line 1666 of file soplex.h.

◆ _pricerQuickSteep

SPxSteepPR<R> _pricerQuickSteep
private

Definition at line 1668 of file soplex.h.

◆ _pricerSteep

SPxSteepExPR<R> _pricerSteep
private

Definition at line 1669 of file soplex.h.

◆ _primalDualDiff

DSVectorRational _primalDualDiff
private

Definition at line 1720 of file soplex.h.

◆ _rationalFeastol

Rational _rationalFeastol
private

Definition at line 1641 of file soplex.h.

◆ _rationalLP

SPxLPRational* _rationalLP
private

Definition at line 1700 of file soplex.h.

◆ _rationalLUSolver

SLUFactorRational _rationalLUSolver
private

Definition at line 1701 of file soplex.h.

◆ _rationalLUSolverBind

DataArray<int> _rationalLUSolverBind
private

Definition at line 1702 of file soplex.h.

◆ _rationalMaxscaleincr

Rational _rationalMaxscaleincr
private

Definition at line 1643 of file soplex.h.

◆ _rationalNegInfty

Rational _rationalNegInfty
private

Definition at line 1640 of file soplex.h.

◆ _rationalNegone

Rational _rationalNegone
private

Definition at line 1933 of file soplex.h.

◆ _rationalOpttol

Rational _rationalOpttol
private

Definition at line 1642 of file soplex.h.

◆ _rationalPosInfty

Rational _rationalPosInfty
private

Definition at line 1639 of file soplex.h.

◆ _rationalPosone

Rational _rationalPosone
private

Definition at line 1932 of file soplex.h.

◆ _rationalZero

Rational _rationalZero
private

Definition at line 1934 of file soplex.h.

◆ _ratiotesterBoundFlipping

SPxBoundFlippingRT<R> _ratiotesterBoundFlipping
private

Definition at line 1673 of file soplex.h.

◆ _ratiotesterFast

SPxFastRT<R> _ratiotesterFast
private

Definition at line 1672 of file soplex.h.

◆ _ratiotesterHarris

SPxHarrisRT<R> _ratiotesterHarris
private

Definition at line 1671 of file soplex.h.

◆ _ratiotesterTextbook

SPxDefaultRT<R> _ratiotesterTextbook
private

Definition at line 1670 of file soplex.h.

◆ _realLP

SPxLPBase<R>* _realLP
private

Definition at line 1676 of file soplex.h.

◆ _rowNames

NameSet* _rowNames
private

Definition at line 1875 of file soplex.h.

◆ _rowTypes

DataArray< RangeType > _rowTypes
private

Definition at line 1748 of file soplex.h.

◆ _scaler

SPxScaler<R>* _scaler
private

Definition at line 1679 of file soplex.h.

◆ _scalerBiequi

SPxEquiliSC<R> _scalerBiequi
private

Definition at line 1656 of file soplex.h.

◆ _scalerGeo1

SPxGeometSC<R> _scalerGeo1
private

Definition at line 1657 of file soplex.h.

◆ _scalerGeo8

SPxGeometSC<R> _scalerGeo8
private

Definition at line 1658 of file soplex.h.

◆ _scalerGeoequi

SPxGeometSC<R> _scalerGeoequi
private

Definition at line 1659 of file soplex.h.

◆ _scalerLeastsq

SPxLeastSqSC<R> _scalerLeastsq
private

Definition at line 1660 of file soplex.h.

◆ _scalerUniequi

SPxEquiliSC<R> _scalerUniequi
private

Definition at line 1655 of file soplex.h.

◆ _simplifier

SPxSimplifier<R>* _simplifier
private

Definition at line 1678 of file soplex.h.

◆ _simplifierMainSM

SPxMainSM<R> _simplifierMainSM
private

Definition at line 1653 of file soplex.h.

◆ _simplifierPaPILO

Presol<R> _simplifierPaPILO
private

Definition at line 1654 of file soplex.h.

◆ _slackCols

LPColSetRational _slackCols
private

Definition at line 1704 of file soplex.h.

◆ _slufactor

SLUFactor<R> _slufactor
private

Definition at line 1652 of file soplex.h.

◆ _solRational

SolRational _solRational
private

Definition at line 1917 of file soplex.h.

◆ _solReal

SolBase<R> _solReal
private

Definition at line 1916 of file soplex.h.

◆ _solver

SPxSolverBase<R> _solver
private

Definition at line 1651 of file soplex.h.

◆ _starter

SPxStarter<R>* _starter
private

Definition at line 1680 of file soplex.h.

◆ _starterSum

SPxSumST<R> _starterSum
private

Definition at line 1662 of file soplex.h.

◆ _starterVector

SPxVectorST<R> _starterVector
private

Definition at line 1663 of file soplex.h.

◆ _starterWeight

SPxWeightST<R> _starterWeight
private

Definition at line 1661 of file soplex.h.

◆ _statistics

Statistics* _statistics
private

statistics since last call to solveReal() or solveRational()

Definition at line 1626 of file soplex.h.

◆ _status

SPxSolverBase<R>::Status _status
private

Definition at line 1910 of file soplex.h.

Referenced by SoPlexBase< R >::ignoreUnscaledViolations().

◆ _storedBasis

bool _storedBasis
private

Definition at line 1724 of file soplex.h.

◆ _storedBasisStatusCols

DataArray< typename SPxSolverBase<R>::VarStatus > _storedBasisStatusCols
private

Definition at line 1722 of file soplex.h.

◆ _storedBasisStatusRows

DataArray< typename SPxSolverBase<R>::VarStatus > _storedBasisStatusRows
private

Definition at line 1721 of file soplex.h.

◆ _tauColVector

DSVectorRational _tauColVector
private

Definition at line 1709 of file soplex.h.

◆ _transformedObj

VectorBase<R> _transformedObj
private

Definition at line 1818 of file soplex.h.

◆ _transformedRows

LPRowSetBase<R> _transformedRows
private

Definition at line 1821 of file soplex.h.

◆ _unboundedLhs

VectorRational _unboundedLhs
private

Definition at line 1707 of file soplex.h.

◆ _unboundedLower

VectorRational _unboundedLower
private

Definition at line 1705 of file soplex.h.

◆ _unboundedRhs

VectorRational _unboundedRhs
private

Definition at line 1708 of file soplex.h.

◆ _unboundedUpper

VectorRational _unboundedUpper
private

Definition at line 1706 of file soplex.h.

◆ _unitMatrixRational

Array< UnitVectorRational* > _unitMatrixRational
private

Definition at line 1723 of file soplex.h.

◆ _unscaleCalls

int _unscaleCalls
private

Definition at line 1930 of file soplex.h.

◆ _workSol

SolRational _workSol
private

Definition at line 1918 of file soplex.h.

◆ maxAbsNonzero

R maxAbsNonzero
private

Definition at line 1889 of file soplex.h.

◆ minAbsNonzero

R minAbsNonzero
private

Definition at line 1888 of file soplex.h.

◆ nNonzeros

int nNonzeros
private

Definition at line 1887 of file soplex.h.

◆ numCompProbIter

int numCompProbIter
private

Definition at line 1882 of file soplex.h.

◆ numDecompIter

int numDecompIter
private

Definition at line 1880 of file soplex.h.

◆ numIncludedRows

int numIncludedRows
private

Definition at line 1879 of file soplex.h.

◆ numProbCols

int numProbCols
private

Definition at line 1886 of file soplex.h.

◆ numProbRows

int numProbRows
private

Definition at line 1885 of file soplex.h.

◆ numRedProbIter

int numRedProbIter
private

Definition at line 1881 of file soplex.h.

◆ origCountBoxed

int origCountBoxed
private

Definition at line 1893 of file soplex.h.

◆ origCountEqual

int origCountEqual
private

Definition at line 1896 of file soplex.h.

◆ origCountFreeCol

int origCountFreeCol
private

Definition at line 1894 of file soplex.h.

◆ origCountFreeRow

int origCountFreeRow
private

Definition at line 1900 of file soplex.h.

◆ origCountLhs

int origCountLhs
private

Definition at line 1897 of file soplex.h.

◆ origCountLower

int origCountLower
private

Definition at line 1891 of file soplex.h.

◆ origCountRanged

int origCountRanged
private

Definition at line 1899 of file soplex.h.

◆ origCountRhs

int origCountRhs
private

Definition at line 1898 of file soplex.h.

◆ origCountUpper

int origCountUpper
private

Definition at line 1892 of file soplex.h.

◆ spxout