|
Preconfigured SoPlex LP-solver.
More...
#include <soplex.h>
|
|
| SoPlex () |
| default constructor
|
|
SoPlex & | operator= (const SoPlex &rhs) |
| assignment operator
|
|
| SoPlex (const SoPlex &rhs) |
| copy constructor
|
|
virtual | ~SoPlex () |
| destructor
|
|
|
int | numRowsReal () const |
| message handler
|
|
int | numColsReal () const |
| returns number of columns
|
|
int | numNonzerosReal () const |
| returns number of nonzeros
|
|
Real | minAbsNonzeroReal () const |
| returns smallest non-zero element in absolute value
|
|
Real | maxAbsNonzeroReal () const |
| returns biggest non-zero element in absolute value
|
|
void | getRowReal (int i, LPRowReal &lprow) const |
| gets row i
|
|
void | getRowsReal (int start, int end, LPRowSetReal &lprowset) const |
| gets rows start , ..., end .
|
|
const SVectorReal & | rowVectorReal (int i) const |
| returns vector of row i
|
|
const VectorReal & | rhsReal () const |
| returns right-hand side vector
|
|
Real | rhsReal (int i) const |
| returns right-hand side of row i
|
|
const VectorReal & | lhsReal () const |
| returns left-hand side vector
|
|
Real | lhsReal (int i) const |
| returns left-hand side of row i
|
|
LPRowReal::Type | rowTypeReal (int i) const |
| returns inequality type of row i
|
|
void | getColReal (int i, LPColReal &lpcol) const |
| gets column i
|
|
void | getColsReal (int start, int end, LPColSetReal &lpcolset) const |
| gets columns start , ..., end
|
|
const SVectorReal & | colVectorReal (int i) const |
| returns vector of column i
|
|
const VectorReal & | upperReal () const |
| returns upper bound vector
|
|
Real | upperReal (int i) const |
| returns upper bound of column i
|
|
const VectorReal & | lowerReal () const |
| returns lower bound vector
|
|
Real | lowerReal (int i) const |
| returns lower bound of column i
|
|
void | getObjReal (VectorReal &obj) const |
| gets objective function vector
|
|
Real | objReal (int i) const |
| returns objective value of column i
|
|
const VectorReal & | maxObjReal () const |
| returns objective function vector after transformation to a maximization problem; since this is how it is stored internally, this is generally faster
|
|
Real | 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
|
|
void | getNdualNorms (int &nnormsRow, int &nnormsCol) const |
| gets number of available dual norms
|
|
bool | getDualNorms (int &nnormsRow, int &nnormsCol, Real *norms) const |
| gets steepest edge norms and returns false if they are not available
|
|
bool | setDualNorms (int nnormsRow, int nnormsCol, Real *norms) |
| sets steepest edge norms and returns false if that's not possible
|
|
|
int | numRowsRational () const |
| returns number of rows
|
|
int | numColsRational () const |
| returns number of columns
|
|
int | numNonzerosRational () const |
| returns number of nonzeros
|
|
Rational | minAbsNonzeroRational () const |
| returns smallest non-zero element in absolute value
|
|
Rational | maxAbsNonzeroRational () const |
| returns biggest non-zero element in absolute value
|
|
void | getRowRational (int i, LPRowRational &lprow) const |
| gets row i
|
|
void | getRowsRational (int start, int end, LPRowSetRational &lprowset) const |
| gets rows start , ..., end .
|
|
const SVectorRational & | rowVectorRational (int i) const |
| returns vector of row i
|
|
const VectorRational & | rhsRational () const |
| returns right-hand side vector
|
|
const Rational & | rhsRational (int i) const |
| returns right-hand side of row i
|
|
const VectorRational & | lhsRational () const |
| returns left-hand side vector
|
|
const Rational & | lhsRational (int i) const |
| returns left-hand side of row i
|
|
LPRowRational::Type | rowTypeRational (int i) const |
| returns inequality type of row i
|
|
void | getColRational (int i, LPColRational &lpcol) const |
| gets column i
|
|
void | getColsRational (int start, int end, LPColSetRational &lpcolset) const |
| gets columns start , ..., end
|
|
const SVectorRational & | colVectorRational (int i) const |
| returns vector of column i
|
|
const VectorRational & | upperRational () const |
| returns upper bound vector
|
|
const Rational & | upperRational (int i) const |
| returns upper bound of column i
|
|
const VectorRational & | lowerRational () const |
| returns lower bound vector
|
|
const Rational & | lowerRational (int i) const |
| returns lower bound of column i
|
|
void | getObjRational (VectorRational &obj) const |
| gets objective function vector
|
|
void | getObjRational (int i, Rational &obj) const |
| gets objective value of column i
|
|
Rational | objRational (int i) const |
| returns objective value of column i
|
|
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
|
|
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
|
|
|
void | addRowReal (const LPRowReal &lprow) |
| adds a single row
|
|
void | addRowsReal (const LPRowSetReal &lprowset) |
| adds multiple rows
|
|
void | addColReal (const LPCol &lpcol) |
| adds a single column
|
|
void | addColsReal (const LPColSetReal &lpcolset) |
| adds multiple columns
|
|
void | changeRowReal (int i, const LPRowReal &lprow) |
| replaces row i with lprow
|
|
void | changeLhsReal (const VectorReal &lhs) |
| changes left-hand side vector for constraints to lhs
|
|
void | changeLhsReal (int i, const Real &lhs) |
| changes left-hand side of row i to lhs
|
|
void | changeRhsReal (const VectorReal &rhs) |
| changes right-hand side vector to rhs
|
|
void | changeRhsReal (int i, const Real &rhs) |
| changes right-hand side of row i to rhs
|
|
void | changeRangeReal (const VectorReal &lhs, const VectorReal &rhs) |
| changes left- and right-hand side vectors
|
|
void | changeRangeReal (int i, const Real &lhs, const Real &rhs) |
| changes left- and right-hand side of row i
|
|
void | changeColReal (int i, const LPColReal &lpcol) |
| replaces column i with lpcol
|
|
void | changeLowerReal (const VectorReal &lower) |
| changes vector of lower bounds to lower
|
|
void | changeLowerReal (int i, const Real &lower) |
| changes lower bound of column i to lower
|
|
void | changeUpperReal (const VectorReal &upper) |
| changes vector of upper bounds to upper
|
|
void | changeUpperReal (int i, const Real &upper) |
| changes i 'th upper bound to upper
|
|
void | changeBoundsReal (const VectorReal &lower, const VectorReal &upper) |
| changes vectors of column bounds to lower and upper
|
|
void | changeBoundsReal (int i, const Real &lower, const Real &upper) |
| changes bounds of column i to lower and upper
|
|
void | changeObjReal (const VectorReal &obj) |
| changes objective function vector to obj
|
|
void | changeObjReal (int i, const Real &obj) |
| changes objective coefficient of column i to obj
|
|
void | changeElementReal (int i, int j, const Real &val) |
| changes matrix entry in row i and column j to val
|
|
void | removeRowReal (int i) |
| removes row i
|
|
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 numRowsReal()
|
|
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 numRowsReal() may be passed as buffer memory
|
|
void | removeRowRangeReal (int start, int end, int perm[]=0) |
| removes rows start to end including both; an array perm of size numRowsReal() may be passed as buffer memory
|
|
void | removeColReal (int i) |
| removes column i
|
|
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()
|
|
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
|
|
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
|
|
void | clearLPReal () |
| clears the LP
|
|
void | syncLPReal () |
| synchronizes real LP with rational LP, i.e., copies (rounded) rational LP into real LP, if sync mode is manual
|
|
|
void | addRowRational (const LPRowRational &lprow) |
| adds a single row
|
|
void | addRowsRational (const LPRowSetRational &lprowset) |
| adds multiple rows
|
|
void | addColRational (const LPColRational &lpcol) |
| adds a single column
|
|
void | addColsRational (const LPColSetRational &lpcolset) |
| adds multiple columns
|
|
void | changeRowRational (int i, const LPRowRational &lprow) |
| replaces row i with lprow
|
|
void | changeLhsRational (const VectorRational &lhs) |
| changes left-hand side vector for constraints to lhs
|
|
void | changeLhsRational (int i, const Rational &lhs) |
| changes left-hand side of row i to lhs
|
|
void | changeRhsRational (const VectorRational &rhs) |
| changes right-hand side vector to rhs
|
|
void | changeRhsRational (int i, const Rational &rhs) |
| changes right-hand side of row i to rhs
|
|
void | changeRangeRational (const VectorRational &lhs, const VectorRational &rhs) |
| changes left- and right-hand side vectors
|
|
void | changeRangeRational (int i, const Rational &lhs, const Rational &rhs) |
| changes left- and right-hand side of row i
|
|
void | changeColRational (int i, const LPColRational &lpcol) |
| replaces column i with lpcol
|
|
void | changeLowerRational (const VectorRational &lower) |
| changes vector of lower bounds to lower
|
|
void | changeLowerRational (int i, const Rational &lower) |
| changes lower bound of column i to lower
|
|
void | changeUpperRational (const VectorRational &upper) |
| changes vector of upper bounds to upper
|
|
void | changeUpperRational (int i, const Rational &upper) |
| changes i 'th upper bound to upper
|
|
void | changeBoundsRational (const VectorRational &lower, const VectorRational &upper) |
| changes vectors of column bounds to lower and upper
|
|
void | changeBoundsRational (int i, const Rational &lower, const Rational &upper) |
| changes bounds of column i to lower and upper
|
|
void | changeObjRational (const VectorRational &obj) |
| changes objective function vector to obj
|
|
void | changeObjRational (int i, const Rational &obj) |
| changes objective coefficient of column i to obj
|
|
void | changeElementRational (int i, int j, const Rational &val) |
| changes matrix entry in row i and column j to val
|
|
void | removeRowRational (int i) |
| removes row i
|
|
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()
|
|
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
|
|
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
|
|
void | removeColRational (int i) |
| removes column i
|
|
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()
|
|
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
|
|
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
|
|
void | clearLPRational () |
| clears the LP
|
|
void | syncLPRational () |
| synchronizes rational LP with real LP, i.e., copies real LP to rational LP, if sync mode is manual
|
|
|
SPxSolver::Status | solve () |
| solves the LP
|
|
SPxSolver::Status | status () const |
| returns the current solver status
|
|
bool | hasPrimal () const |
| is a primal feasible solution available?
|
|
bool | hasPrimalRay () const |
| is a primal unbounded ray available?
|
|
bool | hasDual () const |
| is a dual feasible solution available?
|
|
bool | hasDualFarkas () const |
| is Farkas proof of infeasibility available?
|
|
|
Real | objValueReal () |
| returns the objective value if a primal solution is available
|
|
bool | getPrimalReal (VectorReal &vector) |
| gets the primal solution vector if available; returns true on success
|
|
bool | getSlacksReal (VectorReal &vector) |
| gets the vector of slack values if available; returns true on success
|
|
bool | getPrimalRayReal (VectorReal &vector) |
| gets the primal ray if available; returns true on success
|
|
bool | getDualReal (VectorReal &vector) |
| gets the dual solution vector if available; returns true on success
|
|
bool | getRedCostReal (VectorReal &vector) |
| gets the vector of reduced cost values if available; returns true on success
|
|
bool | getDualFarkasReal (VectorReal &vector) |
| gets the Farkas proof if available; returns true on success
|
|
bool | getBoundViolationReal (Real &maxviol, Real &sumviol) |
| gets violation of bounds; returns true on success
|
|
bool | getRowViolationReal (Real &maxviol, Real &sumviol) |
| gets violation of constraints; returns true on success
|
|
bool | getRedCostViolationReal (Real &maxviol, Real &sumviol) |
| gets violation of reduced costs; returns true on success
|
|
bool | getDualViolationReal (Real &maxviol, Real &sumviol) |
| gets violation of dual multipliers; returns true on success
|
|
|
Rational | objValueRational () |
| returns the objective value if a primal solution is available
|
|
bool | getPrimalRational (VectorRational &vector) |
| gets the primal solution vector if available; returns true on success
|
|
bool | getSlacksRational (VectorRational &vector) |
| gets the vector of slack values if available; returns true on success
|
|
bool | getPrimalRayRational (VectorRational &vector) |
| gets the primal ray if LP is unbounded; returns true on success
|
|
bool | getDualRational (VectorRational &vector) |
| gets the dual solution vector if available; returns true on success
|
|
bool | getRedCostRational (VectorRational &vector) |
| gets the vector of reduced cost values if available; returns true on success
|
|
bool | getDualFarkasRational (VectorRational &vector) |
| gets the Farkas proof if LP is infeasible; returns true on success
|
|
bool | getBoundViolationRational (Rational &maxviol, Rational &sumviol) |
| gets violation of bounds; returns true on success
|
|
bool | getRowViolationRational (Rational &maxviol, Rational &sumviol) |
| gets violation of constraints; returns true on success
|
|
bool | getRedCostViolationRational (Rational &maxviol, Rational &sumviol) |
| gets violation of reduced costs; returns true on success
|
|
bool | getDualViolationRational (Rational &maxviol, Rational &sumviol) |
| gets violation of dual multipliers; returns true on success
|
|
int | totalSizePrimalRational (const int base=2) |
| get size of primal solution
|
|
int | totalSizeDualRational (const int base=2) |
| get size of dual solution
|
|
int | dlcmSizePrimalRational (const int base=2) |
| get size of least common multiple of denominators in primal solution
|
|
int | dlcmSizeDualRational (const int base=2) |
| get size of least common multiple of denominators in dual solution
|
|
int | dmaxSizePrimalRational (const int base=2) |
| get size of largest denominator in primal solution
|
|
int | dmaxSizeDualRational (const int base=2) |
| get size of largest denominator in dual solution
|
|
|
bool | hasBasis () const |
| is an advanced starting basis available?
|
|
SPxBasis::SPxStatus | basisStatus () const |
| returns the current basis status
|
|
SPxSolver::VarStatus | basisRowStatus (int row) const |
| returns basis status for a single row
|
|
SPxSolver::VarStatus | basisColStatus (int col) const |
| returns basis status for a single column
|
|
void | getBasis (SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[]) const |
| gets current basis via arrays of statuses
|
|
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
|
|
bool | getEstimatedCondition (Real &condition) |
| computes an estimated condition number for the current basis matrix using the power method; returns true on success
|
|
bool | getExactCondition (Real &condition) |
| computes the exact condition number for the current basis matrix using the power method; returns true on success
|
|
bool | getBasisInverseRowReal (int r, Real *coef, int *inds=NULL, int *ninds=NULL) |
| computes row r of basis inverse; returns true on success
|
|
bool | getBasisInverseColReal (int c, Real *coef, int *inds=NULL, int *ninds=NULL) |
| computes column c of basis inverse; returns true on success
|
|
bool | getBasisInverseTimesVecReal (Real *rhs, Real *sol) |
| computes dense solution of basis matrix B * sol = rhs; returns true on success
|
|
void | setBasis (SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[]) |
| sets starting basis via arrays of statuses
|
|
void | clearBasis () |
| clears starting basis
|
|
|
int | numIterations () const |
| number of iterations since last call to solve
|
|
Real | solveTime () const |
| time spent in last call to solve
|
|
std::string | statisticString () const |
| statistical information in form of a string
|
|
const char * | getStarterName () |
| name of starter
|
|
const char * | getSimplifierName () |
| name of simplifier
|
|
const char * | getScalerName () |
| name of scaling method
|
|
const char * | getPricerName () |
| name of currently loaded pricer
|
|
const char * | getRatiotesterName () |
| name of currently loaded ratiotester
|
|
|
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
|
|
bool | writeFileReal (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0) const |
| 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
|
|
bool | writeFileRational (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *intvars=0) const |
| 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
void | printSolutionStatistics (std::ostream &os) |
| prints solution statistics
|
|
void | printSolvingStatistics (std::ostream &os) |
| prints statistics on solving process
|
|
void | printShortStatistics (std::ostream &os) |
| prints short statistics
|
|
void | printStatistics (std::ostream &os) |
| prints complete statistics
|
|
void | printStatus (std::ostream &os, SPxSolver::Status status) |
| prints status
|
|
|
void | printVersion () const |
| prints version and compilation options
|
|
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.
|
|
|
|
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
|
|
void | _idxToPerm (int *idx, int idxSize, int *perm, int permSize) const |
| creates a permutation for removing rows/columns from an array of indices
|
|
void | _rangeToPerm (int start, int end, int *perm, int permSize) const |
| creates a permutation for removing rows/columns from a range of indices
|
|
bool | _isConsistent () const |
| checks consistency
|
|
bool | _isSolveStopped () const |
| should solving process be stopped?
|
|
RangeType | _rangeTypeReal (const Real &lower, const Real &upper) const |
| determines RangeType from real bounds
|
|
RangeType | _rangeTypeRational (const Rational &lower, const Rational &upper) const |
| determines RangeType from rational bounds
|
|
RangeType | _switchRangeType (const RangeType &rangeType) const |
| switches RANGETYPE_LOWER to RANGETYPE_UPPER and vice versa
|
|
bool | _lowerFinite (const RangeType &rangeType) const |
| checks whether RangeType corresponds to finite lower bound
|
|
bool | _upperFinite (const RangeType &rangeType) const |
| checks whether RangeType corresponds to finite upper bound
|
|
|
void | _addRowReal (const LPRowReal &lprow) |
| adds a single row to the real LP and adjusts basis
|
|
void | _addRowReal (Real lhs, const SVectorReal &lprow, Real rhs) |
| adds a single row to the real LP and adjusts basis
|
|
void | _addRowsReal (const LPRowSetReal &lprowset) |
| adds multiple rows to the real LP and adjusts basis
|
|
void | _addColReal (const LPColReal &lpcol) |
| adds a single column to the real LP and adjusts basis
|
|
void | _addColReal (Real obj, Real lower, const SVectorReal &lpcol, Real upper) |
| adds a single column to the real LP and adjusts basis
|
|
void | _addColsReal (const LPColSetReal &lpcolset) |
| adds multiple columns to the real LP and adjusts basis
|
|
void | _changeRowReal (int i, const LPRowReal &lprow) |
| replaces row i with lprow and adjusts basis
|
|
void | _changeLhsReal (const VectorReal &lhs) |
| changes left-hand side vector for constraints to lhs and adjusts basis
|
|
void | _changeLhsReal (int i, const Real &lhs) |
| changes left-hand side of row i to lhs and adjusts basis
|
|
void | _changeRhsReal (const VectorReal &rhs) |
| changes right-hand side vector to rhs and adjusts basis
|
|
void | _changeRhsReal (int i, const Real &rhs) |
| changes right-hand side of row i to rhs and adjusts basis
|
|
void | _changeRangeReal (const VectorReal &lhs, const VectorReal &rhs) |
| changes left- and right-hand side vectors and adjusts basis
|
|
void | _changeRangeReal (int i, const Real &lhs, const Real &rhs) |
| changes left- and right-hand side of row i and adjusts basis
|
|
void | _changeColReal (int i, const LPColReal &lpcol) |
| replaces column i with lpcol and adjusts basis
|
|
void | _changeLowerReal (const VectorReal &lower) |
| changes vector of lower bounds to lower and adjusts basis
|
|
void | _changeLowerReal (int i, const Real &lower) |
| changes lower bound of column i to lower and adjusts basis
|
|
void | _changeUpperReal (const VectorReal &upper) |
| changes vector of upper bounds to upper and adjusts basis
|
|
void | _changeUpperReal (int i, const Real &upper) |
| changes i 'th upper bound to upper and adjusts basis
|
|
void | _changeBoundsReal (const VectorReal &lower, const VectorReal &upper) |
| changes vectors of column bounds to lower and upper and adjusts basis
|
|
void | _changeBoundsReal (int i, const Real &lower, const Real &upper) |
| changes bounds of column i to lower and upper and adjusts basis
|
|
void | _changeElementReal (int i, int j, const Real &val) |
| changes matrix entry in row i and column j to val and adjusts basis
|
|
void | _removeRowReal (int i) |
| removes row i and adjusts basis
|
|
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 numRowsReal()
|
|
void | _removeRowsReal (int idx[], int n, int perm[]) |
| remove all rows with indices in array idx of size n ; an array perm of size numRowsReal() may be passed as buffer memory
|
|
void | _removeRowRangeReal (int start, int end, int perm[]) |
| removes rows start to end including both; an array perm of size numRowsReal() may be passed as buffer memory
|
|
void | _removeColReal (int i) |
| removes column i
|
|
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()
|
|
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
|
|
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
|
|
void | _invalidateSolution () |
| invalidates solution
|
|
void | _enableSimplifierAndScaler () |
| enables simplifier and scaler according to current parameters
|
|
void | _disableSimplifierAndScaler () |
| disables simplifier and scaler
|
|
void | _ensureRationalLP () |
| ensures that the rational LP is available; performs no sync
|
|
void | _ensureRealLPLoaded () |
| ensures that the real LP and the basis are loaded in the solver; performs no sync
|
|
void | _solveRealLPAndRecordStatistics () |
| call floating-point solver and update statistics on iterations etc.
|
|
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
|
|
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
|
|
void | _recomputeRangeTypesReal () |
| recomputes range types from scratch using real LP
|
|
void | _recomputeRangeTypesRational () |
| recomputes range types from scratch using rational LP
|
|
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
|
|
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
|
|
void | _syncRealSolution () |
| synchronizes real solution with rational solution, i.e., copies real solution to rational solution
|
|
void | _syncRationalSolution () |
| synchronizes rational solution with real solution, i.e., copies (rounded) rational solution to real solution
|
|
const UnitVectorRational * | _unitVectorRational (const int i) |
| returns pointer to a constant unit vector available until destruction of the SoPlex class
|
|
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
|
|
|
void | _solveRational () |
| solves rational LP
|
|
void | _performOptIRStable (SolRational &sol, bool acceptUnbounded, bool acceptInfeasible, int minRounds, bool &primalFeasible, bool &dualFeasible, bool &infeasible, bool &unbounded, bool &stopped, bool &error) |
| solves current problem with iterative refinement and recovery mechanism
|
|
void | _performUnboundedIRStable (SolRational &sol, bool &hasUnboundedRay, bool &stopped, bool &error) |
| performs iterative refinement on the auxiliary problem for testing unboundedness
|
|
void | _performFeasIRStable (SolRational &sol, bool &withDualFarkas, bool &stopped, bool &error) |
| performs iterative refinement on the auxiliary problem for testing feasibility
|
|
void | _lift () |
| reduces matrix coefficient in absolute value by the lifting procedure of Thiele et al. 2013
|
|
void | _project (SolRational &sol) |
| undoes lifting
|
|
void | _storeBasis () |
| store basis
|
|
void | _restoreBasis () |
| restore basis
|
|
void | _storeLPReal () |
| stores objective, bounds, and sides of real LP
|
|
void | _restoreLPReal () |
| restores objective, bounds, and sides of real LP
|
|
void | _transformEquality () |
| introduces slack variables to transform inequality constraints into equations for both rational and real LP, which should be in sync
|
|
void | _untransformEquality (SolRational &sol) |
| undoes transformation to equality form
|
|
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
|
|
void | _untransformUnbounded (SolRational &sol, bool unbounded) |
| undoes transformation to unboundedness problem
|
|
void | _transformFeasibility () |
| transforms LP to feasibility problem by removing the objective function, shifting variables, and homogenizing the right-hand side
|
|
void | _untransformFeasibility (SolRational &sol, bool infeasible) |
| undoes transformation to feasibility problem
|
|
void | _computeInfeasBox (SolRational &sol, bool transformed) |
|
SPxSolver::Status | _solveRealForRational (bool fromscratch, VectorReal &primal, VectorReal &dual, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &returnedBasis) |
| solves real LP during iterative refinement
|
|
SPxSolver::Status | _solveRealStable (bool acceptUnbounded, bool acceptInfeasible, VectorReal &primal, VectorReal &dual, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &returnedBasis, const bool forceNoSimplifier=false) |
| solves real LP with recovery mechanism
|
|
void | _factorizeColumnRational (SolRational &sol, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &stopped, bool &error, bool &optimal) |
| factorizes rational basis matrix in column representation
|
|
bool | _reconstructSolutionRational (SolRational &sol, DataArray< SPxSolver::VarStatus > &basisStatusRows, DataArray< SPxSolver::VarStatus > &basisStatusCols, bool &stopped, bool &error, const Rational &denomBoundSquared) |
| attempts rational reconstruction of primal-dual solution
|
|
|
void | _solveReal () |
| solves real LP
|
|
void | _evaluateSolutionReal (SPxSimplifier::Result simplificationStatus) |
| checks result of the solving process and solves again without preprocessing if necessary
|
|
void | _preprocessAndSolveReal (bool applyPreprocessing) |
| solves real LP with/without preprocessing
|
|
void | _resolveWithoutPreprocessing (SPxSimplifier::Result simplificationStatus) |
| loads original problem into solver and solves again after it has been solved to optimality with preprocessing
|
|
void | _storeSolutionReal () |
| stores solution of the real LP; before calling this, the real LP must be loaded in the solver and solved (again)
|
|
|
|
Statistics * | _statistics |
| statistics since last call to solveReal() or solveRational()
|
|
|
Settings * | _currentSettings |
|
Rational | _rationalPosInfty |
|
Rational | _rationalNegInfty |
|
Rational | _rationalFeastol |
|
Rational | _rationalOpttol |
|
Rational | _rationalMaxscaleincr |
|
|
SPxSolver | _solver |
|
SLUFactor | _slufactor |
|
SPxMainSM | _simplifierMainSM |
|
SPxEquiliSC | _scalerUniequi |
|
SPxEquiliSC | _scalerBiequi |
|
SPxGeometSC | _scalerGeo1 |
|
SPxGeometSC | _scalerGeo8 |
|
SPxWeightST | _starterWeight |
|
SPxSumST | _starterSum |
|
SPxVectorST | _starterVector |
|
SPxAutoPR | _pricerAuto |
|
SPxDantzigPR | _pricerDantzig |
|
SPxParMultPR | _pricerParMult |
|
SPxDevexPR | _pricerDevex |
|
SPxSteepPR | _pricerQuickSteep |
|
SPxSteepExPR | _pricerSteep |
|
SPxDefaultRT | _ratiotesterTextbook |
|
SPxHarrisRT | _ratiotesterHarris |
|
SPxFastRT | _ratiotesterFast |
|
SPxBoundFlippingRT | _ratiotesterBoundFlipping |
|
SPxLPReal * | _realLP |
|
SPxSimplifier * | _simplifier |
|
SPxScaler * | _scaler |
|
SPxStarter * | _starter |
|
bool | _isRealLPLoaded |
|
DVectorReal | _manualLower |
|
DVectorReal | _manualUpper |
|
DVectorReal | _manualLhs |
|
DVectorReal | _manualRhs |
|
DVectorReal | _manualObj |
|
SPxLPReal | _manualRealLP |
|
|
SPxSolver::Status | _status |
|
int | _lastSolveMode |
|
DataArray< SPxSolver::VarStatus > | _basisStatusRows |
|
DataArray< SPxSolver::VarStatus > | _basisStatusCols |
|
SolReal | _solReal |
|
SolRational | _solRational |
|
SolRational | _workSol |
|
bool | _hasBasis |
|
bool | _hasSolReal |
|
bool | _hasSolRational |
|
enum | BoolParam {
LIFTING = 0,
EQTRANS = 1,
TESTDUALINF = 2,
RATFAC = 3,
ACCEPTCYCLING = 4,
RATREC = 5,
POWERSCALING = 6,
RATFACJUMP = 7,
FEASRELAX = 8,
ROWBOUNDFLIPS = 9,
BOOLPARAM_COUNT = 10
} |
| 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,
INTPARAM_COUNT = 22
} |
| 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_AUTO = 1
} |
| values for parameter SIMPLIFIER More...
|
|
enum | {
SCALER_OFF = 0,
SCALER_UNIEQUI = 1,
SCALER_BIEQUI = 2,
SCALER_GEO1 = 3,
SCALER_GEO8 = 4
} |
| 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 | 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,
REALPARAM_COUNT = 19
} |
| real parameters More...
|
|
SPxOut | spxout |
|
bool | boolParam (const BoolParam param) const |
| returns boolean parameter value
|
|
int | intParam (const IntParam param) const |
| returns integer parameter value
|
|
Real | realParam (const RealParam param) const |
| returns real parameter value
|
|
const Settings & | settings () const |
| returns current parameter settings
|
|
bool | setBoolParam (const BoolParam param, const bool value, const bool quiet=false, const bool init=false) |
| sets boolean parameter value; returns true on success
|
|
bool | setIntParam (const IntParam param, const int value, const bool quiet=false, const bool init=false) |
| sets integer parameter value; returns true on success
|
|
bool | setRealParam (const RealParam param, const Real value, const bool quiet=false, const bool init=false) |
| sets real parameter value; returns true on success
|
|
bool | setSettings (const Settings &newSettings, const bool quiet=false, const bool init=false) |
| sets parameter settings; returns true on success
|
|
void | printUserSettings () |
| print non-default parameter values
|
|
bool | saveSettingsFile (const char *filename, const bool onlyChanged=false) const |
| writes settings file; returns true on success
|
|
bool | loadSettingsFile (const char *filename) |
| reads settings file; returns true on success
|
|
bool | parseSettingsString (char *line) |
| parses one setting string and returns true on success; note that string is modified
|
|
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 |
|
LPColSetRational | _slackCols |
|
DVectorRational | _unboundedLower |
|
DVectorRational | _unboundedUpper |
|
DVectorRational | _unboundedLhs |
|
DVectorRational | _unboundedRhs |
|
DSVectorRational | _tauColVector |
|
DVectorRational | _feasObj |
|
DVectorRational | _feasLhs |
|
DVectorRational | _feasRhs |
|
DVectorRational | _feasLower |
|
DVectorRational | _feasUpper |
|
DVectorRational | _modLower |
|
DVectorRational | _modUpper |
|
DVectorRational | _modLhs |
|
DVectorRational | _modRhs |
|
DVectorRational | _modObj |
|
DSVectorRational | _primalDualDiff |
|
DataArray< SPxSolver::VarStatus > | _storedBasisStatusRows |
|
DataArray< SPxSolver::VarStatus > | _storedBasisStatusCols |
|
DataArray< UnitVectorRational * > | _unitMatrixRational |
|
bool | _storedBasis |
|
int | _beforeLiftRows |
|
int | _beforeLiftCols |
|
DataArray< RangeType > | _colTypes |
|
DataArray< RangeType > | _rowTypes |
|
Preconfigured SoPlex LP-solver.
Definition at line 86 of file soplex.h.
values for parameter OBJSENSE
Enumerator |
---|
OBJSENSE_MINIMIZE |
minimization
|
OBJSENSE_MAXIMIZE |
maximization
|
Definition at line 919 of file soplex.h.
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 1051 of file soplex.h.
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 1067 of file soplex.h.
values for parameter READMODE
Enumerator |
---|
READMODE_REAL |
standard floating-point parsing
|
READMODE_RATIONAL |
rational parsing
|
Definition at line 1080 of file soplex.h.
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 1090 of file soplex.h.
values for parameter CHECKMODE
Enumerator |
---|
CHECKMODE_REAL |
floating-point check
|
CHECKMODE_AUTO |
decide according to READMODE
|
CHECKMODE_RATIONAL |
rational check
|
Definition at line 1103 of file soplex.h.
values for parameter TIMER
Enumerator |
---|
TIMER_OFF |
disable timing
|
TIMER_CPU |
cpu or user time
|
TIMER_WALLCLOCK |
wallclock time
|
Definition at line 1116 of file soplex.h.
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 1129 of file soplex.h.
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 929 of file soplex.h.
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 942 of file soplex.h.
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 952 of file soplex.h.
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 962 of file soplex.h.
values for parameter SIMPLIFIER
Enumerator |
---|
SIMPLIFIER_OFF |
no simplifier
|
SIMPLIFIER_AUTO |
automatic choice
|
Definition at line 984 of file soplex.h.
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
|
Definition at line 994 of file soplex.h.
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 1013 of file soplex.h.
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 1029 of file soplex.h.
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?
|
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?
|
FEASRELAX |
should feasibility be tested with relaxed bounds and sides?
|
ROWBOUNDFLIPS |
use bound flipping also for row representation?
|
BOOLPARAM_COUNT |
number of boolean parameters
|
Definition at line 809 of file soplex.h.
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
|
INTPARAM_COUNT |
number of integer parameters
|
Definition at line 846 of file soplex.h.
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 1401 of file soplex.h.
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
|
REALPARAM_COUNT |
number of real parameters
|
Definition at line 1142 of file soplex.h.
default constructor
Definition at line 559 of file soplex.cpp.
References SoPlex::_currentSettings, SoPlex::_isConsistent(), SoPlex::_isRealLPLoaded, SoPlex::_lastSolveMode, SoPlex::_realLP, SoPlex::_scalerBiequi, SoPlex::_scalerGeo1, SoPlex::_scalerGeo8, SoPlex::_scalerUniequi, SoPlex::_slufactor, SoPlex::_solver, SoPlex::_statistics, SoPlex::intParam(), SPxScaler::setOutstream(), SPxLPBase< R >::setOutstream(), SPxSolver::setOutstream(), SoPlex::setSettings(), SPxSolver::setSolver(), SoPlex::SOLVEMODE, soplex::spx_alloc(), and SoPlex::spxout.
adds a single column to the real LP and adjusts basis
Definition at line 6480 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxLPBase< R >::addCol(), SPxSolver::basis(), SoPlex::INFTY, LPColBase< R >::lower(), SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), LPColBase< R >::upper(), and SPxSolver::ZERO.
Referenced by SoPlex::addColRational(), and SoPlex::addColReal().
adds multiple columns to the real LP and adjusts basis
Definition at line 6517 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxLPBase< R >::addCols(), SPxSolver::basis(), SoPlex::INFTY, LPColSetBase< R >::lower(), SPxBasis::NO_PROBLEM, LPColSetBase< R >::num(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), LPColSetBase< R >::upper(), and SPxSolver::ZERO.
Referenced by SoPlex::addColsRational(), and SoPlex::addColsReal().
adds a single row to the real LP and adjusts basis
Definition at line 6436 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxLPBase< R >::addRow(), SPxSolver::BASIC, SPxSolver::basis(), SPxBasis::NO_PROBLEM, and SPxBasis::status().
Referenced by SoPlex::addRowRational(), and SoPlex::addRowReal().
adds multiple rows to the real LP and adjusts basis
Definition at line 6466 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxLPBase< R >::addRows(), SPxSolver::BASIC, SPxSolver::basis(), SPxBasis::NO_PROBLEM, LPRowSetBase< R >::num(), and SPxBasis::status().
Referenced by SoPlex::addRowsRational(), and SoPlex::addRowsReal().
changes vectors of column bounds to lower and upper and adjusts basis
Definition at line 6793 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeBounds(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SoPlex::numColsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
Referenced by SoPlex::changeBoundsRational(), and SoPlex::changeBoundsReal().
void _changeBoundsReal |
( |
int |
i, |
|
|
const Real & |
lower, |
|
|
const Real & |
upper |
|
) |
| |
|
private |
changes bounds of column i to lower and upper and adjusts basis
Definition at line 6818 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeBounds(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
void _changeColReal |
( |
int |
i, |
|
|
const LPColReal & |
lpcol |
|
) |
| |
|
private |
replaces column i with lpcol and adjusts basis
Definition at line 6689 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxLPBase< R >::changeCol(), SoPlex::INFTY, LPColBase< R >::lower(), SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), LPColBase< R >::upper(), and SPxSolver::ZERO.
Referenced by SoPlex::changeColRational(), and SoPlex::changeColReal().
void _changeElementReal |
( |
int |
i, |
|
|
int |
j, |
|
|
const Real & |
val |
|
) |
| |
|
private |
changes matrix entry in row i and column j to val and adjusts basis
Definition at line 6840 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxLPBase< R >::changeElement(), SPxBasis::NO_PROBLEM, and SPxBasis::status().
Referenced by SoPlex::changeElementRational(), and SoPlex::changeElementReal().
changes left-hand side vector for constraints to lhs and adjusts basis
Definition at line 6563 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeLhs(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SoPlex::numRowsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SoPlex::rhsReal(), SPxBasis::status(), and SPxSolver::ZERO.
Referenced by SoPlex::changeLhsRational(), and SoPlex::changeLhsReal().
void _changeLhsReal |
( |
int |
i, |
|
|
const Real & |
lhs |
|
) |
| |
|
private |
changes left-hand side of row i to lhs and adjusts basis
Definition at line 6584 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeLhs(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SoPlex::rhsReal(), SPxBasis::status(), and SPxSolver::ZERO.
changes vector of lower bounds to lower and adjusts basis
Definition at line 6713 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeLower(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SoPlex::numColsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), SoPlex::upperReal(), and SPxSolver::ZERO.
Referenced by SoPlex::changeLowerRational(), and SoPlex::changeLowerReal().
void _changeLowerReal |
( |
int |
i, |
|
|
const Real & |
lower |
|
) |
| |
|
private |
changes lower bound of column i to lower and adjusts basis
Definition at line 6736 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeLower(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), SoPlex::upperReal(), and SPxSolver::ZERO.
changes left- and right-hand side vectors and adjusts basis
Definition at line 6642 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeRange(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SoPlex::numRowsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
Referenced by SoPlex::changeRangeRational(), and SoPlex::changeRangeReal().
void _changeRangeReal |
( |
int |
i, |
|
|
const Real & |
lhs, |
|
|
const Real & |
rhs |
|
) |
| |
|
private |
changes left- and right-hand side of row i and adjusts basis
Definition at line 6667 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeRange(), SoPlex::INFTY, SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
changes right-hand side vector to rhs and adjusts basis
Definition at line 6602 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeRhs(), SoPlex::INFTY, SoPlex::lhsReal(), SPxBasis::NO_PROBLEM, SoPlex::numRowsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
Referenced by SoPlex::changeRhsRational(), and SoPlex::changeRhsReal().
void _changeRhsReal |
( |
int |
i, |
|
|
const Real & |
rhs |
|
) |
| |
|
private |
changes right-hand side of row i to rhs and adjusts basis
Definition at line 6625 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeRhs(), SoPlex::INFTY, SoPlex::lhsReal(), SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
void _changeRowReal |
( |
int |
i, |
|
|
const LPRowReal & |
lprow |
|
) |
| |
|
private |
replaces row i with lprow and adjusts basis
Definition at line 6541 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxLPBase< R >::changeRow(), SoPlex::INFTY, LPRowBase< R >::lhs(), SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), LPRowBase< R >::rhs(), SPxBasis::status(), and SPxSolver::ZERO.
Referenced by SoPlex::changeRowRational(), and SoPlex::changeRowReal().
changes vector of upper bounds to upper and adjusts basis
Definition at line 6753 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeUpper(), SoPlex::INFTY, SoPlex::lowerReal(), SPxBasis::NO_PROBLEM, SoPlex::numColsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
Referenced by SoPlex::changeUpperRational(), and SoPlex::changeUpperReal().
void _changeUpperReal |
( |
int |
i, |
|
|
const Real & |
upper |
|
) |
| |
|
private |
changes i 'th upper bound to upper and adjusts basis
Definition at line 6776 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeUpper(), SoPlex::INFTY, SoPlex::lowerReal(), SPxBasis::NO_PROBLEM, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SPxBasis::status(), and SPxSolver::ZERO.
void _computeInfeasBox |
( |
SolRational & |
sol, |
|
|
bool |
transformed |
|
) |
| |
|
private |
computes radius of infeasibility box implied by an approximate Farkas' proof
Given constraints of the form , a farkas proof y should satisfy and , where denote the positive and negative parts of . If is approximate, it may not satisfy exactly, but the proof is still valid as long as the following holds for all potentially feasible :
we may therefore calculate and exactly and check if the upper and lower bounds on imply that all feasible satisfy (*), and if not then compute bounds on to guarantee (*). The simplest way to do this is to compute
noting that if every component of has , then (*) holds.
can be increased by iteratively including variable bounds smaller than . 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().
- Todo:
- this currently works only if all constraints are equations aggregate rows and sides using the multipliers of the Farkas ray
Definition at line 2781 of file solverational.cpp.
References SoPlex::_colTypes, SolBase< R >::_dualFarkas, SoPlex::_feasLhs, SoPlex::_feasLower, SoPlex::_feasRhs, SoPlex::_feasUpper, SoPlex::_lowerFinite(), SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_upperFinite(), Rational::addProduct(), SSVectorBase< R >::clear(), SSVectorBase< R >::clearNum(), SolBase< R >::hasDualFarkas(), SSVectorBase< R >::index(), SSVectorBase< R >::isSetup(), SoPlex::lhsRational(), SoPlex::lowerRational(), MSG_DEBUG, MSG_INFO1, SoPlex::numColsRational(), SoPlex::numRowsRational(), soplex::rationalToString(), SSVectorBase< R >::reDim(), SoPlex::rhsRational(), SPxLPBase< R >::rowVector(), SSVectorBase< R >::setEpsilon(), SSVectorBase< R >::setup(), SSVectorBase< R >::setValue(), SSVectorBase< R >::size(), soplex::spxAbs(), SoPlex::spxout, Rational::subProduct(), SoPlex::upperRational(), and SSVectorBase< R >::value().
Referenced by SoPlex::_performFeasIRStable().
void _disableSimplifierAndScaler |
( |
| ) |
|
|
private |
void _enableSimplifierAndScaler |
( |
| ) |
|
|
private |
enables simplifier and scaler according to current parameters
enables simplifier and scaler
Definition at line 6995 of file soplex.cpp.
References SoPlex::_scaler, SoPlex::_scalerBiequi, SoPlex::_scalerGeo1, SoPlex::_scalerGeo8, SoPlex::_scalerUniequi, SoPlex::_simplifier, SoPlex::_simplifierMainSM, SoPlex::intParam(), SoPlex::MINRED, SoPlex::realParam(), SoPlex::SCALER, SoPlex::SCALER_BIEQUI, SoPlex::SCALER_GEO1, SoPlex::SCALER_GEO8, SoPlex::SCALER_OFF, SoPlex::SCALER_UNIEQUI, SPxSimplifier::setMinReduction(), SoPlex::SIMPLIFIER, SoPlex::SIMPLIFIER_AUTO, and SoPlex::SIMPLIFIER_OFF.
Referenced by SoPlex::_preprocessAndSolveReal(), and SoPlex::_solveRealForRational().
void _ensureDSVectorRationalMemory |
( |
DSVectorRational & |
vec, |
|
|
const int |
newmax |
|
) |
| const |
|
private |
void _ensureRationalLP |
( |
| ) |
|
|
private |
void _ensureRealLPLoaded |
( |
| ) |
|
|
private |
ensures that the real LP and the basis are loaded in the solver; performs no sync
- Todo:
- this should not fail even if the basis is invalid (wrong dimension or wrong number of basic entries); fix either in SPxSolver or in SPxBasis
Definition at line 7060 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::basis(), SPxSolver::loadLP(), SPxBasis::NO_PROBLEM, SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::setBasis(), soplex::spx_free(), and SPxBasis::status().
Referenced by SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SoPlex::getEstimatedCondition(), and SoPlex::getExactCondition().
checks result of the solving process and solves again without preprocessing if necessary
Definition at line 46 of file solvereal.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_preprocessAndSolveReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_simplifier, SoPlex::_solver, SoPlex::_status, SPxSolver::ABORT_CYCLING, SPxSolver::ABORT_ITER, SPxSolver::ABORT_TIME, SPxSolver::ABORT_VALUE, SPxSolver::basis(), SPxLPBase< R >::changeObjOffset(), SPxSimplifier::DUAL_INFEASIBLE, SPxSolver::getBasis(), SPxSimplifier::INFEASIBLE, SPxSolver::INFEASIBLE, SPxSolver::INForUNBD, MSG_INFO1, SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSimplifier::OKAY, SPxSolver::OPTIMAL, SPxSolver::REGULAR, SPxSolver::RUNNING, SPxSolver::SINGULAR, SoPlex::spxout, SPxBasis::status(), SPxSolver::status(), SPxSimplifier::UNBOUNDED, SPxSolver::UNBOUNDED, and SPxSimplifier::VANISHED.
Referenced by SoPlex::_preprocessAndSolveReal().
factorizes rational basis matrix in column representation
Definition at line 3442 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SolBase< R >::_dual, SoPlex::_hasBasis, SolBase< R >::_hasDual, SolBase< R >::_hasPrimal, SoPlex::_isSolveStopped(), SolBase< R >::_primal, SoPlex::_rationalLP, SolBase< R >::_redCost, SoPlex::_rowTypes, SolBase< R >::_slacks, SoPlex::_statistics, SoPlex::_unitVectorRational(), SoPlex::_workSol, SPxSolver::BASIC, SoPlex::boolParam(), SoPlex::colVectorRational(), SPxLPBase< R >::computePrimalActivity(), SPxSolver::FIXED, DataArray< T >::get_ptr(), SLUFactorRational::getFactorCount(), SLUFactorRational::getFactorTime(), SLUFactorRational::getSolveTime(), SoPlex::INFTY, SoPlex::intParam(), SoPlex::lhsRational(), SLUFactorRational::load(), SoPlex::lowerRational(), SoPlex::Statistics::luFactorizationsRational, SoPlex::Statistics::luFactorizationTimeRational, SoPlex::Statistics::luSolveTimeRational, MSG_DEBUG, MSG_ERROR, MSG_INFO1, MSG_INFO2, VectorBase< R >::multAdd(), SoPlex::numColsRational(), SoPlex::numRowsRational(), SoPlex::objRational(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SLinSolverRational::OK, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::RANGETYPE_FIXED, SoPlex::RATFACJUMP, SoPlex::Statistics::rationalTime, soplex::rationalToString(), SoPlex::realParam(), DVectorBase< R >::reDim(), SLUFactorRational::resetCounters(), SoPlex::rhsRational(), SLUFactorRational::setTimeLimit(), DataArray< T >::size(), SLUFactorRational::solveLeft(), SLUFactorRational::solveRight(), SoPlex::Statistics::solvingTime, SoPlex::spxout, Timer::start(), SLUFactorRational::status(), Timer::stop(), SLinSolverRational::TIME, Timer::time(), SoPlex::TIMELIMIT, SPxSolver::UNDEFINED, SoPlex::upperRational(), and SPxSolver::ZERO.
Referenced by SoPlex::_performOptIRStable().
void _idxToPerm |
( |
int * |
idx, |
|
|
int |
idxSize, |
|
|
int * |
perm, |
|
|
int |
permSize |
|
) |
| const |
|
private |
void _invalidateSolution |
( |
| ) |
|
|
private |
invalidates solution
- Todo:
- maybe this should be done individually at the places when this method is called
Definition at line 6980 of file soplex.cpp.
References SoPlex::_hasSolRational, SoPlex::_hasSolReal, SoPlex::_solRational, SoPlex::_solReal, SoPlex::_status, SolBase< R >::invalidate(), and SPxSolver::UNKNOWN.
Referenced by SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::addColRational(), SoPlex::addColReal(), SoPlex::addColsRational(), SoPlex::addColsReal(), SoPlex::addRowRational(), SoPlex::addRowReal(), SoPlex::addRowsRational(), SoPlex::addRowsReal(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), SoPlex::changeColRational(), SoPlex::changeColReal(), SoPlex::changeElementRational(), SoPlex::changeElementReal(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeObjRational(), SoPlex::changeObjReal(), SoPlex::changeRangeRational(), SoPlex::changeRangeReal(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SoPlex::changeRowRational(), SoPlex::changeRowReal(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), SoPlex::removeColsReal(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), SoPlex::removeRowsReal(), SoPlex::setIntParam(), and SoPlex::solve().
bool _isConsistent |
( |
| ) |
const |
|
private |
checks consistency
Definition at line 6324 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_currentSettings, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_solver, SoPlex::_statistics, SoPlex::intParam(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_ONLYREAL.
Referenced by SoPlex::_solveRealForRational(), SoPlex::operator=(), SoPlex::setBoolParam(), SoPlex::setIntParam(), SoPlex::setRealParam(), SoPlex::setSettings(), SoPlex::solve(), SoPlex::SoPlex(), SoPlex::syncLPRational(), SoPlex::syncLPReal(), and SoPlex::~SoPlex().
bool _isSolveStopped |
( |
| ) |
const |
|
private |
should solving process be stopped?
Definition at line 6344 of file soplex.cpp.
References SoPlex::_statistics, SoPlex::INFTY, SoPlex::intParam(), SoPlex::Statistics::iterations, SoPlex::ITERLIMIT, SoPlex::realParam(), SoPlex::Statistics::refinements, SoPlex::REFLIMIT, SoPlex::Statistics::solvingTime, SoPlex::Statistics::stallRefinements, SoPlex::STALLREFLIMIT, Timer::time(), and SoPlex::TIMELIMIT.
Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_solveRational(), and SoPlex::_solveRealStable().
reduces matrix coefficient in absolute value by the lifting procedure of Thiele et al. 2013
Definition at line 1525 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_beforeLiftCols, SoPlex::_beforeLiftRows, SoPlex::_hasBasis, SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_realLP, SoPlex::_statistics, SVectorBase< R >::add(), SPxLPBase< R >::addRow(), SPxSolver::BASIC, SPxLPBase< R >::changeBounds(), SPxLPBase< R >::changeElement(), SVectorBase< R >::clear(), SoPlex::colVectorRational(), SPxSolver::FIXED, SVectorBase< R >::index(), SoPlex::INFTY, SoPlex::LIFTMAXVAL, SoPlex::LIFTMINVAL, MSG_DEBUG, MSG_INFO1, SoPlex::numColsRational(), SoPlex::numColsReal(), SoPlex::numRowsRational(), soplex::rationalToString(), SoPlex::realParam(), SVectorBase< R >::size(), soplex::spxAbs(), SoPlex::spxout, Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, SVectorBase< R >::value(), and SPxLPBase< R >::writeFile().
Referenced by SoPlex::_solveRational().
bool _lowerFinite |
( |
const RangeType & |
rangeType | ) |
const |
|
private |
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
Definition at line 7377 of file soplex.cpp.
References SoPlex::Settings::_boolParamName, SoPlex::_currentSettings, SoPlex::Settings::_intParamName, SoPlex::Settings::_realParamName, SoPlex::BOOLPARAM_COUNT, SoPlex::INTPARAM_COUNT, MSG_ERROR, soplex::readStringRational(), REAL_FORMAT, SoPlex::REALPARAM_COUNT, SET_MAX_LINE_LEN, SoPlex::setBoolParam(), SoPlex::setIntParam(), and SoPlex::setRealParam().
Referenced by SoPlex::loadSettingsFile().
void _performFeasIRStable |
( |
SolRational & |
sol, |
|
|
bool & |
withDualFarkas, |
|
|
bool & |
stopped, |
|
|
bool & |
error |
|
) |
| |
|
private |
performs iterative refinement on the auxiliary problem for testing feasibility
Definition at line 1430 of file solverational.cpp.
References SoPlex::_computeInfeasBox(), SolBase< R >::_dual, SolBase< R >::_dualFarkas, SolBase< R >::_hasDual, SolBase< R >::_hasDualFarkas, SolBase< R >::_hasPrimal, SoPlex::_performOptIRStable(), SolBase< R >::_primal, SoPlex::_rationalFeastol, SoPlex::_solRational, SoPlex::_statistics, SoPlex::_transformFeasibility(), SoPlex::_untransformFeasibility(), SoPlex::Statistics::feasRefinements, SoPlex::FEASTOL, SolBase< R >::invalidate(), MSG_DEBUG, SoPlex::numColsRational(), Rational::POSONE, soplex::rationalToString(), SoPlex::realParam(), and SoPlex::Statistics::refinements.
Referenced by SoPlex::_solveRational().
void _performOptIRStable |
( |
SolRational & |
sol, |
|
|
bool |
acceptUnbounded, |
|
|
bool |
acceptInfeasible, |
|
|
int |
minRounds, |
|
|
bool & |
primalFeasible, |
|
|
bool & |
dualFeasible, |
|
|
bool & |
infeasible, |
|
|
bool & |
unbounded, |
|
|
bool & |
stopped, |
|
|
bool & |
error |
|
) |
| |
|
private |
solves current problem with iterative refinement and recovery mechanism
- Todo:
- remove _modObj and use dualScale * sol._redCost directly
Definition at line 330 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SolBase< R >::_dual, SolBase< R >::_dualFarkas, SolBase< R >::_dualObjVal, SoPlex::_ensureDSVectorRationalMemory(), SoPlex::_factorizeColumnRational(), SoPlex::_hasBasis, SolBase< R >::_hasDual, SolBase< R >::_hasDualFarkas, SolBase< R >::_hasPrimal, SoPlex::_isSolveStopped(), SoPlex::_lowerFinite(), SoPlex::_modLhs, SoPlex::_modLower, SoPlex::_modObj, SoPlex::_modRhs, SoPlex::_modUpper, SolBase< R >::_primal, SoPlex::_primalDualDiff, SolBase< R >::_primalObjVal, SoPlex::_rationalFeastol, SoPlex::_rationalLP, SoPlex::_rationalMaxscaleincr, SoPlex::_rationalNegInfty, SoPlex::_rationalOpttol, SoPlex::_rationalPosInfty, SoPlex::_realLP, SoPlex::_reconstructSolutionRational(), SolBase< R >::_redCost, SoPlex::_rowTypes, SoPlex::_slackCols, SolBase< R >::_slacks, SoPlex::_solver, SoPlex::_solveRealStable(), SoPlex::_statistics, SoPlex::_upperFinite(), SPxSolver::ABORT_ITER, SPxSolver::ABORT_TIME, DSVectorBase< R >::add(), SPxLPBase< R >::addDualActivity(), SPxLPBase< R >::addPrimalActivity(), SPxSolver::BASIC, SPxSolver::basis(), SoPlex::boolParam(), SPxSolver::changeLhs(), SPxSolver::changeLower(), SPxSolver::changeObj(), SPxSolver::changeRhs(), SPxSolver::changeRowObj(), SPxSolver::changeUpper(), SVectorBase< R >::clear(), SPxSolver::clearRowObjs(), LPColSetBase< R >::colVector(), SPxLPBase< R >::computePrimalActivity(), SPxBasis::desc(), SPxBasis::Desc::dump(), SoPlex::EQTRANS, SPxSolver::FIXED, SoPlex::FPFEASTOL, SoPlex::FPOPTTOL, SPxLPBase< R >::getObj(), SVectorBase< R >::index(), SPxSolver::INFEASIBLE, SoPlex::INFTY, SoPlex::intParam(), Rational::invert(), SoPlex::Statistics::iterations, SoPlex::lhsRational(), SoPlex::lowerRational(), SPxLPBase< R >::maxObj(), SPxLPBase< R >::maxRowObj(), MSG_DEBUG, MSG_INFO1, MSG_INFO2, MSG_WARNING, SPxBasis::NO_PROBLEM, LPColSetBase< R >::num(), SoPlex::numColsRational(), SoPlex::numRowsRational(), SPxLPBase< R >::obj(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SPxSolver::OPTIMAL, SPxSolver::opttol(), SoPlex::Statistics::pivotRefinements, Rational::POSONE, SoPlex::POWERSCALING, Rational::powRound(), SoPlex::RANGETYPE_FIXED, SoPlex::RATFAC, SoPlex::RATFAC_MINSTALLS, SoPlex::RATFACJUMP, SoPlex::Statistics::rationalTime, soplex::rationalToString(), SoPlex::RATREC, SoPlex::RATREC_FREQ, SoPlex::realParam(), DVectorBase< R >::reDim(), SoPlex::Statistics::refinements, SPxBasis::REGULAR, SoPlex::rhsRational(), SPxSolver::setBasis(), SPxSolver::setFeastol(), SPxSolver::setOpttol(), SVectorBase< R >::size(), SoPlex::Statistics::solvingTime, soplex::spxAbs(), SoPlex::spxout, SoPlex::Statistics::stallRefinements, Timer::start(), SPxBasis::status(), Timer::stop(), SPxLPBase< R >::subDualActivity(), Timer::time(), SPxSolver::UNBOUNDED, SPxSolver::UNKNOWN, SoPlex::upperRational(), SVectorBase< R >::value(), and SPxSolver::ZERO.
Referenced by SoPlex::_performFeasIRStable(), SoPlex::_performUnboundedIRStable(), and SoPlex::_solveRational().
void _performUnboundedIRStable |
( |
SolRational & |
sol, |
|
|
bool & |
hasUnboundedRay, |
|
|
bool & |
stopped, |
|
|
bool & |
error |
|
) |
| |
|
private |
performs iterative refinement on the auxiliary problem for testing unboundedness
Definition at line 1369 of file solverational.cpp.
References SoPlex::_performOptIRStable(), SolBase< R >::_primal, SoPlex::_rationalFeastol, SoPlex::_statistics, SoPlex::_transformUnbounded(), SoPlex::_untransformUnbounded(), SoPlex::FEASTOL, SolBase< R >::invalidate(), MSG_DEBUG, SoPlex::numColsRational(), Rational::POSONE, soplex::rationalToString(), SoPlex::realParam(), SoPlex::Statistics::refinements, and SoPlex::Statistics::unbdRefinements.
Referenced by SoPlex::_solveRational().
void _preprocessAndSolveReal |
( |
bool |
applyPreprocessing | ) |
|
|
private |
solves real LP with/without preprocessing
- Todo:
- implement for both objective senses
- Todo:
- this should not fail even if the basis is invalid (wrong dimension or wrong number of basic entries); fix either in SPxSolver or in SPxBasis
Definition at line 139 of file solvereal.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_disableSimplifierAndScaler(), SoPlex::_enableSimplifierAndScaler(), SoPlex::_evaluateSolutionReal(), SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_scaler, SoPlex::_simplifier, SoPlex::_solver, SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_statistics, SPxLPBase< R >::changeObjOffset(), SoPlex::EPSILON_ZERO, SoPlex::FEASTOL, SPxSimplifier::getObjoffset(), SoPlex::INFTY, SoPlex::intParam(), SPxSolver::loadLP(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SoPlex::OBJLIMIT_UPPER, SoPlex::OBJSENSE, SoPlex::OBJSENSE_MINIMIZE, SPxSimplifier::OKAY, SoPlex::OPTTOL, SoPlex::Statistics::preprocessingTime, SoPlex::RATIOTESTER, SoPlex::RATIOTESTER_BOUNDFLIPPING, SoPlex::realParam(), SPxScaler::scale(), SPxSolver::setBasis(), SPxSolver::setTerminationValue(), SPxSimplifier::simplify(), soplex::spx_alloc(), soplex::spx_free(), Timer::start(), and Timer::stop().
Referenced by SoPlex::_evaluateSolutionReal(), SoPlex::_resolveWithoutPreprocessing(), and SoPlex::_solveReal().
undoes lifting
- Todo:
- if we know the mapping between original and lifting columns, we simply need to add the reduced cost of the lifting column to the reduced cost of the original column; this is not implemented now, because for optimal solutions the reduced costs of the lifting columns are zero
Definition at line 1702 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_beforeLiftCols, SoPlex::_beforeLiftRows, SolBase< R >::_dual, SolBase< R >::_dualFarkas, SoPlex::_hasBasis, SolBase< R >::_hasDual, SolBase< R >::_primal, SolBase< R >::_primalRay, SoPlex::_rationalLP, SoPlex::_rationalOpttol, SoPlex::_realLP, SolBase< R >::_redCost, SolBase< R >::_slacks, SoPlex::_statistics, SPxSolver::BASIC, SolBase< R >::hasDual(), SolBase< R >::hasDualFarkas(), SolBase< R >::hasPrimal(), SolBase< R >::hasPrimalRay(), SoPlex::LIFTMAXVAL, MSG_DEBUG, MSG_INFO1, SoPlex::numColsRational(), SoPlex::numColsReal(), SoPlex::numRowsRational(), SoPlex::numRowsReal(), SoPlex::realParam(), DVectorBase< R >::reDim(), SPxLPBase< R >::removeColRange(), SPxLPBase< R >::removeRowRange(), soplex::spxAbs(), SoPlex::spxout, Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, and SPxLPBase< R >::writeFile().
Referenced by SoPlex::_solveRational().
void _rangeToPerm |
( |
int |
start, |
|
|
int |
end, |
|
|
int * |
perm, |
|
|
int |
permSize |
|
) |
| const |
|
private |
determines RangeType from rational bounds
Definition at line 6382 of file soplex.cpp.
References SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::RANGETYPE_BOXED, SoPlex::RANGETYPE_FIXED, SoPlex::RANGETYPE_FREE, SoPlex::RANGETYPE_LOWER, and SoPlex::RANGETYPE_UPPER.
Referenced by SoPlex::_recomputeRangeTypesRational(), SoPlex::addColRational(), SoPlex::addColsRational(), SoPlex::addRowRational(), SoPlex::addRowsRational(), SoPlex::changeBoundsRational(), SoPlex::changeColRational(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeRangeRational(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SoPlex::changeRowRational(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), SoPlex::removeColsReal(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), and SoPlex::removeRowsReal().
determines RangeType from real bounds
Definition at line 6357 of file soplex.cpp.
References soplex::infinity, SoPlex::RANGETYPE_BOXED, SoPlex::RANGETYPE_FIXED, SoPlex::RANGETYPE_FREE, SoPlex::RANGETYPE_LOWER, and SoPlex::RANGETYPE_UPPER.
Referenced by SoPlex::_recomputeRangeTypesReal(), SoPlex::addColReal(), SoPlex::addColsReal(), SoPlex::addRowReal(), SoPlex::addRowsReal(), SoPlex::changeBoundsReal(), SoPlex::changeColReal(), SoPlex::changeRangeReal(), and SoPlex::changeRowReal().
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
Definition at line 7215 of file soplex.cpp.
References SoPlex::_ensureRationalLP(), SoPlex::_hasBasis, SoPlex::_invalidateSolution(), SoPlex::_rationalLP, SoPlex::_recomputeRangeTypesRational(), SoPlex::_statistics, SoPlex::_status, SoPlex::_syncLPReal(), SPxLPBase< R >::changeObjOffset(), SoPlex::Statistics::clearAllData(), SoPlex::clearLPRational(), SoPlex::intParam(), SPxLPBase< R >::MAXIMIZE, SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, SPxLPBase< R >::readFile(), SoPlex::Statistics::readingTime, SoPlex::setIntParam(), soplex::spx_free(), SPxLPBase< R >::spxSense(), Timer::start(), Timer::stop(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and SPxSolver::UNKNOWN.
Referenced by SoPlex::readFile().
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
Definition at line 7174 of file soplex.cpp.
References SoPlex::_hasBasis, SoPlex::_invalidateSolution(), SoPlex::_realLP, SoPlex::_statistics, SoPlex::_status, SoPlex::_syncLPRational(), SPxLPBase< R >::changeObjOffset(), SoPlex::Statistics::clearAllData(), SoPlex::clearLPReal(), SoPlex::intParam(), SPxLPBase< Real >::MAXIMIZE, SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, SPxLPBase< R >::readFile(), SoPlex::Statistics::readingTime, SoPlex::setIntParam(), SPxLPBase< R >::spxSense(), Timer::start(), Timer::stop(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SPxSolver::UNKNOWN.
Referenced by SoPlex::readFile().
void _recomputeRangeTypesRational |
( |
| ) |
|
|
private |
recomputes range types from scratch using rational LP
Definition at line 7275 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SoPlex::numColsRational(), SoPlex::numRowsRational(), DataArray< T >::reSize(), SPxLPBase< R >::rhs(), and SPxLPBase< R >::upper().
Referenced by SoPlex::_readFileRational(), and SoPlex::setRealParam().
void _recomputeRangeTypesReal |
( |
| ) |
|
|
private |
recomputes range types from scratch using real LP
Definition at line 7262 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_rangeTypeReal(), SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SoPlex::numColsReal(), SoPlex::numRowsReal(), DataArray< T >::reSize(), SPxLPBase< R >::rhs(), and SPxLPBase< R >::upper().
Referenced by SoPlex::_syncLPRational().
attempts rational reconstruction of primal-dual solution
- Todo:
- we should compute them one by one so we can abort when encountering an infeasibility
- Todo:
- we should compute them one by one so we can abort when encountering an infeasibility
Definition at line 3840 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SolBase< R >::_dual, SoPlex::_hasBasis, SoPlex::_lowerFinite(), SolBase< R >::_primal, SoPlex::_rationalLP, SolBase< R >::_redCost, SoPlex::_rowTypes, SolBase< R >::_slacks, SoPlex::_statistics, SoPlex::_upperFinite(), SoPlex::_workSol, DIdxSet::addIdx(), SPxSolver::BASIC, SPxLPBase< R >::computePrimalActivity(), SPxSolver::FIXED, SPxLPBase< R >::getObj(), SolBase< R >::hasDual(), SolBase< R >::hasPrimal(), SoPlex::intParam(), SoPlex::lhsRational(), SoPlex::lowerRational(), MSG_DEBUG, MSG_INFO1, MSG_WARNING, SoPlex::numColsRational(), SoPlex::numRowsRational(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::Statistics::rationalReconstructions, soplex::rationalToString(), SoPlex::Statistics::reconstructionTime, soplex::reconstructVector(), DVectorBase< R >::reDim(), SoPlex::rhsRational(), soplex::sign(), SoPlex::spxout, Timer::start(), Timer::stop(), SPxLPBase< R >::subDualActivity(), SPxSolver::UNDEFINED, SoPlex::upperRational(), and SPxSolver::ZERO.
Referenced by SoPlex::_performOptIRStable().
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
void _removeColReal |
( |
int |
i | ) |
|
|
private |
removes column i
Definition at line 6920 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::removeCol(), and SPxBasis::status().
Referenced by SoPlex::removeColRational(), and SoPlex::removeColReal().
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()
Definition at line 6947 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxBasis::NO_PROBLEM, SoPlex::numColsReal(), SPxLPBase< R >::removeCols(), and SPxBasis::status().
Referenced by SoPlex::removeColsRational(), and SoPlex::removeColsReal().
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
void _removeRowRangeReal |
( |
int |
start, |
|
|
int |
end, |
|
|
int |
perm[] |
|
) |
| |
|
private |
removes rows start to end including both; an array perm of size numRowsReal() may be passed as buffer memory
void _removeRowReal |
( |
int |
i | ) |
|
|
private |
removes row i and adjusts basis
Definition at line 6860 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::removeRow(), and SPxBasis::status().
Referenced by SoPlex::removeRowRational(), and SoPlex::removeRowReal().
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 numRowsReal()
Definition at line 6887 of file soplex.cpp.
References SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::basis(), SPxBasis::NO_PROBLEM, SoPlex::numRowsReal(), SPxLPBase< R >::removeRows(), and SPxBasis::status().
Referenced by SoPlex::removeRowsRational(), and SoPlex::removeRowsReal().
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 numRowsReal() may be passed as buffer memory
loads original problem into solver and solves again after it has been solved to optimality with preprocessing
Definition at line 233 of file solvereal.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_preprocessAndSolveReal(), SoPlex::_scaler, SoPlex::_simplifier, SoPlex::_solver, SoPlex::_status, SPxSolver::ERROR, SPxSimplifier::getBasis(), SPxSolver::getBasis(), SPxSolver::getDual(), SPxSolver::getPrimal(), SPxSolver::getRedCost(), SPxSolver::getSlacks(), SPxSimplifier::isUnsimplified(), MSG_ERROR, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSimplifier::OKAY, SPxSolver::OPTIMAL, SPxSolver::status(), SPxScaler::unscaleDual(), SPxScaler::unscalePrimal(), SPxScaler::unscaleRedCost(), SPxScaler::unscaleSlacks(), SPxSimplifier::unsimplify(), SPxSimplifier::VANISHED, and SPxException::what().
Referenced by SoPlex::_evaluateSolutionReal().
restores objective, bounds, and sides of real LP
Definition at line 1814 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SolBase< R >::_dual, SoPlex::_hasBasis, SoPlex::_hasSolRational, SoPlex::_manualLhs, SoPlex::_manualLower, SoPlex::_manualObj, SoPlex::_manualRealLP, SoPlex::_manualRhs, SoPlex::_manualUpper, SoPlex::_realLP, SoPlex::_solRational, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeObj(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SPxSolver::FIXED, SolBase< R >::hasDual(), soplex::infinity, SoPlex::intParam(), SPxLPBase< R >::lhs(), SPxSolver::loadLP(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SPxLPBase< R >::rhs(), SPxSolver::setBasis(), soplex::spxNextafter(), SPxBasis::status(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_MANUAL.
Referenced by SoPlex::_solveRational().
solves rational LP
- Todo:
- implement row objectives with row representation
- Todo:
- implement handling of row objectives in Cplex interface
- Todo:
- this should be stored already earlier, possible switch use solRational above and solFeas here
- Todo:
- set status to ABORT_VALUE if optimal solution exceeds objective limit
Definition at line 28 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SolBase< R >::_dual, SoPlex::_hasBasis, SolBase< R >::_hasDual, SolBase< R >::_hasPrimalRay, SoPlex::_hasSolRational, SoPlex::_isRealLPLoaded, SoPlex::_isSolveStopped(), SoPlex::_lastSolveMode, SoPlex::_lift(), SoPlex::_performFeasIRStable(), SoPlex::_performOptIRStable(), SoPlex::_performUnboundedIRStable(), SolBase< R >::_primalRay, SoPlex::_project(), SoPlex::_realLP, SolBase< R >::_redCost, SoPlex::_restoreBasis(), SoPlex::_restoreLPReal(), SoPlex::_solRational, SoPlex::_solver, SoPlex::_statistics, SoPlex::_status, SoPlex::_storeBasis(), SoPlex::_storedBasis, SoPlex::_storeLPReal(), SoPlex::_transformEquality(), SoPlex::_untransformEquality(), SPxSolver::ABORT_TIME, SPxSolver::basis(), SoPlex::boolParam(), SoPlex::EQTRANS, SPxSolver::ERROR, SPxSolver::getBasis(), SolBase< R >::hasPrimalRay(), SPxSolver::INFEASIBLE, SoPlex::INFTY, SoPlex::intParam(), SoPlex::LIFTING, SPxSolver::loadLP(), MSG_INFO1, MSG_INFO2, SPxBasis::NO_PROBLEM, SoPlex::numColsReal(), SoPlex::numRowsReal(), SoPlex::OBJLIMIT_LOWER, SoPlex::OBJLIMIT_UPPER, SPxSolver::OPTIMAL, SoPlex::Statistics::preprocessingTime, SoPlex::RATIOTESTER, SoPlex::RATIOTESTER_FAST, SoPlex::realParam(), SoPlex::REPRESENTATION, SoPlex::REPRESENTATION_COLUMN, SPxSolver::setBasis(), SoPlex::setBoolParam(), SoPlex::setIntParam(), SPxSolver::setTerminationValue(), SoPlex::SOLVEMODE_RATIONAL, SoPlex::Statistics::solvingTime, soplex::spx_free(), SoPlex::spxout, Timer::start(), SPxBasis::status(), Timer::stop(), SoPlex::TESTDUALINF, and SPxSolver::UNBOUNDED.
Referenced by SoPlex::solve().
solves real LP during iterative refinement
- Todo:
- move to private helper methods
- Todo:
- move to private helper methods
- Todo:
- catch exception
Definition at line 3008 of file solverational.cpp.
References SoPlex::_disableSimplifierAndScaler(), SoPlex::_enableSimplifierAndScaler(), SoPlex::_hasBasis, SoPlex::_isConsistent(), SoPlex::_scaler, SoPlex::_simplifier, SoPlex::_solver, SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_statistics, SPxSolver::ABORT_CYCLING, SPxSolver::ABORT_ITER, SPxSolver::ABORT_TIME, SPxSolver::ABORT_VALUE, SoPlex::ACCEPTCYCLING, SoPlex::boolParam(), VectorBase< R >::dim(), SPxSimplifier::DUAL_INFEASIBLE, SoPlex::EPSILON_ZERO, SPxSolver::ERROR, SoPlex::FPFEASTOL, SoPlex::FPOPTTOL, DataArray< T >::get_ptr(), SPxSimplifier::getBasis(), SPxSolver::getBasis(), SPxSolver::getDual(), SPxSolver::getDualfarkas(), SPxSolver::getPrimal(), SPxSolver::getRedCost(), SPxSolver::getSlacks(), SPxSimplifier::INFEASIBLE, SPxSolver::INFEASIBLE, SPxSolver::INForUNBD, SoPlex::intParam(), SPxSimplifier::isUnsimplified(), SPxSolver::loadLP(), MSG_INFO1, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SoPlex::numColsRational(), SoPlex::numRowsRational(), SPxSimplifier::OKAY, SPxSolver::OPTIMAL, SoPlex::RATIOTESTER, SoPlex::RATIOTESTER_BOUNDFLIPPING, SoPlex::realParam(), SPxSolver::REGULAR, DataArray< T >::reSize(), SPxSolver::RUNNING, SPxScaler::scale(), SPxSolver::setBasis(), SPxSimplifier::simplify(), SPxSolver::SINGULAR, DataArray< T >::size(), soplex::spx_alloc(), soplex::spx_free(), SoPlex::spxout, Timer::start(), SPxSolver::status(), Timer::stop(), SoPlex::Statistics::syncTime, SPxSimplifier::UNBOUNDED, SPxSolver::UNBOUNDED, SPxSolver::UNKNOWN, SPxScaler::unscaleDual(), SPxScaler::unscalePrimal(), SPxScaler::unscaleRedCost(), SPxScaler::unscaleSlacks(), SPxSimplifier::unsimplifiedDual(), SPxSimplifier::unsimplifiedPrimal(), SPxSimplifier::unsimplify(), and SPxSimplifier::VANISHED.
Referenced by SoPlex::_solveRealStable().
void _solveRealLPAndRecordStatistics |
( |
| ) |
|
|
private |
call floating-point solver and update statistics on iterations etc.
Definition at line 7087 of file soplex.cpp.
References SoPlex::_hasBasis, SoPlex::_slufactor, SoPlex::_solver, SoPlex::_statistics, SoPlex::_status, SoPlex::ALGORITHM, SoPlex::ALGORITHM_DUAL, SoPlex::ALGORITHM_PRIMAL, SoPlex::Statistics::boundflips, SPxSolver::boundFlips(), SPxSolver::COLUMN, SPxSolver::ENTER, SPxSolver::ERROR, SPxSolver::feastol(), SLUFactor::getFactorCount(), SLUFactor::getFactorTime(), SLUFactor::getSolveCount(), SLUFactor::getSolveTime(), SoPlex::HYPER_PRICING, SoPlex::HYPER_PRICING_AUTO, SoPlex::HYPER_PRICING_OFF, SoPlex::HYPER_PRICING_ON, SPxSolver::hyperPricing(), HYPERPRICINGTHRESHOLD, SoPlex::INFTY, SoPlex::intParam(), SoPlex::Statistics::iterations, SPxSolver::iterations(), SoPlex::Statistics::iterationsFromBasis, SoPlex::Statistics::iterationsPrimal, SoPlex::ITERLIMIT, SPxSolver::LEAVE, SoPlex::Statistics::luFactorizationsReal, SoPlex::Statistics::luFactorizationTimeReal, SoPlex::Statistics::luSolvesReal, SoPlex::Statistics::luSolveTimeReal, MSG_ERROR, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxSolver::opttol(), SPxSolver::primalIterations(), SoPlex::realParam(), SPxSolver::rep(), SoPlex::REPRESENTATION, SoPlex::REPRESENTATION_AUTO, SoPlex::REPRESENTATION_COLUMN, SoPlex::REPRESENTATION_ROW, SoPlex::REPRESENTATION_SWITCH, SLUFactor::resetCounters(), SPxSolver::ROW, SPxSolver::setFeastol(), SPxSolver::setOpttol(), SPxSolver::setRep(), SPxSolver::setSparsePricingFactor(), SPxSolver::setTerminationIter(), SPxSolver::setTerminationTime(), SPxSolver::setType(), SoPlex::Statistics::simplexTime, SPxSolver::solve(), SoPlex::Statistics::solvingTime, SoPlex::SPARSITY_THRESHOLD, Timer::start(), Timer::stop(), Timer::time(), SoPlex::TIMELIMIT, SPxSolver::type(), and SPxException::what().
Referenced by SoPlex::_preprocessAndSolveReal(), and SoPlex::_solveRealForRational().
solves real LP with recovery mechanism
Definition at line 3234 of file solverational.cpp.
References SoPlex::_isSolveStopped(), SoPlex::_pricerDevex, SoPlex::_ratiotesterTextbook, SoPlex::_slufactor, SoPlex::_solver, SoPlex::_solveRealForRational(), SoPlex::ALGORITHM, SoPlex::ALGORITHM_DUAL, SoPlex::ALGORITHM_PRIMAL, SPxSolver::ENTER, SPxSolver::factorize(), SPxSolver::feastol(), SoPlex::FPFEASTOL, SoPlex::FPOPTTOL, soplex::GE(), SPxSolver::INFEASIBLE, SoPlex::intParam(), SPxSolver::LEAVE, SLUFactor::markowitz(), MSG_DEBUG, MSG_INFO1, SPxSolver::OPTIMAL, SoPlex::PRICER, SPxSolver::pricer(), SoPlex::PRICER_DEVEX, SoPlex::PRICER_STEEP, SoPlex::RATIOTESTER, SPxSolver::ratiotester(), SoPlex::RATIOTESTER_FAST, SoPlex::RATIOTESTER_TEXTBOOK, SoPlex::realParam(), SPxSolver::reLoad(), SoPlex::SCALER, SoPlex::SCALER_BIEQUI, SoPlex::SCALER_OFF, SPxSolver::setDelta(), SPxSolver::setFeastol(), SoPlex::setIntParam(), SLUFactor::setMarkowitz(), SPxSolver::setOpttol(), SPxSolver::setType(), SoPlex::SIMPLIFIER, SoPlex::SIMPLIFIER_AUTO, SoPlex::SIMPLIFIER_OFF, SoPlex::spxout, SPxSolver::type(), SPxSolver::UNBOUNDED, and SPxSolver::UNKNOWN.
Referenced by SoPlex::_performOptIRStable().
stores objective, bounds, and sides of real LP
Definition at line 1793 of file solverational.cpp.
References SoPlex::_manualLhs, SoPlex::_manualLower, SoPlex::_manualObj, SoPlex::_manualRealLP, SoPlex::_manualRhs, SoPlex::_manualUpper, SoPlex::_realLP, SPxLPBase< R >::getObj(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SPxLPBase< R >::nCols(), DVectorBase< R >::reDim(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_MANUAL, and SPxLPBase< R >::upper().
Referenced by SoPlex::_solveRational().
void _storeSolutionReal |
( |
| ) |
|
|
private |
stores solution of the real LP; before calling this, the real LP must be loaded in the solver and solved (again)
Definition at line 316 of file solvereal.cpp.
References SolBase< R >::_dual, SolBase< R >::_dualFarkas, SolBase< R >::_dualObjVal, SolBase< R >::_hasDual, SolBase< R >::_hasDualFarkas, SolBase< R >::_hasPrimal, SolBase< R >::_hasPrimalRay, SoPlex::_hasSolReal, SoPlex::_isRealLPLoaded, SolBase< R >::_primal, SolBase< R >::_primalObjVal, SolBase< R >::_primalRay, SolBase< R >::_redCost, SolBase< R >::_slacks, SoPlex::_solReal, SoPlex::_solver, SPxSolver::basis(), SPxBasis::DUAL, SoPlex::EPSILON_ZERO, SPxSolver::ERROR, SPxSolver::forceRecompNonbasicValue(), SPxSolver::getDual(), SPxSolver::getDualfarkas(), SPxSolver::getPrimal(), SPxSolver::getPrimalray(), SPxSolver::getRedCost(), SPxSolver::getSlacks(), SPxBasis::INFEASIBLE, SPxSolver::INFEASIBLE, SPxLPBase< R >::nCols(), SPxSolver::NO_PRICER, SPxBasis::NO_PROBLEM, SPxSolver::NO_PROBLEM, SPxSolver::NO_RATIOTESTER, SPxSolver::NO_SOLVER, SPxSolver::NOT_INIT, SPxLPBase< R >::nRows(), SPxSolver::objValue(), SPxSolver::OPTIMAL, SPxBasis::PRIMAL, SoPlex::realParam(), DVectorBase< R >::reDim(), SPxSolver::shift(), SPxSolver::SINGULAR, SPxBasis::status(), SoPlex::status(), SPxBasis::UNBOUNDED, and SPxSolver::UNBOUNDED.
Referenced by SoPlex::_solveReal().
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
Definition at line 7311 of file soplex.cpp.
References SoPlex::_ensureRationalLP(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_recomputeRangeTypesReal(), SoPlex::_statistics, Timer::start(), Timer::stop(), and SoPlex::Statistics::syncTime.
Referenced by SoPlex::_readFileReal(), SoPlex::getBoundViolationRational(), SoPlex::getDualViolationRational(), SoPlex::getRedCostViolationRational(), SoPlex::getRowViolationRational(), SoPlex::setIntParam(), SoPlex::solve(), and SoPlex::syncLPRational().
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
- Todo:
- try loading old basis
Definition at line 7288 of file soplex.cpp.
References SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_solver, SoPlex::_statistics, SPxSolver::loadLP(), Timer::start(), Timer::stop(), and SoPlex::Statistics::syncTime.
Referenced by SoPlex::_readFileRational(), and SoPlex::syncLPReal().
void _syncRationalSolution |
( |
| ) |
|
|
private |
synchronizes rational solution with real solution, i.e., copies (rounded) rational solution to real solution
Definition at line 7342 of file soplex.cpp.
References SoPlex::_hasSolRational, SoPlex::_hasSolReal, SoPlex::_solRational, and SoPlex::_solReal.
Referenced by SoPlex::dlcmSizeDualRational(), SoPlex::dlcmSizePrimalRational(), SoPlex::dmaxSizeDualRational(), SoPlex::dmaxSizePrimalRational(), SoPlex::getBoundViolationRational(), SoPlex::getDualFarkasRational(), SoPlex::getDualRational(), SoPlex::getDualViolationRational(), SoPlex::getPrimalRational(), SoPlex::getPrimalRayRational(), SoPlex::getRedCostRational(), SoPlex::getRedCostViolationRational(), SoPlex::getRowViolationRational(), SoPlex::getSlacksRational(), SoPlex::objValueRational(), SoPlex::totalSizeDualRational(), and SoPlex::totalSizePrimalRational().
void _syncRealSolution |
( |
| ) |
|
|
private |
synchronizes real solution with rational solution, i.e., copies real solution to rational solution
Definition at line 7330 of file soplex.cpp.
References SoPlex::_hasSolRational, SoPlex::_hasSolReal, SoPlex::_solRational, and SoPlex::_solReal.
Referenced by SoPlex::getBoundViolationReal(), SoPlex::getDualFarkasReal(), SoPlex::getDualReal(), SoPlex::getDualViolationReal(), SoPlex::getPrimalRayReal(), SoPlex::getPrimalReal(), SoPlex::getRedCostReal(), SoPlex::getRedCostViolationReal(), SoPlex::getRowViolationReal(), SoPlex::getSlacksReal(), and SoPlex::objValueReal().
void _transformEquality |
( |
| ) |
|
|
private |
introduces slack variables to transform inequality constraints into equations for both rational and real LP, which should be in sync
Definition at line 1869 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SoPlex::_hasBasis, SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SoPlex::_slackCols, SoPlex::_statistics, SoPlex::_switchRangeType(), SoPlex::_unitVectorRational(), LPColSetBase< R >::add(), SPxLPBase< R >::addCols(), DataArray< T >::append(), SPxSolver::BASIC, SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeRange(), SPxLPBase< R >::changeRhs(), LPColSetBase< R >::clear(), LPColSetBase< R >::colVector(), SPxSolver::FIXED, SVectorBase< R >::index(), SPxLPBase< R >::lhs(), SoPlex::lhsRational(), MSG_DEBUG, MSG_INFO1, LPColSetBase< R >::num(), SoPlex::numRowsRational(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::RANGETYPE_FIXED, SPxLPBase< R >::rhs(), SoPlex::rhsRational(), SoPlex::spxout, Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, SPxLPBase< R >::writeFile(), and Rational::ZERO.
Referenced by SoPlex::_solveRational().
void _transformFeasibility |
( |
| ) |
|
|
private |
transforms LP to feasibility problem by removing the objective function, shifting variables, and homogenizing the right-hand side
- Todo:
- exploit this case by returning without LP solving
Definition at line 2330 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_colTypes, SoPlex::_feasLhs, SoPlex::_feasLower, SoPlex::_feasObj, SoPlex::_feasRhs, SoPlex::_feasUpper, SoPlex::_hasBasis, SoPlex::_lowerFinite(), SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_realLP, SoPlex::_rowTypes, SoPlex::_statistics, SoPlex::_tauColVector, SoPlex::_upperFinite(), DSVectorBase< R >::add(), SPxLPBase< R >::addCol(), DataArray< T >::append(), SPxLPBase< R >::changeBounds(), SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeMaxObj(), SPxLPBase< R >::changeRange(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SVectorBase< R >::clear(), SoPlex::colVectorRational(), SVectorBase< R >::index(), SoPlex::INFTY, SoPlex::intParam(), SPxLPBase< R >::lhs(), SoPlex::lhsRational(), SPxLPBase< R >::lower(), SoPlex::lowerRational(), SoPlex::lowerReal(), SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO1, MSG_INFO3, Rational::NEGONE, SoPlex::numColsRational(), SoPlex::numRowsRational(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SPxSolver::ON_UPPER, Rational::POSONE, SoPlex::RANGETYPE_BOXED, SoPlex::realParam(), DVectorBase< R >::reDim(), SPxLPBase< R >::rhs(), SoPlex::rhsRational(), SoPlex::rhsReal(), SVectorBase< R >::size(), SoPlex::spxout, Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, SPxLPBase< R >::upper(), SoPlex::upperRational(), SoPlex::upperReal(), SVectorBase< R >::value(), and SPxLPBase< R >::writeFile().
Referenced by SoPlex::_performFeasIRStable().
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
- Todo:
- implement this without copying the objective function
Definition at line 2060 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SoPlex::_hasBasis, SoPlex::_lowerFinite(), SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_realLP, SoPlex::_rowTypes, SoPlex::_statistics, SoPlex::_unboundedLhs, SoPlex::_unboundedLower, SoPlex::_unboundedRhs, SoPlex::_unboundedUpper, SoPlex::_upperFinite(), DSVectorBase< R >::add(), SPxLPBase< R >::addRow(), DataArray< T >::append(), SPxSolver::BASIC, SPxLPBase< R >::changeBounds(), SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeMaxObj(), SPxLPBase< R >::changeObj(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SoPlex::INFTY, SPxLPBase< R >::lhs(), SoPlex::lhsRational(), SPxLPBase< R >::lower(), SoPlex::lowerRational(), SPxLPBase< R >::maxObj(), MSG_DEBUG, MSG_INFO1, SoPlex::numColsRational(), SoPlex::numRowsRational(), SPxSolver::ON_UPPER, SoPlex::RANGETYPE_FIXED, SoPlex::RANGETYPE_UPPER, SoPlex::realParam(), DVectorBase< R >::reDim(), SPxLPBase< R >::rhs(), SoPlex::rhsRational(), SoPlex::spxout, Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, SPxLPBase< R >::upper(), SoPlex::upperRational(), and SPxLPBase< R >::writeFile().
Referenced by SoPlex::_performUnboundedIRStable().
undoes transformation to equality form
restores original problem
Definition at line 1946 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SolBase< R >::_dual, SoPlex::_hasBasis, SolBase< R >::_primal, SolBase< R >::_primalRay, SoPlex::_rationalLP, SoPlex::_realLP, SolBase< R >::_redCost, SoPlex::_rowTypes, SoPlex::_slackCols, SolBase< R >::_slacks, SoPlex::_statistics, SoPlex::_switchRangeType(), SPxSolver::BASIC, SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeRhs(), LPColSetBase< R >::colVector(), SPxSolver::FIXED, SolBase< R >::hasDual(), SolBase< R >::hasPrimal(), SolBase< R >::hasPrimalRay(), SVectorBase< R >::index(), SPxLPBase< R >::lhs(), SoPlex::lhsRational(), SoPlex::lowerRational(), MSG_DEBUG, LPColSetBase< R >::num(), SoPlex::numColsRational(), SoPlex::numRowsRational(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, soplex::rationalToString(), DVectorBase< R >::reDim(), SPxLPBase< R >::removeColRange(), DataArray< T >::reSize(), SPxLPBase< R >::rhs(), SoPlex::rhsRational(), Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, SPxSolver::UNDEFINED, SoPlex::upperRational(), SPxLPBase< R >::writeFile(), and SPxSolver::ZERO.
Referenced by SoPlex::_solveRational().
void _untransformFeasibility |
( |
SolRational & |
sol, |
|
|
bool |
infeasible |
|
) |
| |
|
private |
undoes transformation to feasibility problem
Definition at line 2593 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_colTypes, SolBase< R >::_dual, SolBase< R >::_dualFarkas, SoPlex::_feasLhs, SoPlex::_feasLower, SoPlex::_feasObj, SoPlex::_feasRhs, SoPlex::_feasUpper, SoPlex::_hasBasis, SolBase< R >::_hasDual, SolBase< R >::_hasDualFarkas, SolBase< R >::_hasPrimal, SolBase< R >::_hasPrimalRay, SoPlex::_lowerFinite(), SolBase< R >::_primal, SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_realLP, SoPlex::_rowTypes, SolBase< R >::_slacks, SoPlex::_statistics, SoPlex::_upperFinite(), SPxSolver::BASIC, SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeMaxObj(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SPxLPBase< R >::colVector(), SPxLPBase< R >::computePrimalActivity(), SoPlex::INFTY, SPxLPBase< R >::lhs(), SoPlex::lhsRational(), SoPlex::lhsReal(), SPxLPBase< R >::lower(), SoPlex::lowerRational(), SoPlex::lowerReal(), MSG_DEBUG, VectorBase< R >::multAdd(), SoPlex::numColsRational(), SoPlex::numRowsRational(), SoPlex::realParam(), DVectorBase< R >::reDim(), SPxLPBase< R >::removeCol(), DataArray< T >::reSize(), SPxLPBase< R >::rhs(), SoPlex::rhsRational(), SoPlex::rhsReal(), Timer::start(), Timer::stop(), SoPlex::Statistics::transformTime, SPxLPBase< R >::upper(), SoPlex::upperRational(), SoPlex::upperReal(), and SPxLPBase< R >::writeFile().
Referenced by SoPlex::_performFeasIRStable().
void _untransformUnbounded |
( |
SolRational & |
sol, |
|
|
bool |
unbounded |
|
) |
| |
|
private |
undoes transformation to unboundedness problem
Definition at line 2176 of file solverational.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_colTypes, SolBase< R >::_dual, SoPlex::_hasBasis, SolBase< R >::_hasDual, SolBase< R >::_hasDualFarkas, SolBase< R >::_hasPrimal, SolBase< R >::_hasPrimalRay, SoPlex::_lowerFinite(), SolBase< R >::_primal, SolBase< R >::_primalRay, SoPlex::_rationalFeastol, SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_realLP, SolBase< R >::_redCost, SoPlex::_rowTypes, SoPlex::_statistics, SoPlex::_unboundedLhs, SoPlex::_unboundedLower, SoPlex::_unboundedRhs, SoPlex::_unboundedUpper, SoPlex::_upperFinite(), SPxSolver::BASIC, SoPlex::boolParam(), SPxLPBase< R >::changeLhs(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeMaxObj(), SPxLPBase< R >::changeRhs(), SPxLPBase< R >::changeUpper(), SVectorBase< R >::index(), SoPlex::INFTY, SolBase< R >::invalidate(), SoPlex::lhsRational(), SoPlex::lhsReal(), SoPlex::lowerRational(), SoPlex::lowerReal(), MSG_DEBUG, SoPlex::numColsRational(), SoPlex::numRowsRational(), Rational::POSONE, SoPlex::realParam(), DVectorBase< R >::reDim(), SPxLPBase< R >::removeCol(), SPxLPBase< R >::removeRow(), DataArray< T >::reSize(), SoPlex::rhsRational(), SoPlex::rhsReal(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), Timer::start(), Timer::stop(), SoPlex::TESTDUALINF, SoPlex::Statistics::transformTime, SoPlex::upperRational(), SoPlex::upperReal(), SVectorBase< R >::value(), and SPxLPBase< R >::writeFile().
Referenced by SoPlex::_performUnboundedIRStable().
bool _upperFinite |
( |
const RangeType & |
rangeType | ) |
const |
|
private |
adds a single column
Definition at line 1910 of file soplex.cpp.
References SoPlex::_addColReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::addCol(), DataArray< T >::append(), SoPlex::intParam(), LPColBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and LPColBase< R >::upper().
void addColReal |
( |
const LPCol & |
lpcol | ) |
|
adds a single column
Definition at line 1277 of file soplex.cpp.
References SoPlex::_addColReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::addCol(), DataArray< T >::append(), SoPlex::intParam(), LPColBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and LPColBase< R >::upper().
Referenced by main().
adds multiple columns
Definition at line 1978 of file soplex.cpp.
References SoPlex::_addColsReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::addCols(), DataArray< T >::append(), SoPlex::intParam(), LPColSetBase< R >::lower(), LPColSetBase< R >::num(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and LPColSetBase< R >::upper().
adds multiple columns
Definition at line 1295 of file soplex.cpp.
References SoPlex::_addColsReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::addCols(), DataArray< T >::append(), SoPlex::intParam(), LPColSetBase< R >::lower(), LPColSetBase< R >::num(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and LPColSetBase< R >::upper().
adds a single row
Definition at line 1824 of file soplex.cpp.
References SoPlex::_addRowReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::addRow(), DataArray< T >::append(), SoPlex::intParam(), LPRowBase< R >::lhs(), LPRowBase< R >::rhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
adds a single row
Definition at line 1240 of file soplex.cpp.
References SoPlex::_addRowReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::addRow(), DataArray< T >::append(), SoPlex::intParam(), LPRowBase< R >::lhs(), LPRowBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
Referenced by main().
adds multiple rows
Definition at line 1890 of file soplex.cpp.
References SoPlex::_addRowsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::addRows(), DataArray< T >::append(), SoPlex::intParam(), LPRowSetBase< R >::lhs(), LPRowSetBase< R >::num(), LPRowSetBase< R >::rhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
adds multiple rows
Definition at line 1258 of file soplex.cpp.
References SoPlex::_addRowsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::addRows(), DataArray< T >::append(), SoPlex::intParam(), LPRowSetBase< R >::lhs(), LPRowSetBase< R >::num(), LPRowSetBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
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.
Definition at line 6022 of file soplex.cpp.
References SoPlex::_rationalLP, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_realLP, SPxLPBase< R >::colVector(), soplex::GE(), soplex::GT(), SoPlex::INFTY, soplex::LE(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), SPxLPBase< R >::maxObj(), SPxLPBase< Real >::MINIMIZE, SPxLPBase< R >::MINIMIZE, MSG_ERROR, SPxLPBase< R >::nCols(), SPxLPBase< R >::nNzos(), SPxLPBase< R >::nRows(), SoPlex::realParam(), SPxLPBase< R >::rhs(), SPxLPBase< R >::spxSense(), and SPxLPBase< R >::upper().
Referenced by SoPlex::solve().
returns basis status for a single column
Definition at line 3758 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxSolver::getBasisColStatus(), SoPlex::hasBasis(), SoPlex::INFTY, SoPlex::lowerReal(), SoPlex::numColsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SoPlex::upperReal(), and SPxSolver::ZERO.
Referenced by SoPlex::getRedCostViolationRational(), and SoPlex::getRedCostViolationReal().
returns the current basis status
Definition at line 3712 of file soplex.cpp.
References SPxBasis::DUAL, SoPlex::hasBasis(), SoPlex::hasDual(), SoPlex::hasPrimal(), SPxBasis::INFEASIBLE, SPxSolver::INFEASIBLE, SPxBasis::NO_PROBLEM, SPxBasis::OPTIMAL, SPxSolver::OPTIMAL, SPxBasis::PRIMAL, SPxBasis::REGULAR, SoPlex::status(), SPxBasis::UNBOUNDED, and SPxSolver::UNBOUNDED.
bool boolParam |
( |
const BoolParam |
param | ) |
const |
changes vectors of column bounds to lower and upper
Definition at line 2339 of file soplex.cpp.
References SoPlex::_changeBoundsReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::changeBounds(), SoPlex::intParam(), SoPlex::numColsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
void changeBoundsRational |
( |
int |
i, |
|
|
const Rational & |
lower, |
|
|
const Rational & |
upper |
|
) |
| |
changes vectors of column bounds to lower and upper
Definition at line 1536 of file soplex.cpp.
References SoPlex::_changeBoundsReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::changeBounds(), SoPlex::intParam(), SoPlex::numColsRational(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
void changeBoundsReal |
( |
int |
i, |
|
|
const Real & |
lower, |
|
|
const Real & |
upper |
|
) |
| |
replaces column i with lpcol
Definition at line 2200 of file soplex.cpp.
References SoPlex::_changeColReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeCol(), SoPlex::intParam(), LPColBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and LPColBase< R >::upper().
void changeColReal |
( |
int |
i, |
|
|
const LPColReal & |
lpcol |
|
) |
| |
replaces column i with lpcol
Definition at line 1443 of file soplex.cpp.
References SoPlex::_changeColReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::changeCol(), SoPlex::intParam(), LPColBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and LPColBase< R >::upper().
void changeElementRational |
( |
int |
i, |
|
|
int |
j, |
|
|
const Rational & |
val |
|
) |
| |
void changeElementReal |
( |
int |
i, |
|
|
int |
j, |
|
|
const Real & |
val |
|
) |
| |
changes left-hand side vector for constraints to lhs
Definition at line 2017 of file soplex.cpp.
References SoPlex::_changeLhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeLhs(), SoPlex::intParam(), SoPlex::numRowsRational(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
void changeLhsRational |
( |
int |
i, |
|
|
const Rational & |
lhs |
|
) |
| |
changes left-hand side of row i to lhs
Definition at line 2037 of file soplex.cpp.
References SoPlex::_changeLhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeLhs(), SoPlex::intParam(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
changes left-hand side vector for constraints to lhs
Definition at line 1332 of file soplex.cpp.
References SoPlex::_changeLhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::changeLhs(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SoPlex::numRowsRational(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
void changeLhsReal |
( |
int |
i, |
|
|
const Real & |
lhs |
|
) |
| |
changes left-hand side of row i to lhs
Definition at line 1351 of file soplex.cpp.
References SoPlex::_changeLhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::changeLhs(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
changes vector of lower bounds to lower
Definition at line 2219 of file soplex.cpp.
References SoPlex::_changeLowerReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::changeLower(), SoPlex::intParam(), SoPlex::numColsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and SPxLPBase< R >::upper().
void changeLowerRational |
( |
int |
i, |
|
|
const Rational & |
lower |
|
) |
| |
changes lower bound of column i to lower
Definition at line 2239 of file soplex.cpp.
References SoPlex::_changeLowerReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::changeLower(), SoPlex::intParam(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and SPxLPBase< R >::upper().
changes vector of lower bounds to lower
Definition at line 1461 of file soplex.cpp.
References SoPlex::_changeLowerReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::changeLower(), SoPlex::intParam(), SPxLPBase< R >::lower(), SoPlex::numColsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SPxLPBase< R >::upper().
void changeLowerReal |
( |
int |
i, |
|
|
const Real & |
lower |
|
) |
| |
changes lower bound of column i to lower
Definition at line 1481 of file soplex.cpp.
References SoPlex::_changeLowerReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::changeLower(), SoPlex::intParam(), SPxLPBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SPxLPBase< R >::upper().
void changeObjRational |
( |
int |
i, |
|
|
const Rational & |
obj |
|
) |
| |
void changeObjReal |
( |
int |
i, |
|
|
const Real & |
obj |
|
) |
| |
changes left- and right-hand side vectors
Definition at line 2140 of file soplex.cpp.
References SoPlex::_changeRangeReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRange(), SoPlex::intParam(), SoPlex::numRowsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
changes left- and right-hand side vectors
Definition at line 1406 of file soplex.cpp.
References SoPlex::_changeRangeReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRange(), SoPlex::intParam(), SoPlex::numRowsRational(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
void changeRangeReal |
( |
int |
i, |
|
|
const Real & |
lhs, |
|
|
const Real & |
rhs |
|
) |
| |
changes right-hand side vector to rhs
Definition at line 2077 of file soplex.cpp.
References SoPlex::_changeRhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRhs(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SoPlex::numRowsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
void changeRhsRational |
( |
int |
i, |
|
|
const Rational & |
rhs |
|
) |
| |
changes right-hand side of row i to rhs
Definition at line 2121 of file soplex.cpp.
References SoPlex::_changeRhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRhs(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
changes right-hand side vector to rhs
Definition at line 1369 of file soplex.cpp.
References SoPlex::_changeRhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRhs(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SoPlex::numRowsRational(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
void changeRhsReal |
( |
int |
i, |
|
|
const Real & |
rhs |
|
) |
| |
changes right-hand side of row i to rhs
Definition at line 1388 of file soplex.cpp.
References SoPlex::_changeRhsReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRhs(), SoPlex::intParam(), SPxLPBase< R >::lhs(), SPxLPBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
replaces row i with lprow
Definition at line 1998 of file soplex.cpp.
References SoPlex::_changeRowReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRow(), SoPlex::intParam(), LPRowBase< R >::lhs(), LPRowBase< R >::rhs(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
void changeRowReal |
( |
int |
i, |
|
|
const LPRowReal & |
lprow |
|
) |
| |
replaces row i with lprow
Definition at line 1314 of file soplex.cpp.
References SoPlex::_changeRowReal(), SoPlex::_invalidateSolution(), SoPlex::_rangeTypeReal(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, SPxLPBase< R >::changeRow(), SoPlex::intParam(), LPRowBase< R >::lhs(), LPRowBase< R >::rhs(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
changes vector of upper bounds to upper
Definition at line 2279 of file soplex.cpp.
References SoPlex::_changeUpperReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::changeUpper(), SoPlex::intParam(), SPxLPBase< R >::lower(), SoPlex::numColsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
void changeUpperRational |
( |
int |
i, |
|
|
const Rational & |
upper |
|
) |
| |
changes i 'th upper bound to upper
Definition at line 2299 of file soplex.cpp.
References SoPlex::_changeUpperReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SPxLPBase< R >::changeUpper(), SoPlex::intParam(), SPxLPBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
changes vector of upper bounds to upper
Definition at line 1499 of file soplex.cpp.
References SoPlex::_changeUpperReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::changeUpper(), SoPlex::intParam(), SPxLPBase< R >::lower(), SoPlex::numColsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SPxLPBase< R >::upper().
void changeUpperReal |
( |
int |
i, |
|
|
const Real & |
upper |
|
) |
| |
changes i 'th upper bound to upper
Definition at line 1518 of file soplex.cpp.
References SoPlex::_changeUpperReal(), SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SPxLPBase< R >::changeUpper(), SoPlex::intParam(), SPxLPBase< R >::lower(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SPxLPBase< R >::upper().
clears the LP
Definition at line 2672 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_hasBasis, SoPlex::_invalidateSolution(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, DataArray< T >::clear(), SPxLPBase< R >::clear(), SoPlex::intParam(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
Referenced by SoPlex::_readFileRational().
clears the LP
Definition at line 1793 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_hasBasis, SoPlex::_invalidateSolution(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_rowTypes, DataArray< T >::clear(), SPxLPBase< R >::clear(), SoPlex::intParam(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
Referenced by SoPlex::_readFileReal().
int dlcmSizeDualRational |
( |
const int |
base = 2 | ) |
|
int dlcmSizePrimalRational |
( |
const int |
base = 2 | ) |
|
int dmaxSizeDualRational |
( |
const int |
base = 2 | ) |
|
int dmaxSizePrimalRational |
( |
const int |
base = 2 | ) |
|
gets current basis via arrays of statuses
gets current basis
Definition at line 3794 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxSolver::BASIC, SPxSolver::getBasis(), SoPlex::hasBasis(), SoPlex::INFTY, SoPlex::lowerReal(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::realParam(), SoPlex::upperReal(), and SPxSolver::ZERO.
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
returns the indices of the basic columns and rows; basic column n gives value n, basic row m gives value -1-m
Definition at line 3834 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxBasis::baseId(), SPxSolver::BASIC, SPxSolver::basis(), SPxSolver::COLUMN, SoPlex::hasBasis(), SPxSolver::isColBasic(), SPxSolver::isRowBasic(), SPxLPBase< R >::number(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::rep(), and SPxSolver::ROW.
Referenced by SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), and SoPlex::getBasisInverseTimesVecReal().
bool getBasisInverseColReal |
( |
int |
c, |
|
|
Real * |
coef, |
|
|
int * |
inds = NULL , |
|
|
int * |
ninds = NULL |
|
) |
| |
computes column c of basis inverse; returns true on success
Definition at line 4087 of file soplex.cpp.
References SoPlex::_ensureRealLPLoaded(), SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxBasis::baseId(), SPxSolver::basis(), SPxSolver::COLUMN, SPxBasis::coSolve(), SoPlex::getBasisInd(), SoPlex::hasBasis(), SSVectorBase< R >::index(), SPxSolver::isColBasic(), SPxSolver::isRowBasic(), MSG_ERROR, SPxLPBase< R >::number(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::rep(), SPxSolver::ROW, SPxLPBase< R >::rowVector(), SSVectorBase< R >::setup(), SSVectorBase< R >::size(), SPxBasis::solve(), soplex::spx_alloc(), soplex::spx_free(), SPxSolver::unitVector(), and SPxException::what().
bool getBasisInverseRowReal |
( |
int |
r, |
|
|
Real * |
coef, |
|
|
int * |
inds = NULL , |
|
|
int * |
ninds = NULL |
|
) |
| |
computes row r of basis inverse; returns true on success
Definition at line 3943 of file soplex.cpp.
References SoPlex::_ensureRealLPLoaded(), SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxBasis::baseId(), SPxSolver::basis(), SPxSolver::COLUMN, SPxBasis::coSolve(), SoPlex::getBasisInd(), SoPlex::hasBasis(), SSVectorBase< R >::index(), SPxSolver::isColBasic(), SPxSolver::isRowBasic(), MSG_ERROR, SPxLPBase< R >::number(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::rep(), SPxSolver::ROW, SPxLPBase< R >::rowVector(), SSVectorBase< R >::setup(), SSVectorBase< R >::size(), SPxBasis::solve(), soplex::spx_alloc(), soplex::spx_free(), SPxSolver::unitVector(), and SPxException::what().
bool getBasisInverseTimesVecReal |
( |
Real * |
rhs, |
|
|
Real * |
sol |
|
) |
| |
computes dense solution of basis matrix B * sol = rhs; returns true on success
Definition at line 4231 of file soplex.cpp.
References SoPlex::_ensureRealLPLoaded(), SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxBasis::baseId(), SPxSolver::basis(), SPxSolver::COLUMN, SPxBasis::coSolve(), SSVectorBase< R >::get_ptr(), SoPlex::getBasisInd(), SoPlex::hasBasis(), SPxSolver::isColBasic(), SPxSolver::isRowBasic(), MSG_ERROR, SPxLPBase< R >::number(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::rep(), SPxSolver::ROW, SoPlex::rowVectorReal(), SPxBasis::solve(), soplex::spx_alloc(), soplex::spx_free(), and SPxException::what().
gets violation of bounds; returns true on success
Definition at line 3249 of file soplex.cpp.
References SolBase< R >::_primal, SoPlex::_solRational, SoPlex::_syncLPRational(), SoPlex::_syncRationalSolution(), VectorBase< R >::dim(), SoPlex::hasPrimal(), SoPlex::intParam(), SoPlex::lowerRational(), SoPlex::numColsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_ONLYREAL, and SoPlex::upperRational().
Referenced by checkSolutionRational(), and SoPlex::printSolutionStatistics().
bool getBoundViolationReal |
( |
Real & |
maxviol, |
|
|
Real & |
sumviol |
|
) |
| |
void getColReal |
( |
int |
i, |
|
|
LPColReal & |
lpcol |
|
) |
| const |
void getColsReal |
( |
int |
start, |
|
|
int |
end, |
|
|
LPColSetReal & |
lpcolset |
|
) |
| const |
bool getDualNorms |
( |
int & |
nnormsRow, |
|
|
int & |
nnormsCol, |
|
|
Real * |
norms |
|
) |
| const |
gets violation of dual multipliers; returns true on success
Definition at line 3414 of file soplex.cpp.
References SolBase< R >::_dual, SoPlex::_hasBasis, SoPlex::_rationalFeastol, SoPlex::_rowTypes, SolBase< R >::_slacks, SoPlex::_solRational, SoPlex::_syncLPRational(), SoPlex::_syncRationalSolution(), SoPlex::basisRowStatus(), VectorBase< R >::dim(), SPxSolver::FIXED, SoPlex::hasDual(), SoPlex::hasPrimal(), SoPlex::intParam(), SoPlex::lhsRational(), MSG_DEBUG, SoPlex::numRowsRational(), SoPlex::numRowsReal(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MINIMIZE, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::RANGETYPE_FIXED, soplex::rationalToString(), SoPlex::rhsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_ONLYREAL, and SPxSolver::UNDEFINED.
Referenced by checkSolutionRational(), and SoPlex::printSolutionStatistics().
bool getDualViolationReal |
( |
Real & |
maxviol, |
|
|
Real & |
sumviol |
|
) |
| |
gets violation of dual multipliers; returns true on success
Definition at line 3069 of file soplex.cpp.
References SolBase< R >::_dual, SoPlex::_solReal, SoPlex::_syncRealSolution(), SoPlex::basisRowStatus(), VectorBase< R >::dim(), SPxSolver::FIXED, SoPlex::hasBasis(), SoPlex::hasDual(), SoPlex::intParam(), SoPlex::numRowsReal(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MINIMIZE, SPxSolver::ON_LOWER, and SPxSolver::ON_UPPER.
Referenced by checkSolutionReal(), and SoPlex::printSolutionStatistics().
bool getEstimatedCondition |
( |
Real & |
condition | ) |
|
bool getExactCondition |
( |
Real & |
condition | ) |
|
void getNdualNorms |
( |
int & |
nnormsRow, |
|
|
int & |
nnormsCol |
|
) |
| const |
void getObjRational |
( |
int |
i, |
|
|
Rational & |
obj |
|
) |
| const |
const char * getPricerName |
( |
| ) |
|
const char * getRatiotesterName |
( |
| ) |
|
gets violation of reduced costs; returns true on success
Definition at line 3333 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_hasBasis, SolBase< R >::_primal, SolBase< R >::_redCost, SoPlex::_solRational, SoPlex::_syncLPRational(), SoPlex::_syncRationalSolution(), SoPlex::basisColStatus(), VectorBase< R >::dim(), SPxSolver::FIXED, SoPlex::hasDual(), SoPlex::hasPrimal(), SoPlex::intParam(), SoPlex::lowerRational(), MSG_DEBUG, SoPlex::numColsRational(), SoPlex::numColsReal(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MINIMIZE, SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::RANGETYPE_FIXED, soplex::rationalToString(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_ONLYREAL, SPxSolver::UNDEFINED, and SoPlex::upperRational().
Referenced by checkSolutionRational(), and SoPlex::printSolutionStatistics().
bool getRedCostViolationReal |
( |
Real & |
maxviol, |
|
|
Real & |
sumviol |
|
) |
| |
gets violation of reduced costs; returns true on success
Definition at line 3015 of file soplex.cpp.
References SolBase< R >::_redCost, SoPlex::_solReal, SoPlex::_syncRealSolution(), SoPlex::basisColStatus(), VectorBase< R >::dim(), SPxSolver::FIXED, SoPlex::hasBasis(), SoPlex::hasDual(), SoPlex::intParam(), SoPlex::numColsReal(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MINIMIZE, SPxSolver::ON_LOWER, and SPxSolver::ON_UPPER.
Referenced by checkSolutionReal(), and SoPlex::printSolutionStatistics().
void getRowReal |
( |
int |
i, |
|
|
LPRowReal & |
lprow |
|
) |
| const |
void getRowsReal |
( |
int |
start, |
|
|
int |
end, |
|
|
LPRowSetReal & |
lprowset |
|
) |
| const |
gets violation of constraints; returns true on success
Definition at line 3290 of file soplex.cpp.
References SolBase< R >::_primal, SoPlex::_rationalLP, SoPlex::_solRational, SoPlex::_syncLPRational(), SoPlex::_syncRationalSolution(), SPxLPBase< R >::computePrimalActivity(), VectorBase< R >::dim(), SoPlex::hasPrimal(), SoPlex::intParam(), SoPlex::lhsRational(), SoPlex::numColsRational(), SoPlex::numRowsRational(), SoPlex::rhsRational(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_ONLYREAL.
Referenced by checkSolutionRational(), and SoPlex::printSolutionStatistics().
bool getRowViolationReal |
( |
Real & |
maxviol, |
|
|
Real & |
sumviol |
|
) |
| |
gets violation of constraints; returns true on success
Definition at line 2976 of file soplex.cpp.
References SolBase< R >::_primal, SoPlex::_realLP, SoPlex::_solReal, SoPlex::_syncRealSolution(), SPxLPBase< R >::computePrimalActivity(), VectorBase< R >::dim(), SoPlex::hasPrimal(), SoPlex::lhsReal(), SoPlex::numColsReal(), SoPlex::numRowsReal(), and SoPlex::rhsReal().
Referenced by checkSolutionReal(), and SoPlex::printSolutionStatistics().
const char * getScalerName |
( |
| ) |
|
const char * getSimplifierName |
( |
| ) |
|
const char * getStarterName |
( |
| ) |
|
is an advanced starting basis available?
Definition at line 3704 of file soplex.cpp.
References SoPlex::_hasBasis.
Referenced by SoPlex::basisColStatus(), SoPlex::basisRowStatus(), SoPlex::basisStatus(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SoPlex::getDualViolationReal(), SoPlex::getRedCostViolationReal(), and main().
is a dual feasible solution available?
Definition at line 2807 of file soplex.cpp.
References SoPlex::_hasSolRational, SoPlex::_hasSolReal, SoPlex::_solRational, SoPlex::_solReal, and SolBase< R >::hasDual().
Referenced by SoPlex::basisStatus(), checkSolutionRational(), checkSolutionReal(), SoPlex::dlcmSizeDualRational(), SoPlex::dmaxSizeDualRational(), SoPlex::getDualRational(), SoPlex::getDualReal(), SoPlex::getDualViolationRational(), SoPlex::getDualViolationReal(), SoPlex::getRedCostRational(), SoPlex::getRedCostReal(), SoPlex::getRedCostViolationRational(), SoPlex::getRedCostViolationReal(), SoPlex::objValueRational(), SoPlex::objValueReal(), and SoPlex::totalSizeDualRational().
bool hasDualFarkas |
( |
| ) |
const |
is a primal feasible solution available?
Definition at line 2791 of file soplex.cpp.
References SoPlex::_hasSolRational, SoPlex::_hasSolReal, SoPlex::_solRational, SoPlex::_solReal, and SolBase< R >::hasPrimal().
Referenced by SoPlex::basisStatus(), checkSolutionRational(), checkSolutionReal(), SoPlex::dlcmSizePrimalRational(), SoPlex::dmaxSizePrimalRational(), SoPlex::getBoundViolationRational(), SoPlex::getBoundViolationReal(), SoPlex::getDualViolationRational(), SoPlex::getPrimalRational(), SoPlex::getPrimalReal(), SoPlex::getRedCostViolationRational(), SoPlex::getRowViolationRational(), SoPlex::getRowViolationReal(), SoPlex::getSlacksRational(), SoPlex::getSlacksReal(), SoPlex::objValueRational(), SoPlex::objValueReal(), and SoPlex::totalSizePrimalRational().
bool hasPrimalRay |
( |
| ) |
const |
int intParam |
( |
const IntParam |
param | ) |
const |
returns integer parameter value
Definition at line 4840 of file soplex.cpp.
References SoPlex::_currentSettings, SoPlex::Settings::_intParamValues, and SoPlex::INTPARAM_COUNT.
Referenced by SoPlex::_enableSimplifierAndScaler(), SoPlex::_factorizeColumnRational(), SoPlex::_isConsistent(), SoPlex::_isSolveStopped(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_solveRealStable(), SoPlex::_storeLPReal(), SoPlex::_transformFeasibility(), SoPlex::addColRational(), SoPlex::addColReal(), SoPlex::addColsRational(), SoPlex::addColsReal(), SoPlex::addRowRational(), SoPlex::addRowReal(), SoPlex::addRowsRational(), SoPlex::addRowsReal(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), SoPlex::changeColRational(), SoPlex::changeColReal(), SoPlex::changeElementRational(), SoPlex::changeElementReal(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeObjRational(), SoPlex::changeObjReal(), SoPlex::changeRangeRational(), SoPlex::changeRangeReal(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SoPlex::changeRowRational(), SoPlex::changeRowReal(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), checkSolution(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::getBoundViolationRational(), SoPlex::getDualViolationRational(), SoPlex::getDualViolationReal(), SoPlex::getObjRational(), SoPlex::getRedCostViolationRational(), SoPlex::getRedCostViolationReal(), SoPlex::getRowViolationRational(), main(), SoPlex::objValueRational(), SoPlex::objValueReal(), SoPlex::operator=(), SoPlex::printSolutionStatistics(), SoPlex::printStatistics(), SoPlex::readFile(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), SoPlex::removeColsReal(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), SoPlex::removeRowsReal(), SoPlex::setIntParam(), SoPlex::setRealParam(), SoPlex::solve(), SoPlex::SoPlex(), SoPlex::syncLPRational(), SoPlex::syncLPReal(), and SoPlex::writeFileRational().
returns left-hand side vector
Definition at line 1102 of file soplex.cpp.
References SoPlex::_rationalLP, and SPxLPBase< R >::lhs().
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_reconstructSolutionRational(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::getDualViolationRational(), SoPlex::getRowViolationRational(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), and SoPlex::removeRowsReal().
const Rational & lhsRational |
( |
int |
i | ) |
const |
Real lhsReal |
( |
int |
i | ) |
const |
bool loadSettingsFile |
( |
const char * |
filename | ) |
|
returns lower bound vector
Definition at line 1174 of file soplex.cpp.
References SoPlex::_rationalLP, and SPxLPBase< R >::lower().
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_reconstructSolutionRational(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::getBoundViolationRational(), SoPlex::getRedCostViolationRational(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), and SoPlex::removeColsReal().
const Rational & lowerRational |
( |
int |
i | ) |
const |
Real lowerReal |
( |
int |
i | ) |
const |
Rational maxAbsNonzeroRational |
( |
| ) |
const |
Real maxAbsNonzeroReal |
( |
| ) |
const |
const Rational & maxObjRational |
( |
int |
i | ) |
const |
Real maxObjReal |
( |
int |
i | ) |
const |
Rational minAbsNonzeroRational |
( |
| ) |
const |
Real minAbsNonzeroReal |
( |
| ) |
const |
int numColsRational |
( |
| ) |
const |
returns number of columns
Definition at line 1021 of file soplex.cpp.
References SoPlex::_rationalLP, and SPxLPBase< R >::nCols().
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_lift(), SoPlex::_performFeasIRStable(), SoPlex::_performOptIRStable(), SoPlex::_performUnboundedIRStable(), SoPlex::_project(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_reconstructSolutionRational(), SoPlex::_solveRealForRational(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SoPlex::getBoundViolationRational(), SoPlex::getPrimalRational(), SoPlex::getPrimalRayRational(), SoPlex::getRedCostRational(), SoPlex::getRedCostViolationRational(), SoPlex::getRowViolationRational(), SoPlex::removeColRangeRational(), SoPlex::removeColsRational(), and SoPlex::removeColsReal().
int numColsReal |
( |
| ) |
const |
returns number of columns
Definition at line 779 of file soplex.cpp.
References SoPlex::_realLP, and SPxLPBase< R >::nCols().
Referenced by SoPlex::_changeBoundsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_isConsistent(), SoPlex::_lift(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_removeColsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRational(), SoPlex::basisColStatus(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SoPlex::getBoundViolationReal(), SoPlex::getPrimalRayReal(), SoPlex::getPrimalReal(), SoPlex::getRedCostReal(), SoPlex::getRedCostViolationRational(), SoPlex::getRedCostViolationReal(), SoPlex::getRowViolationReal(), main(), SoPlex::readBasisFile(), SoPlex::removeColRangeReal(), SoPlex::removeColsReal(), and SoPlex::setBasis().
int numIterations |
( |
| ) |
const |
int numNonzerosRational |
( |
| ) |
const |
int numNonzerosReal |
( |
| ) |
const |
int numRowsRational |
( |
| ) |
const |
returns number of rows
Definition at line 1012 of file soplex.cpp.
References SoPlex::_rationalLP, and SPxLPBase< R >::nRows().
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_project(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_reconstructSolutionRational(), SoPlex::_solveRealForRational(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeRangeRational(), SoPlex::changeRangeReal(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SoPlex::getDualFarkasRational(), SoPlex::getDualRational(), SoPlex::getDualViolationRational(), SoPlex::getRowViolationRational(), SoPlex::getSlacksRational(), SoPlex::removeRowRangeRational(), SoPlex::removeRowsRational(), and SoPlex::removeRowsReal().
int numRowsReal |
( |
| ) |
const |
message handler
returns number of rows
Definition at line 770 of file soplex.cpp.
References SoPlex::_realLP, and SPxLPBase< R >::nRows().
Referenced by SoPlex::_changeLhsReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_isConsistent(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_removeRowsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRational(), SoPlex::basisRowStatus(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SoPlex::getDualFarkasReal(), SoPlex::getDualReal(), SoPlex::getDualViolationRational(), SoPlex::getDualViolationReal(), SoPlex::getRowViolationReal(), SoPlex::getSlacksReal(), main(), SoPlex::readBasisFile(), SoPlex::removeRowRangeReal(), SoPlex::removeRowsReal(), and SoPlex::setBasis().
Real objReal |
( |
int |
i | ) |
const |
returns the objective value if a primal solution is available
returns the objective value if a primal or dual solution is available
Definition at line 3123 of file soplex.cpp.
References SolBase< R >::_dualObjVal, SolBase< R >::_primalObjVal, SoPlex::_rationalNegInfty, SoPlex::_rationalPosInfty, SoPlex::_solRational, SoPlex::_syncRationalSolution(), SoPlex::hasDual(), SoPlex::hasPrimal(), SPxSolver::INFEASIBLE, SoPlex::intParam(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, SoPlex::status(), SPxSolver::UNBOUNDED, and Rational::ZERO.
Referenced by SoPlex::printSolutionStatistics().
returns the objective value if a primal solution is available
returns the objective value if a primal or dual solution is available
Definition at line 2823 of file soplex.cpp.
References SolBase< R >::_dualObjVal, SolBase< R >::_primalObjVal, SoPlex::_solReal, SoPlex::_syncRealSolution(), SoPlex::hasDual(), SoPlex::hasPrimal(), SPxSolver::INFEASIBLE, SoPlex::INFTY, SoPlex::intParam(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, SoPlex::realParam(), SoPlex::status(), and SPxSolver::UNBOUNDED.
Referenced by main(), SoPlex::printShortStatistics(), and SoPlex::printSolutionStatistics().
assignment operator
Definition at line 609 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_currentSettings, SoPlex::_hasBasis, SoPlex::_hasSolRational, SoPlex::_hasSolReal, SoPlex::_isConsistent(), SoPlex::_isRealLPLoaded, SoPlex::_lastSolveMode, SoPlex::_pricerAuto, SoPlex::_pricerDantzig, SoPlex::_pricerDevex, SoPlex::_pricerParMult, SoPlex::_pricerQuickSteep, SoPlex::_pricerSteep, SoPlex::_rationalLP, SoPlex::_ratiotesterBoundFlipping, SoPlex::_ratiotesterFast, SoPlex::_ratiotesterHarris, SoPlex::_ratiotesterTextbook, SoPlex::_realLP, SoPlex::_scalerBiequi, SoPlex::_scalerGeo1, SoPlex::_scalerGeo8, SoPlex::_scalerUniequi, SoPlex::_simplifierMainSM, SoPlex::_slufactor, SoPlex::_solRational, SoPlex::_solReal, SoPlex::_solver, SoPlex::_starterSum, SoPlex::_starterVector, SoPlex::_starterWeight, SoPlex::_statistics, SoPlex::_status, SoPlex::intParam(), SoPlex::SCALER, SoPlex::setIntParam(), SPxScaler::setOutstream(), SPxSolver::setOutstream(), SPxSolver::setSolver(), SoPlex::SIMPLIFIER, soplex::spx_alloc(), SoPlex::spxout, SoPlex::STARTER, SoPlex::SYNCMODE, and SoPlex::SYNCMODE_ONLYREAL.
bool parseSettingsString |
( |
char * |
line | ) |
|
parses one setting string and returns true on success; note that string is modified
parses one setting string and returns true on success
Definition at line 5561 of file soplex.cpp.
References SoPlex::Settings::_boolParamName, SoPlex::_currentSettings, SoPlex::Settings::_intParamName, SoPlex::Settings::_realParamName, SoPlex::BOOLPARAM_COUNT, SoPlex::INTPARAM_COUNT, MSG_ERROR, soplex::readStringRational(), REAL_FORMAT, SoPlex::REALPARAM_COUNT, SET_MAX_LINE_LEN, SoPlex::setBoolParam(), SoPlex::setIntParam(), and SoPlex::setRealParam().
Referenced by main().
void printShortStatistics |
( |
std::ostream & |
os | ) |
|
void printSolutionStatistics |
( |
std::ostream & |
os | ) |
|
prints solution statistics
Definition at line 5798 of file soplex.cpp.
References SoPlex::_lastSolveMode, SoPlex::CHECKMODE, SoPlex::CHECKMODE_AUTO, SoPlex::CHECKMODE_RATIONAL, SoPlex::dlcmSizeDualRational(), SoPlex::dlcmSizePrimalRational(), SoPlex::dmaxSizeDualRational(), SoPlex::dmaxSizePrimalRational(), SoPlex::getBoundViolationRational(), SoPlex::getBoundViolationReal(), SoPlex::getDualViolationRational(), SoPlex::getDualViolationReal(), SoPlex::getRedCostViolationRational(), SoPlex::getRedCostViolationReal(), SoPlex::getRowViolationRational(), SoPlex::getRowViolationReal(), SoPlex::intParam(), SoPlex::objValueRational(), SoPlex::objValueReal(), soplex::rationalToString(), SoPlex::READMODE, SoPlex::READMODE_RATIONAL, SoPlex::SOLVEMODE_RATIONAL, SoPlex::SOLVEMODE_REAL, SoPlex::totalSizeDualRational(), and SoPlex::totalSizePrimalRational().
Referenced by SoPlex::printStatistics().
void printSolvingStatistics |
( |
std::ostream & |
os | ) |
|
void printStatistics |
( |
std::ostream & |
os | ) |
|
prints complete statistics
Definition at line 5896 of file soplex.cpp.
References SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_status, SoPlex::intParam(), SoPlex::OBJSENSE, SoPlex::OBJSENSE_MINIMIZE, SPxLPBase< R >::printProblemStatistics(), SoPlex::printSolutionStatistics(), SoPlex::printSolvingStatistics(), SoPlex::printStatus(), SoPlex::READMODE, and SoPlex::READMODE_REAL.
Referenced by main().
prints status
Definition at line 5916 of file soplex.cpp.
References SPxSolver::ABORT_CYCLING, SPxSolver::ABORT_ITER, SPxSolver::ABORT_TIME, SPxSolver::ABORT_VALUE, SPxSolver::ERROR, SPxSolver::INFEASIBLE, SPxSolver::INForUNBD, SPxSolver::NO_PRICER, SPxSolver::NO_PROBLEM, SPxSolver::NO_RATIOTESTER, SPxSolver::NO_SOLVER, SPxSolver::NOT_INIT, SPxSolver::OPTIMAL, SPxSolver::REGULAR, SPxSolver::SINGULAR, SPxSolver::UNBOUNDED, and SPxSolver::UNKNOWN.
Referenced by SoPlex::printShortStatistics(), and SoPlex::printStatistics().
void printUserSettings |
( |
| ) |
|
print non-default parameter values
Definition at line 5399 of file soplex.cpp.
References SoPlex::Settings::_boolParamDefault, SoPlex::Settings::_boolParamName, SoPlex::Settings::_boolParamValues, SoPlex::_currentSettings, SoPlex::Settings::_intParamDefault, SoPlex::Settings::_intParamName, SoPlex::Settings::_intParamValues, SoPlex::Settings::_realParamDefault, SoPlex::Settings::_realParamName, SoPlex::Settings::_realParamValues, SoPlex::BOOLPARAM_COUNT, SoPlex::INTPARAM_COUNT, SoPlex::REALPARAM_COUNT, and SoPlex::spxout.
Referenced by main().
void printVersion |
( |
| ) |
const |
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
Definition at line 4500 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_realLP, SoPlex::_rowTypes, SoPlex::_solver, SoPlex::_statistics, NameSet::add(), SPxSolver::BASIC, SPxSolver::basis(), MPSInput::ENDATA, MPSInput::field0(), MPSInput::field1(), MPSInput::field2(), MPSInput::field3(), SPxSolver::FIXED, MPSInput::hasError(), SoPlex::INFTY, SPxSolver::loadLP(), SoPlex::lowerReal(), SPxBasis::NO_PROBLEM, NameSet::number(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::ON_LOWER, SPxSolver::ON_UPPER, SoPlex::RANGETYPE_FIXED, SoPlex::RANGETYPE_LOWER, SoPlex::RANGETYPE_UPPER, SPxSolver::readBasisFile(), SoPlex::Statistics::readingTime, MPSInput::readLine(), SoPlex::realParam(), NameSet::reMax(), MPSInput::setSection(), soplex::spx_alloc(), soplex::spx_free(), Timer::start(), SPxBasis::status(), Timer::stop(), MPSInput::syntaxError(), SoPlex::upperReal(), SPxSolver::ZERO, and NameSet::~NameSet().
Referenced by main().
bool readFile |
( |
const char * |
filename, |
|
|
NameSet * |
rowNames = 0 , |
|
|
NameSet * |
colNames = 0 , |
|
|
DIdxSet * |
intVars = 0 |
|
) |
| |
returns real parameter value
Definition at line 4850 of file soplex.cpp.
References SoPlex::_currentSettings, SoPlex::Settings::_realParamValues, and SoPlex::REALPARAM_COUNT.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeLhsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_changeUpperReal(), SoPlex::_enableSimplifierAndScaler(), SoPlex::_factorizeColumnRational(), SoPlex::_isSolveStopped(), SoPlex::_lift(), SoPlex::_performFeasIRStable(), SoPlex::_performOptIRStable(), SoPlex::_performUnboundedIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_solveRational(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_solveRealStable(), SoPlex::_storeSolutionReal(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::areLPsInSync(), SoPlex::basisColStatus(), checkSolutionRational(), checkSolutionReal(), SoPlex::getBasis(), SoPlex::objValueReal(), SoPlex::readBasisFile(), SoPlex::setRealParam(), and SoPlex::solve().
void removeColRangeRational |
( |
int |
start, |
|
|
int |
end, |
|
|
int |
perm[] = 0 |
|
) |
| |
void removeColRangeReal |
( |
int |
start, |
|
|
int |
end, |
|
|
int |
perm[] = 0 |
|
) |
| |
void removeColRational |
( |
int |
i | ) |
|
removes column i
Definition at line 2582 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_removeColReal(), SoPlex::intParam(), SoPlex::lowerRational(), SPxLPBase< R >::nCols(), SPxLPBase< R >::removeCol(), DataArray< T >::reSize(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and SoPlex::upperRational().
void removeColReal |
( |
int |
i | ) |
|
removes column i
Definition at line 1705 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_removeColReal(), SoPlex::intParam(), SoPlex::lowerRational(), SPxLPBase< R >::nCols(), SPxLPBase< R >::removeCol(), DataArray< T >::reSize(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::upperRational().
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()
Definition at line 2605 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_removeColsReal(), SoPlex::intParam(), SoPlex::lowerRational(), SPxLPBase< R >::nCols(), SoPlex::numColsRational(), SPxLPBase< R >::removeCols(), DataArray< T >::reSize(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_ONLYREAL, and SoPlex::upperRational().
Referenced by SoPlex::removeColRangeRational(), and SoPlex::removeColsRational().
void removeColsRational |
( |
int |
idx[], |
|
|
int |
n, |
|
|
int |
perm[] = 0 |
|
) |
| |
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()
Definition at line 1727 of file soplex.cpp.
References SoPlex::_colTypes, SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_removeColsReal(), SoPlex::intParam(), SoPlex::lowerRational(), SPxLPBase< R >::nCols(), SoPlex::numColsRational(), SoPlex::numColsReal(), SPxLPBase< R >::removeCols(), DataArray< T >::reSize(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::upperRational().
Referenced by SoPlex::removeColRangeReal(), and SoPlex::removeColsReal().
void removeColsReal |
( |
int |
idx[], |
|
|
int |
n, |
|
|
int |
perm[] = 0 |
|
) |
| |
void removeRowRangeRational |
( |
int |
start, |
|
|
int |
end, |
|
|
int |
perm[] = 0 |
|
) |
| |
void removeRowRangeReal |
( |
int |
start, |
|
|
int |
end, |
|
|
int |
perm[] = 0 |
|
) |
| |
void removeRowRational |
( |
int |
i | ) |
|
removes row i
Definition at line 2491 of file soplex.cpp.
References SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_removeRowReal(), SoPlex::_rowTypes, SoPlex::intParam(), SoPlex::lhsRational(), SPxLPBase< R >::nRows(), SPxLPBase< R >::removeRow(), DataArray< T >::reSize(), SoPlex::rhsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
void removeRowReal |
( |
int |
i | ) |
|
removes row i
Definition at line 1617 of file soplex.cpp.
References SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_removeRowReal(), SoPlex::_rowTypes, SoPlex::intParam(), SoPlex::lhsRational(), SPxLPBase< R >::nRows(), SPxLPBase< R >::removeRow(), DataArray< T >::reSize(), SoPlex::rhsRational(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
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()
Definition at line 2514 of file soplex.cpp.
References SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_removeRowsReal(), SoPlex::_rowTypes, SoPlex::intParam(), SoPlex::lhsRational(), SPxLPBase< R >::nRows(), SoPlex::numRowsRational(), SPxLPBase< R >::removeRows(), DataArray< T >::reSize(), SoPlex::rhsRational(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, and SoPlex::SYNCMODE_ONLYREAL.
Referenced by SoPlex::removeRowRangeRational(), and SoPlex::removeRowsRational().
void removeRowsRational |
( |
int |
idx[], |
|
|
int |
n, |
|
|
int |
perm[] = 0 |
|
) |
| |
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 numRowsReal()
Definition at line 1639 of file soplex.cpp.
References SoPlex::_invalidateSolution(), SoPlex::_rangeTypeRational(), SoPlex::_rationalLP, SoPlex::_realLP, SoPlex::_removeRowsReal(), SoPlex::_rowTypes, SoPlex::intParam(), SoPlex::lhsRational(), SPxLPBase< R >::nRows(), SoPlex::numRowsRational(), SoPlex::numRowsReal(), SPxLPBase< R >::removeRows(), DataArray< T >::reSize(), SoPlex::rhsRational(), SoPlex::SYNCMODE, and SoPlex::SYNCMODE_AUTO.
Referenced by SoPlex::removeRowRangeReal(), and SoPlex::removeRowsReal().
void removeRowsReal |
( |
int |
idx[], |
|
|
int |
n, |
|
|
int |
perm[] = 0 |
|
) |
| |
returns right-hand side vector
Definition at line 1084 of file soplex.cpp.
References SoPlex::_rationalLP, and SPxLPBase< R >::rhs().
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_reconstructSolutionRational(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::getDualViolationRational(), SoPlex::getRowViolationRational(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), and SoPlex::removeRowsReal().
const Rational & rhsRational |
( |
int |
i | ) |
const |
Real rhsReal |
( |
int |
i | ) |
const |
bool saveSettingsFile |
( |
const char * |
filename, |
|
|
const bool |
onlyChanged = false |
|
) |
| const |
writes settings file; returns true on success
Definition at line 5447 of file soplex.cpp.
References SoPlex::Settings::_boolParamDefault, SoPlex::Settings::_boolParamDescription, SoPlex::Settings::_boolParamName, SoPlex::Settings::_boolParamValues, SoPlex::_currentSettings, SoPlex::Settings::_intParamDefault, SoPlex::Settings::_intParamDescription, SoPlex::Settings::_intParamName, SoPlex::Settings::_intParamValues, SoPlex::Settings::_realParamDefault, SoPlex::Settings::_realParamDescription, SoPlex::Settings::_realParamLower, SoPlex::Settings::_realParamName, SoPlex::Settings::_realParamUpper, SoPlex::Settings::_realParamValues, SoPlex::BOOLPARAM_COUNT, SoPlex::INTPARAM_COUNT, SoPlex::REALPARAM_COUNT, SOPLEX_SUBVERSION, and SOPLEX_VERSION.
Referenced by main(), SoPlex::writeStateRational(), and SoPlex::writeStateReal().
sets starting basis via arrays of statuses
Definition at line 4339 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_solver, SPxSolver::basis(), SPxLPBase< R >::nCols(), SPxBasis::NO_PROBLEM, SPxLPBase< R >::nRows(), SoPlex::numColsReal(), SoPlex::numRowsReal(), SPxSolver::setBasis(), and SPxBasis::status().
bool setBoolParam |
( |
const BoolParam |
param, |
|
|
const bool |
value, |
|
|
const bool |
quiet = false , |
|
|
const bool |
init = false |
|
) |
| |
sets boolean parameter value; returns true on success
Definition at line 4880 of file soplex.cpp.
References SoPlex::Settings::_boolParamValues, SoPlex::_currentSettings, SoPlex::_isConsistent(), SoPlex::_ratiotesterBoundFlipping, SoPlex::ACCEPTCYCLING, SoPlex::boolParam(), SoPlex::BOOLPARAM_COUNT, SoPlex::EQTRANS, SoPlex::FEASRELAX, SoPlex::LIFTING, SoPlex::POWERSCALING, SoPlex::RATFAC, SoPlex::RATFACJUMP, SoPlex::RATREC, SoPlex::ROWBOUNDFLIPS, SoPlex::TESTDUALINF, and SPxBoundFlippingRT::useBoundFlipsRow().
Referenced by SoPlex::_parseSettingsLine(), SoPlex::_solveRational(), SoPlex::parseSettingsString(), and SoPlex::setSettings().
bool setDualNorms |
( |
int |
nnormsRow, |
|
|
int |
nnormsCol, |
|
|
Real * |
norms |
|
) |
| |
bool setIntParam |
( |
const IntParam |
param, |
|
|
const int |
value, |
|
|
const bool |
quiet = false , |
|
|
const bool |
init = false |
|
) |
| |
sets integer parameter value; returns true on success
Definition at line 4923 of file soplex.cpp.
References SoPlex::_currentSettings, SoPlex::_ensureRationalLP(), SoPlex::Settings::_intParamUpper, SoPlex::Settings::_intParamValues, SoPlex::_invalidateSolution(), SoPlex::_isConsistent(), SoPlex::_pricerAuto, SoPlex::_pricerDantzig, SoPlex::_pricerDevex, SoPlex::_pricerParMult, SoPlex::_pricerQuickSteep, SoPlex::_pricerSteep, SoPlex::_rationalLP, SoPlex::_ratiotesterBoundFlipping, SoPlex::_ratiotesterFast, SoPlex::_ratiotesterHarris, SoPlex::_ratiotesterTextbook, SoPlex::_realLP, SoPlex::_scaler, SoPlex::_scalerBiequi, SoPlex::_scalerGeo1, SoPlex::_scalerGeo8, SoPlex::_scalerUniequi, SoPlex::_simplifier, SoPlex::_simplifierMainSM, SoPlex::_slufactor, SoPlex::_solver, SoPlex::_starter, SoPlex::_starterSum, SoPlex::_starterVector, SoPlex::_starterWeight, SoPlex::_syncLPRational(), SoPlex::ALGORITHM, SPxSolver::basis(), SPxLPBase< R >::changeSense(), SoPlex::CHECKMODE, SoPlex::CHECKMODE_AUTO, SoPlex::CHECKMODE_RATIONAL, SoPlex::CHECKMODE_REAL, SPxOut::DEBUG, SoPlex::DISPLAYFREQ, SPxOut::ERROR, SLUFactor::ETA, SoPlex::FACTOR_UPDATE_MAX, SoPlex::FACTOR_UPDATE_TYPE, SoPlex::FACTOR_UPDATE_TYPE_ETA, SoPlex::FACTOR_UPDATE_TYPE_FT, SLUFactor::FOREST_TOMLIN, SoPlex::HYPER_PRICING, SoPlex::HYPER_PRICING_AUTO, SoPlex::HYPER_PRICING_OFF, SoPlex::HYPER_PRICING_ON, SPxOut::INFO1, SPxOut::INFO2, SPxOut::INFO3, SoPlex::intParam(), SoPlex::INTPARAM_COUNT, SoPlex::ITERLIMIT, SPxLPBase< Real >::MAXIMIZE, SPxLPBase< R >::MAXIMIZE, SPxLPBase< Real >::MINIMIZE, SPxLPBase< R >::MINIMIZE, SoPlex::OBJSENSE, SoPlex::OBJSENSE_MAXIMIZE, SoPlex::OBJSENSE_MINIMIZE, Timer::OFF, SoPlex::PRICER, SoPlex::PRICER_AUTO, SoPlex::PRICER_DANTZIG, SoPlex::PRICER_DEVEX, SoPlex::PRICER_PARMULT, SoPlex::PRICER_QUICKSTEEP, SoPlex::PRICER_STEEP, SoPlex::RATFAC_MINSTALLS, SoPlex::RATIOTESTER, SoPlex::RATIOTESTER_BOUNDFLIPPING, SoPlex::RATIOTESTER_FAST, SoPlex::RATIOTESTER_HARRIS, SoPlex::RATIOTESTER_TEXTBOOK, SoPlex::READMODE, SoPlex::READMODE_RATIONAL, SoPlex::READMODE_REAL, SoPlex::REFLIMIT, SoPlex::REPRESENTATION, SoPlex::REPRESENTATION_AUTO, SoPlex::REPRESENTATION_COLUMN, SoPlex::REPRESENTATION_ROW, SoPlex::SCALER, SoPlex::SCALER_BIEQUI, SoPlex::SCALER_GEO1, SoPlex::SCALER_GEO8, SoPlex::SCALER_OFF, SoPlex::SCALER_UNIEQUI, SPxSolver::setDisplayFreq(), SPxBasis::setMaxUpdates(), SPxSolver::setPricer(), SPxSolver::setTester(), SPxSolver::setTiming(), SLUFactor::setUtype(), SPxOut::setVerbosity(), SoPlex::SIMPLIFIER, SoPlex::SIMPLIFIER_AUTO, SoPlex::SIMPLIFIER_OFF, SoPlex::SOLVEMODE, SoPlex::SOLVEMODE_AUTO, SoPlex::SOLVEMODE_RATIONAL, SoPlex::SOLVEMODE_REAL, soplex::spx_free(), SoPlex::spxout, SoPlex::STALLREFLIMIT, SoPlex::STARTER, SoPlex::STARTER_OFF, SoPlex::STARTER_SUM, SoPlex::STARTER_VECTOR, SoPlex::STARTER_WEIGHT, SoPlex::SYNCMODE, SoPlex::SYNCMODE_AUTO, SoPlex::SYNCMODE_MANUAL, SoPlex::SYNCMODE_ONLYREAL, SoPlex::TIMER, SoPlex::TIMER_CPU, SoPlex::TIMER_OFF, SoPlex::TIMER_WALLCLOCK, Timer::USER_TIME, SoPlex::VERBOSITY, Timer::WALLCLOCK_TIME, and SPxOut::WARNING.
Referenced by SoPlex::_parseSettingsLine(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_solveRational(), SoPlex::_solveRealStable(), main(), SoPlex::operator=(), SoPlex::parseSettingsString(), and SoPlex::setSettings().
bool setRealParam |
( |
const RealParam |
param, |
|
|
const Real |
value, |
|
|
const bool |
quiet = false , |
|
|
const bool |
init = false |
|
) |
| |
sets real parameter value; returns true on success
Definition at line 5229 of file soplex.cpp.
References SoPlex::_currentSettings, SoPlex::_isConsistent(), SoPlex::_rationalFeastol, SoPlex::_rationalMaxscaleincr, SoPlex::_rationalNegInfty, SoPlex::_rationalOpttol, SoPlex::_rationalPosInfty, SoPlex::Settings::_realParamUpper, SoPlex::Settings::_realParamValues, SoPlex::_recomputeRangeTypesRational(), SoPlex::EPSILON_FACTORIZATION, SoPlex::EPSILON_PIVOT, SoPlex::EPSILON_UPDATE, SoPlex::EPSILON_ZERO, SoPlex::FEASTOL, SoPlex::FPFEASTOL, SoPlex::FPOPTTOL, SoPlex::INFTY, SoPlex::intParam(), SoPlex::LIFTMAXVAL, SoPlex::LIFTMINVAL, SoPlex::MAXSCALEINCR, SoPlex::MINRED, SoPlex::OBJLIMIT_LOWER, SoPlex::OBJLIMIT_UPPER, SoPlex::OPTTOL, SoPlex::RATREC_FREQ, SoPlex::realParam(), SoPlex::REALPARAM_COUNT, SoPlex::REPRESENTATION_SWITCH, Param::setEpsilon(), Param::setEpsilonFactorization(), Param::setEpsilonPivot(), Param::setEpsilonUpdate(), SoPlex::SPARSITY_THRESHOLD, SoPlex::SYNCMODE, SoPlex::SYNCMODE_ONLYREAL, and SoPlex::TIMELIMIT.
Referenced by SoPlex::_parseSettingsLine(), main(), SoPlex::parseSettingsString(), and SoPlex::setSettings().
bool setSettings |
( |
const Settings & |
newSettings, |
|
|
const bool |
quiet = false , |
|
|
const bool |
init = false |
|
) |
| |
sets parameter settings; returns true on success
Definition at line 5369 of file soplex.cpp.
References SoPlex::Settings::_boolParamValues, SoPlex::_currentSettings, SoPlex::Settings::_intParamValues, SoPlex::_isConsistent(), SoPlex::Settings::_realParamValues, SoPlex::BOOLPARAM_COUNT, SoPlex::INTPARAM_COUNT, SoPlex::REALPARAM_COUNT, SoPlex::setBoolParam(), SoPlex::setIntParam(), and SoPlex::setRealParam().
Referenced by SoPlex::SoPlex().
solves the LP
Definition at line 2706 of file soplex.cpp.
References SoPlex::_currentSettings, SoPlex::_invalidateSolution(), SoPlex::_isConsistent(), SoPlex::Settings::_realParamLower, SoPlex::_solver, SoPlex::_solveRational(), SoPlex::_solveReal(), SoPlex::_statistics, SoPlex::_syncLPRational(), SoPlex::areLPsInSync(), SoPlex::Statistics::clearSolvingData(), SoPlex::FEASTOL, SoPlex::FPFEASTOL, SoPlex::FPOPTTOL, soplex::GE(), SPxOut::getStream(), SPxOut::INFO1, SoPlex::intParam(), MSG_INFO1, MSG_WARNING, SoPlex::OPTTOL, SoPlex::printShortStatistics(), SoPlex::realParam(), SPxSolver::setFeastol(), SPxSolver::setOpttol(), SoPlex::SOLVEMODE, SoPlex::SOLVEMODE_AUTO, SoPlex::SOLVEMODE_REAL, SoPlex::spxout, SoPlex::status(), SoPlex::SYNCMODE, SoPlex::SYNCMODE_MANUAL, and SoPlex::SYNCMODE_ONLYREAL.
Referenced by main().
std::string statisticString |
( |
| ) |
const |
int totalSizeDualRational |
( |
const int |
base = 2 | ) |
|
int totalSizePrimalRational |
( |
const int |
base = 2 | ) |
|
returns upper bound vector
Definition at line 1156 of file soplex.cpp.
References SoPlex::_rationalLP, and SPxLPBase< R >::upper().
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_reconstructSolutionRational(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::getBoundViolationRational(), SoPlex::getRedCostViolationRational(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), and SoPlex::removeColsReal().
const Rational & upperRational |
( |
int |
i | ) |
const |
Real upperReal |
( |
int |
i | ) |
const |
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
Definition at line 4691 of file soplex.cpp.
References SoPlex::_basisStatusCols, SoPlex::_basisStatusRows, SoPlex::_hasBasis, SoPlex::_isRealLPLoaded, SoPlex::_rowTypes, SoPlex::_solver, SPxSolver::BASIC, NameSet::has(), SPxSolver::ON_UPPER, SoPlex::RANGETYPE_BOXED, SPxSolver::UNDEFINED, and SPxSolver::writeBasisFile().
Referenced by main(), SoPlex::writeStateRational(), and SoPlex::writeStateReal().
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 |
void writeStateRational |
( |
const char * |
filename, |
|
|
const NameSet * |
rowNames = 0 , |
|
|
const NameSet * |
colNames = 0 , |
|
|
const bool |
cpxFormat = false |
|
) |
| const |
void writeStateReal |
( |
const char * |
filename, |
|
|
const NameSet * |
rowNames = 0 , |
|
|
const NameSet * |
colNames = 0 , |
|
|
const bool |
cpxFormat = false |
|
) |
| const |
Definition at line 1432 of file soplex.h.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeElementReal(), SoPlex::_changeLowerReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_factorizeColumnRational(), SoPlex::_isConsistent(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_reconstructSolutionRational(), SoPlex::_removeColReal(), SoPlex::_removeColsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_restoreBasis(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_storeBasis(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::basisColStatus(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::operator=(), SoPlex::readBasisFile(), SoPlex::setBasis(), and SoPlex::writeBasisFile().
Definition at line 1431 of file soplex.h.
Referenced by SoPlex::_addColReal(), SoPlex::_addRowReal(), SoPlex::_addRowsReal(), SoPlex::_changeElementReal(), SoPlex::_changeLhsReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_factorizeColumnRational(), SoPlex::_isConsistent(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_reconstructSolutionRational(), SoPlex::_removeRowReal(), SoPlex::_removeRowsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_restoreBasis(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_storeBasis(), SoPlex::_transformEquality(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformUnbounded(), SoPlex::basisRowStatus(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::operator=(), SoPlex::readBasisFile(), SoPlex::setBasis(), and SoPlex::writeBasisFile().
Definition at line 1419 of file soplex.h.
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::addColRational(), SoPlex::addColReal(), SoPlex::addColsRational(), SoPlex::addColsReal(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), SoPlex::changeColReal(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::getRedCostViolationRational(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), and SoPlex::removeColsReal().
Definition at line 1319 of file soplex.h.
Referenced by SoPlex::_isConsistent(), SoPlex::_parseSettingsLine(), SoPlex::boolParam(), SoPlex::intParam(), SoPlex::operator=(), SoPlex::parseSettingsString(), SoPlex::printUserSettings(), SoPlex::realParam(), SoPlex::saveSettingsFile(), SoPlex::setBoolParam(), SoPlex::setIntParam(), SoPlex::setRealParam(), SoPlex::setSettings(), SoPlex::settings(), SoPlex::solve(), SoPlex::SoPlex(), and SoPlex::~SoPlex().
Definition at line 1438 of file soplex.h.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_addRowReal(), SoPlex::_addRowsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeElementReal(), SoPlex::_changeLhsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_factorizeColumnRational(), SoPlex::_isConsistent(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_removeColReal(), SoPlex::_removeColsReal(), SoPlex::_removeRowReal(), SoPlex::_removeRowsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_restoreBasis(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_solveReal(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_storeBasis(), SoPlex::_syncLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::clearBasis(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::getDualViolationRational(), SoPlex::getRedCostViolationRational(), SoPlex::hasBasis(), SoPlex::operator=(), SoPlex::readBasisFile(), SoPlex::setBasis(), and SoPlex::writeBasisFile().
Definition at line 1359 of file soplex.h.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_addRowReal(), SoPlex::_addRowsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeElementReal(), SoPlex::_changeLhsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_isConsistent(), SoPlex::_preprocessAndSolveReal(), SoPlex::_removeColReal(), SoPlex::_removeColsReal(), SoPlex::_removeRowReal(), SoPlex::_removeRowsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRational(), SoPlex::_storeSolutionReal(), SoPlex::_syncLPReal(), SoPlex::basisColStatus(), SoPlex::basisRowStatus(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SoPlex::getEstimatedCondition(), SoPlex::getExactCondition(), SoPlex::operator=(), SoPlex::readBasisFile(), SoPlex::setBasis(), SoPlex::SoPlex(), and SoPlex::writeBasisFile().
Definition at line 1374 of file soplex.h.
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_ensureRationalLP(), SoPlex::_factorizeColumnRational(), SoPlex::_isConsistent(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_project(), SoPlex::_readFileRational(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_reconstructSolutionRational(), SoPlex::_syncLPRational(), SoPlex::_syncLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::addColRational(), SoPlex::addColReal(), SoPlex::addColsRational(), SoPlex::addColsReal(), SoPlex::addRowRational(), SoPlex::addRowReal(), SoPlex::addRowsRational(), SoPlex::addRowsReal(), SoPlex::areLPsInSync(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), SoPlex::changeColRational(), SoPlex::changeColReal(), SoPlex::changeElementRational(), SoPlex::changeElementReal(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeObjRational(), SoPlex::changeObjReal(), SoPlex::changeRangeRational(), SoPlex::changeRangeReal(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SoPlex::changeRowRational(), SoPlex::changeRowReal(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::colVectorRational(), SoPlex::getColRational(), SoPlex::getColsRational(), SoPlex::getObjRational(), SoPlex::getRowRational(), SoPlex::getRowsRational(), SoPlex::getRowViolationRational(), SoPlex::lhsRational(), SoPlex::lowerRational(), SoPlex::maxAbsNonzeroRational(), SoPlex::maxObjRational(), SoPlex::minAbsNonzeroRational(), SoPlex::numColsRational(), SoPlex::numNonzerosRational(), SoPlex::numRowsRational(), SoPlex::objRational(), SoPlex::operator=(), SoPlex::printStatistics(), SoPlex::removeColRational(), SoPlex::removeColReal(), SoPlex::removeColsRational(), SoPlex::removeColsReal(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), SoPlex::removeRowsReal(), SoPlex::rhsRational(), SoPlex::rowTypeRational(), SoPlex::rowVectorRational(), SoPlex::setIntParam(), SoPlex::upperRational(), SoPlex::writeFileRational(), and SoPlex::~SoPlex().
Definition at line 1322 of file soplex.h.
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_rangeTypeRational(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::areLPsInSync(), SoPlex::objValueRational(), and SoPlex::setRealParam().
Definition at line 1321 of file soplex.h.
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_rangeTypeRational(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::areLPsInSync(), SoPlex::objValueRational(), and SoPlex::setRealParam().
Definition at line 1354 of file soplex.h.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_addRowReal(), SoPlex::_addRowsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeElementReal(), SoPlex::_changeLhsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_isConsistent(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_readFileReal(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_removeColReal(), SoPlex::_removeColsReal(), SoPlex::_removeRowReal(), SoPlex::_removeRowsReal(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_storeLPReal(), SoPlex::_syncLPRational(), SoPlex::_syncLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::addColReal(), SoPlex::addColsReal(), SoPlex::addRowReal(), SoPlex::addRowsReal(), SoPlex::areLPsInSync(), SoPlex::changeBoundsReal(), SoPlex::changeColReal(), SoPlex::changeElementReal(), SoPlex::changeLhsReal(), SoPlex::changeLowerReal(), SoPlex::changeObjRational(), SoPlex::changeObjReal(), SoPlex::changeRangeReal(), SoPlex::changeRhsReal(), SoPlex::changeRowReal(), SoPlex::changeUpperReal(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::colVectorReal(), SoPlex::getColReal(), SoPlex::getColsReal(), SoPlex::getObjReal(), SoPlex::getRowReal(), SoPlex::getRowsReal(), SoPlex::getRowViolationReal(), SoPlex::lhsReal(), SoPlex::lowerReal(), SoPlex::maxAbsNonzeroReal(), SoPlex::maxObjReal(), SoPlex::minAbsNonzeroReal(), SoPlex::numColsReal(), SoPlex::numNonzerosReal(), SoPlex::numRowsReal(), SoPlex::objReal(), SoPlex::operator=(), SoPlex::printStatistics(), SoPlex::readBasisFile(), SoPlex::removeColReal(), SoPlex::removeColsReal(), SoPlex::removeRowReal(), SoPlex::removeRowsReal(), SoPlex::rhsReal(), SoPlex::rowTypeReal(), SoPlex::rowVectorReal(), SoPlex::setIntParam(), SoPlex::SoPlex(), SoPlex::upperReal(), SoPlex::writeFileReal(), and SoPlex::~SoPlex().
Definition at line 1420 of file soplex.h.
Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_performOptIRStable(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::addRowRational(), SoPlex::addRowReal(), SoPlex::addRowsRational(), SoPlex::addRowsReal(), SoPlex::changeColRational(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeRangeRational(), SoPlex::changeRangeReal(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SoPlex::changeRowRational(), SoPlex::changeRowReal(), SoPlex::clearLPRational(), SoPlex::clearLPReal(), SoPlex::getDualViolationRational(), SoPlex::readBasisFile(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SoPlex::removeRowsRational(), SoPlex::removeRowsReal(), and SoPlex::writeBasisFile().
Definition at line 1435 of file soplex.h.
Referenced by SoPlex::_invalidateSolution(), SoPlex::_performFeasIRStable(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_syncRationalSolution(), SoPlex::_syncRealSolution(), SoPlex::dlcmSizeDualRational(), SoPlex::dlcmSizePrimalRational(), SoPlex::dmaxSizeDualRational(), SoPlex::dmaxSizePrimalRational(), SoPlex::getBoundViolationRational(), SoPlex::getDualFarkasRational(), SoPlex::getDualRational(), SoPlex::getDualViolationRational(), SoPlex::getPrimalRational(), SoPlex::getPrimalRayRational(), SoPlex::getRedCostRational(), SoPlex::getRedCostViolationRational(), SoPlex::getRowViolationRational(), SoPlex::getSlacksRational(), SoPlex::hasDual(), SoPlex::hasDualFarkas(), SoPlex::hasPrimal(), SoPlex::hasPrimalRay(), SoPlex::objValueRational(), SoPlex::operator=(), SoPlex::totalSizeDualRational(), and SoPlex::totalSizePrimalRational().
Definition at line 1434 of file soplex.h.
Referenced by SoPlex::_invalidateSolution(), SoPlex::_storeSolutionReal(), SoPlex::_syncRationalSolution(), SoPlex::_syncRealSolution(), SoPlex::getBoundViolationReal(), SoPlex::getDualFarkasReal(), SoPlex::getDualReal(), SoPlex::getDualViolationReal(), SoPlex::getPrimalRayReal(), SoPlex::getPrimalReal(), SoPlex::getRedCostReal(), SoPlex::getRedCostViolationReal(), SoPlex::getRowViolationReal(), SoPlex::getSlacksReal(), SoPlex::hasDual(), SoPlex::hasDualFarkas(), SoPlex::hasPrimal(), SoPlex::hasPrimalRay(), SoPlex::objValueReal(), and SoPlex::operator=().
Definition at line 1333 of file soplex.h.
Referenced by SoPlex::_addColReal(), SoPlex::_addColsReal(), SoPlex::_addRowReal(), SoPlex::_addRowsReal(), SoPlex::_changeBoundsReal(), SoPlex::_changeColReal(), SoPlex::_changeElementReal(), SoPlex::_changeLhsReal(), SoPlex::_changeLowerReal(), SoPlex::_changeRangeReal(), SoPlex::_changeRhsReal(), SoPlex::_changeRowReal(), SoPlex::_changeUpperReal(), SoPlex::_ensureRealLPLoaded(), SoPlex::_evaluateSolutionReal(), SoPlex::_isConsistent(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_removeColReal(), SoPlex::_removeColsReal(), SoPlex::_removeRowReal(), SoPlex::_removeRowsReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_restoreLPReal(), SoPlex::_solveRational(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_solveRealStable(), SoPlex::_storeSolutionReal(), SoPlex::_syncLPReal(), SoPlex::basisColStatus(), SoPlex::basisRowStatus(), SoPlex::clearBasis(), SoPlex::getBasis(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SoPlex::getDualNorms(), SoPlex::getEstimatedCondition(), SoPlex::getExactCondition(), SoPlex::getNdualNorms(), SoPlex::getPricerName(), SoPlex::getRatiotesterName(), SoPlex::operator=(), SoPlex::readBasisFile(), SoPlex::setBasis(), SoPlex::setDualNorms(), SoPlex::setIntParam(), SoPlex::solve(), SoPlex::SoPlex(), SoPlex::writeBasisFile(), and SoPlex::~SoPlex().
statistics since last call to solveReal() or solveRational()
Definition at line 1308 of file soplex.h.
Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_isConsistent(), SoPlex::_isSolveStopped(), SoPlex::_lift(), SoPlex::_performFeasIRStable(), SoPlex::_performOptIRStable(), SoPlex::_performUnboundedIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_solveRational(), SoPlex::_solveReal(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_syncLPRational(), SoPlex::_syncLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::loadSettingsFile(), SoPlex::numIterations(), SoPlex::operator=(), SoPlex::printShortStatistics(), SoPlex::printSolvingStatistics(), SoPlex::readBasisFile(), SoPlex::solve(), SoPlex::solveTime(), SoPlex::SoPlex(), SoPlex::statisticString(), and SoPlex::~SoPlex().
Definition at line 1428 of file soplex.h.
Referenced by SoPlex::_evaluateSolutionReal(), SoPlex::_invalidateSolution(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::clearBasis(), SoPlex::operator=(), SoPlex::printShortStatistics(), SoPlex::printStatistics(), and SoPlex::status().
Definition at line 1215 of file soplex.h.
Referenced by SoPlex::_computeInfeasBox(), SoPlex::_ensureRationalLP(), SoPlex::_evaluateSolutionReal(), SoPlex::_factorizeColumnRational(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_project(), SoPlex::_reconstructSolutionRational(), SoPlex::_solveRational(), SoPlex::_solveRealForRational(), SoPlex::_solveRealStable(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), checkSolution(), checkSolutionRational(), checkSolutionReal(), SoPlex::loadSettingsFile(), main(), SoPlex::operator=(), SoPlex::printUserSettings(), SoPlex::printVersion(), SoPlex::setIntParam(), SoPlex::solve(), and SoPlex::SoPlex().
|