Saving LPs in a form suitable for SoPlex.Class SPxLPBase provides the data structures required for saving a linear program in the form
\[ \begin{array}{rl} \hbox{max} & c^T x \\ \hbox{s.t.} & l_r \le Ax \le u_r \\ & l_c \le x \le u_c \end{array} \]
suitable for solving with SoPlex. This includes: More...
#include <spxlpbase.h>
Public Types | |
Types | |
enum | SPxSense { MAXIMIZE = 1, MINIMIZE = -1 } |
Optimization sense. More... | |
Public Member Functions | |
void | setOutstream (SPxOut &newOutstream) |
void | unscaleLP () |
unscales the lp and clears basis More... | |
template<> | |
void | unscaleLP () |
template<> | |
void | computePrimalActivity (const VectorBase< Real > &primal, VectorBase< Real > &activity, const bool unscaled) const |
template<> | |
void | computeDualActivity (const VectorBase< Real > &dual, VectorBase< Real > &activity, const bool unscaled) const |
template<> | |
Real | maxAbsNzo (bool unscaled) const |
template<> | |
Real | minAbsNzo (bool unscaled) const |
template<> | |
void | getObjUnscaled (VectorBase< Real > &pobj) const |
template<> | |
void | getRowVectorUnscaled (int i, DSVectorBase< Real > &vec) const |
template<> | |
void | getRhsUnscaled (VectorBase< Real > &vec) const |
template<> | |
Real | rhsUnscaled (int i) const |
template<> | |
Real | rhsUnscaled (const SPxRowId &id) const |
template<> | |
void | getLhsUnscaled (VectorBase< Real > &vec) const |
template<> | |
Real | lhsUnscaled (int i) const |
template<> | |
Real | lhsUnscaled (const SPxRowId &id) const |
template<> | |
void | getColVectorUnscaled (int i, DSVectorBase< Real > &vec) const |
template<> | |
void | getColVectorUnscaled (const SPxColId &id, DSVectorBase< Real > &vec) const |
template<> | |
Real | objUnscaled (int i) const |
template<> | |
Real | objUnscaled (const SPxColId &id) const |
template<> | |
void | maxObjUnscaled (VectorBase< Real > &vec) const |
template<> | |
Real | maxObjUnscaled (int i) const |
template<> | |
Real | maxObjUnscaled (const SPxColId &id) const |
template<> | |
void | getUpperUnscaled (DVector &vec) const |
template<> | |
Real | upperUnscaled (int i) const |
template<> | |
Real | upperUnscaled (const SPxColId &id) const |
template<> | |
void | getLowerUnscaled (DVector &vec) const |
template<> | |
Real | lowerUnscaled (int i) const |
template<> | |
Real | lowerUnscaled (const SPxColId &id) const |
template<> | |
void | changeMaxObj (const VectorBase< Real > &newObj, bool scale) |
template<> | |
void | changeLower (const VectorBase< Real > &newLower, bool scale) |
template<> | |
void | changeUpper (const VectorBase< Real > &newUpper, bool scale) |
template<> | |
void | changeLhs (const VectorBase< Real > &newLhs, bool scale) |
template<> | |
void | changeRhs (const VectorBase< Real > &newRhs, bool scale) |
template<> | |
bool | readLPF (std::istream &p_input, NameSet *p_rnames, NameSet *p_cnames, DIdxSet *p_intvars) |
template<> | |
bool | readMPS (std::istream &p_input, NameSet *p_rnames, NameSet *p_cnames, DIdxSet *p_intvars) |
template<> | |
void | writeLPF (std::ostream &p_output, const NameSet *p_rnames, const NameSet *p_cnames, const DIdxSet *p_intvars) const |
template<> | |
void | writeMPS (std::ostream &p_output, const NameSet *p_rnames, const NameSet *p_cnames, const DIdxSet *p_intvars) const |
template<> | |
void | buildDualProblem (SPxLPBase< Real > &dualLP, SPxRowId primalRowIds[], SPxColId primalColIds[], SPxRowId dualRowIds[], SPxColId dualColIds[], int *nprimalrows, int *nprimalcols, int *ndualrows, int *ndualcols) |
template<> | |
void | computePrimalActivity (const VectorBase< Rational > &primal, VectorBase< Rational > &activity, const bool unscaled) const |
template<> | |
void | computeDualActivity (const VectorBase< Rational > &dual, VectorBase< Rational > &activity, const bool unscaled) const |
template<> | |
Rational | maxAbsNzo (bool) const |
template<> | |
Rational | minAbsNzo (bool) const |
template<> | |
bool | readLPF (std::istream &p_input, NameSet *p_rnames, NameSet *p_cnames, DIdxSet *p_intvars) |
Read LP in "CPLEX LP File Format". More... | |
template<> | |
bool | readMPS (std::istream &p_input, NameSet *p_rnames, NameSet *p_cnames, DIdxSet *p_intvars) |
template<> | |
void | writeLPF (std::ostream &p_output, const NameSet *p_rnames, const NameSet *p_cnames, const DIdxSet *p_intvars) const |
Write LP in LP Format. More... | |
template<> | |
void | writeMPS (std::ostream &p_output, const NameSet *p_rnames, const NameSet *p_cnames, const DIdxSet *p_intvars) const |
Write LP in MPS format. More... | |
template<> | |
void | buildDualProblem (SPxLPBase< Rational > &dualLP, SPxRowId primalRowIds[], SPxColId primalColIds[], SPxRowId dualRowIds[], SPxColId dualColIds[], int *nprimalrows, int *nprimalcols, int *ndualrows, int *ndualcols) |
Building the dual problem from a given LP. More... | |
template<> | |
void | unscaleLP () |
template<> | |
void | computePrimalActivity (const VectorBase< Real > &primal, VectorBase< Real > &activity, const bool unscaled) const |
template<> | |
void | computeDualActivity (const VectorBase< Real > &dual, VectorBase< Real > &activity, const bool unscaled) const |
template<> | |
Real | maxAbsNzo (bool unscaled) const |
template<> | |
Real | minAbsNzo (bool unscaled) const |
template<> | |
void | getObjUnscaled (VectorBase< Real > &pobj) const |
Gets unscaled objective vector. More... | |
template<> | |
void | getRowVectorUnscaled (int i, DSVectorBase< Real > &vec) const |
Gets unscaled row vector of row i . More... | |
template<> | |
void | getRhsUnscaled (VectorBase< Real > &vec) const |
Gets unscaled right hand side vector. More... | |
template<> | |
Real | rhsUnscaled (int i) const |
Returns unscaled right hand side of row number i . More... | |
template<> | |
Real | rhsUnscaled (const SPxRowId &id) const |
Returns unscaled right hand side of row with identifier id . More... | |
template<> | |
void | getLhsUnscaled (VectorBase< Real > &vec) const |
Returns unscaled left hand side vector. More... | |
template<> | |
Real | lhsUnscaled (int i) const |
Returns unscaled left hand side of row number i . More... | |
template<> | |
Real | lhsUnscaled (const SPxRowId &id) const |
Returns left hand side of row with identifier id . More... | |
template<> | |
void | getColVectorUnscaled (int i, DSVectorBase< Real > &vec) const |
Gets column vector of column i . More... | |
template<> | |
void | getColVectorUnscaled (const SPxColId &id, DSVectorBase< Real > &vec) const |
Gets column vector of column with identifier id . More... | |
template<> | |
Real | objUnscaled (int i) const |
Returns unscaled objective value of column i . More... | |
template<> | |
Real | objUnscaled (const SPxColId &id) const |
Returns unscaled objective value of column with identifier id . More... | |
template<> | |
void | maxObjUnscaled (VectorBase< Real > &vec) const |
Returns unscaled objective vector for maximization problem. More... | |
template<> | |
Real | maxObjUnscaled (int i) const |
Returns unscaled objective value of column i for maximization problem. More... | |
template<> | |
Real | maxObjUnscaled (const SPxColId &id) const |
Returns unscaled objective value of column with identifier id for maximization problem. More... | |
template<> | |
void | getUpperUnscaled (DVector &vec) const |
Returns unscaled upper bound vector. More... | |
template<> | |
Real | upperUnscaled (int i) const |
Returns unscaled upper bound of column i . More... | |
template<> | |
Real | upperUnscaled (const SPxColId &id) const |
Returns unscaled upper bound of column with identifier id . More... | |
template<> | |
void | getLowerUnscaled (DVector &vec) const |
Returns unscaled lower bound vector. More... | |
template<> | |
Real | lowerUnscaled (int i) const |
Returns unscaled lower bound of column i . More... | |
template<> | |
Real | lowerUnscaled (const SPxColId &id) const |
Returns unscaled lower bound of column with identifier id . More... | |
template<> | |
void | changeMaxObj (const VectorBase< Real > &newObj, bool scale) |
Changes objective vector to newObj . More... | |
template<> | |
void | changeLower (const VectorBase< Real > &newLower, bool scale) |
Changes vector of lower bounds to newLower . More... | |
template<> | |
void | changeUpper (const VectorBase< Real > &newUpper, bool scale) |
Changes vector of upper bounds to newUpper . More... | |
template<> | |
void | changeLhs (const VectorBase< Real > &newLhs, bool scale) |
Changes left hand side vector for constraints to newLhs . More... | |
template<> | |
void | changeRhs (const VectorBase< Real > &newRhs, bool scale) |
Changes right hand side vector for constraints to newRhs . More... | |
template<> | |
void | changeElement (int i, int j, const Real &val, bool scale) |
Changes LP element (i , j ) to val . scale determines whether the new data should be scaled. More... | |
template<> | |
bool | readLPF (std::istream &p_input, NameSet *p_rnames, NameSet *p_cnames, DIdxSet *p_intvars) |
Read LP in "CPLEX LP File Format". More... | |
template<> | |
bool | readMPS (std::istream &p_input, NameSet *p_rnames, NameSet *p_cnames, DIdxSet *p_intvars) |
template<> | |
void | writeLPF (std::ostream &p_output, const NameSet *p_rnames, const NameSet *p_cnames, const DIdxSet *p_intvars) const |
Write LP in LP Format. More... | |
template<> | |
void | writeMPS (std::ostream &p_output, const NameSet *p_rnames, const NameSet *p_cnames, const DIdxSet *p_intvars) const |
Write LP in MPS format. More... | |
template<> | |
void | buildDualProblem (SPxLPBase< Real > &dualLP, SPxRowId primalRowIds[], SPxColId primalColIds[], SPxRowId dualRowIds[], SPxColId dualColIds[], int *nprimalrows, int *nprimalcols, int *ndualrows, int *ndualcols) |
Building the dual problem from a given LP. More... | |
Inquiry | |
bool | isScaled () const |
Returns true if and only if the LP is scaled. More... | |
void | setScalingInfo (bool scaled) |
set whether the LP is scaled or not More... | |
int | nRows () const |
Returns number of rows in LP. More... | |
int | nCols () const |
Returns number of columns in LP. More... | |
int | nNzos () const |
Returns number of nonzeros in LP. More... | |
virtual R | minAbsNzo (bool unscaled=true) const |
Absolute smallest non-zero element in (possibly scaled) LP. More... | |
virtual R | maxAbsNzo (bool unscaled=true) const |
Absolute biggest non-zero element in (in rational case possibly scaled) LP. More... | |
void | getRow (int i, LPRowBase< R > &row) const |
Gets i 'th row. More... | |
void | getRow (const SPxRowId &id, LPRowBase< R > &row) const |
Gets row with identifier id . More... | |
void | getRows (int start, int end, LPRowSetBase< R > &set) const |
Gets rows start , ... end . More... | |
const SVectorBase< R > & | rowVector (int i) const |
Gets row vector of row i . More... | |
const SVectorBase< R > & | rowVector (const SPxRowId &id) const |
Gets row vector of row with identifier id . More... | |
void | getRowVectorUnscaled (int i, DSVectorBase< Real > &vec) const |
Gets unscaled row vector of row i . More... | |
const VectorBase< R > & | rhs () const |
Returns right hand side vector. More... | |
const R & | rhs (int i) const |
Returns right hand side of row number i . More... | |
const R & | rhs (const SPxRowId &id) const |
Returns right hand side of row with identifier id . More... | |
void | getRhs (VectorBase< R > &vec) const |
Gets (internal and possibly scaled) right hand side vector. More... | |
void | getRhsUnscaled (VectorBase< Real > &vec) const |
Gets unscaled right hand side vector. More... | |
R | rhsUnscaled (int i) const |
Returns unscaled right hand side of row number i . More... | |
R | rhsUnscaled (const SPxRowId &id) const |
Returns unscaled right hand side of row with identifier id . More... | |
const VectorBase< R > & | lhs () const |
Returns left hand side vector. More... | |
const R & | lhs (int i) const |
Returns left hand side of row number i . More... | |
const R & | lhs (const SPxRowId &id) const |
Returns left hand side of row with identifier id . More... | |
void | getRowObj (VectorBase< R > &prowobj) const |
Gets row objective function vector. More... | |
R | rowObj (int i) const |
R | rowObj (const SPxRowId &id) const |
Returns row objective function value of row with identifier id . More... | |
const VectorBase< R > & | maxRowObj () const |
const R & | maxRowObj (int i) const |
const R & | maxRowObj (const SPxRowId &id) const |
Returns row objective function value of row with identifier id . More... | |
void | getLhsUnscaled (VectorBase< Real > &vec) const |
Returns unscaled left hand side vector. More... | |
R | lhsUnscaled (int i) const |
Returns unscaled left hand side of row number i . More... | |
R | lhsUnscaled (const SPxRowId &id) const |
Returns left hand side of row with identifier id . More... | |
LPRowBase< R >::Type | rowType (int i) const |
Returns the inequality type of the i'th LPRow. More... | |
LPRowBase< R >::Type | rowType (const SPxRowId &id) const |
Returns the inequality type of the row with identifier key . More... | |
void | getCol (int i, LPColBase< R > &col) const |
Gets i 'th column. More... | |
void | getCol (const SPxColId &id, LPColBase< R > &col) const |
Gets column with identifier id . More... | |
void | getCols (int start, int end, LPColSetBase< R > &set) const |
Gets columns start , ..., end . More... | |
const SVectorBase< R > & | colVector (int i) const |
Returns column vector of column i . More... | |
const SVectorBase< R > & | colVector (const SPxColId &id) const |
Returns column vector of column with identifier id . More... | |
void | getColVectorUnscaled (int i, DSVectorBase< Real > &vec) const |
Gets column vector of column i . More... | |
void | getColVectorUnscaled (const SPxColId &id, DSVectorBase< Real > &vec) const |
Gets column vector of column with identifier id . More... | |
void | getObjUnscaled (VectorBase< Real > &pobj) const |
Gets unscaled objective vector. More... | |
void | getObj (VectorBase< R > &pobj) const |
Gets objective vector. More... | |
R | obj (int i) const |
Returns objective value of column i . More... | |
R | obj (const SPxColId &id) const |
Returns objective value of column with identifier id . More... | |
R | objUnscaled (int i) const |
Returns unscaled objective value of column i . More... | |
R | objUnscaled (const SPxColId &id) const |
Returns unscaled objective value of column with identifier id . More... | |
const VectorBase< R > & | maxObj () const |
Returns objective vector for maximization problem. More... | |
const R & | maxObj (int i) const |
Returns objective value of column i for maximization problem. More... | |
const R & | maxObj (const SPxColId &id) const |
Returns objective value of column with identifier id for maximization problem. More... | |
void | maxObjUnscaled (VectorBase< Real > &vec) const |
Returns unscaled objective vector for maximization problem. More... | |
R | maxObjUnscaled (int i) const |
Returns unscaled objective value of column i for maximization problem. More... | |
R | maxObjUnscaled (const SPxColId &id) const |
Returns unscaled objective value of column with identifier id for maximization problem. More... | |
const VectorBase< R > & | upper () const |
Returns upper bound vector. More... | |
const R & | upper (int i) const |
Returns upper bound of column i . More... | |
const R & | upper (const SPxColId &id) const |
Returns upper bound of column with identifier id . More... | |
void | getUpperUnscaled (DVector &vec) const |
Gets unscaled upper bound vector. More... | |
R | upperUnscaled (int i) const |
Returns unscaled upper bound of column i . More... | |
R | upperUnscaled (const SPxColId &id) const |
Returns unscaled upper bound of column with identifier id . More... | |
const VectorBase< R > & | lower () const |
Returns (internal and possibly scaled) lower bound vector. More... | |
const R & | lower (int i) const |
Returns (internal and possibly scaled) lower bound of column i . More... | |
const R & | lower (const SPxColId &id) const |
Returns (internal and possibly scaled) lower bound of column with identifier id . More... | |
void | getLowerUnscaled (DVector &vec) const |
Gets unscaled lower bound vector. More... | |
R | lowerUnscaled (int i) const |
Returns unscaled lower bound of column i . More... | |
R | lowerUnscaled (const SPxColId &id) const |
Returns unscaled lower bound of column with identifier id . More... | |
SPxSense | spxSense () const |
Returns the optimization sense. More... | |
const R & | objOffset () const |
Returns the objective function value offset. More... | |
int | number (const SPxRowId &id) const |
Returns the row number of the row with identifier id . More... | |
int | number (const SPxColId &id) const |
Returns the column number of the column with identifier id . More... | |
int | number (const SPxId &id) const |
Returns the row or column number for identifier id . More... | |
bool | has (const SPxRowId &id) const |
Returns the row number of the row with identifier id . More... | |
bool | has (const SPxColId &id) const |
Returns the column number of the column with identifier id . More... | |
bool | has (const SPxId &id) const |
Returns the row or column number for identifier id . More... | |
SPxRowId | rId (int n) const |
Returns the row identifier for row n . More... | |
SPxColId | cId (int n) const |
Returns the column identifier for column n . More... | |
Extension | |
virtual void | addRow (const LPRowBase< R > &row, bool scale=false) |
virtual void | addRow (const R &lhsValue, const SVectorBase< R > &rowVec, const R &rhsValue, bool scale=false) |
template<class S > | |
void | addRow (const S *lhsValue, const S *rowValues, const int *rowIndices, int rowSize, const S *rhsValue) |
virtual void | addRow (SPxRowId &id, const LPRowBase< R > &row, bool scale=false) |
Adds row to LPRowSetBase. More... | |
virtual void | addRows (const LPRowSetBase< R > &pset, bool scale=false) |
template<class S > | |
void | addRows (const S *lhsValues, const S *rowValues, const int *rowIndices, const int *rowStarts, const int *rowLengths, const int numRows, const int numValues, const S *rhsValues) |
virtual void | addRows (SPxRowId id[], const LPRowSetBase< R > &set, bool scale=false) |
adds all LPRowBases of pset to LPRowSetBase. More... | |
virtual void | addCol (const LPColBase< R > &col, bool scale=false) |
virtual void | addCol (const R &objValue, const R &lowerValue, const SVectorBase< R > &colVec, const R &upperValue, bool scale=false) |
template<class S > | |
void | addCol (const S *objValue, const S *lowerValue, const S *colValues, const int *colIndices, int colSize, const S *upperValue) |
virtual void | addCol (SPxColId &id, const LPColBase< R > &col, bool scale=false) |
Adds col to LPColSetVBase. More... | |
virtual void | addCols (const LPColSetBase< R > &pset, bool scale=false) |
template<class S > | |
void | addCols (const S *objValue, const S *lowerValues, const S *colValues, const int *colIndices, const int *colStarts, const int *colLengths, const int numCols, const int numValues, const S *upperValues) |
virtual void | addCols (SPxColId id[], const LPColSetBase< R > &set, bool scale=false) |
Adds all LPColBases of set to LPColSetBase. More... | |
Shrinking | |
virtual void | removeRow (int i) |
Removes i 'th row. More... | |
virtual void | removeRow (SPxRowId id) |
Removes row with identifier id . More... | |
virtual void | removeRows (int perm[]) |
Removes multiple rows. More... | |
virtual void | removeRows (SPxRowId id[], int n, int perm[]=0) |
virtual void | removeRows (int nums[], int n, int perm[]=0) |
Removes n LPRowBases. More... | |
virtual void | removeRowRange (int start, int end, int perm[]=0) |
Removes rows from start to end (including both). More... | |
virtual void | removeCol (int i) |
Removes i 'th column. More... | |
virtual void | removeCol (SPxColId id) |
Removes column with identifier id . More... | |
virtual void | removeCols (int perm[]) |
Removes multiple columns. More... | |
virtual void | removeCols (SPxColId id[], int n, int perm[]=0) |
virtual void | removeCols (int nums[], int n, int perm[]=0) |
Removes n LPCols. More... | |
virtual void | removeColRange (int start, int end, int perm[]=0) |
Removes columns from start to end (including both). More... | |
virtual void | clear () |
clears the LP. More... | |
IO | |
virtual bool | readLPF (std::istream &in, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) |
Reads LP in LP format from input stream in . More... | |
virtual bool | readMPS (std::istream &in, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) |
Reads an LP in MPS format from input stream in . More... | |
virtual bool | read (std::istream &in, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) |
Reads LP in LP or MPS format from input stream in . More... | |
virtual bool | readFile (const char *filename, NameSet *rowNames=0, NameSet *colNames=0, DIdxSet *intVars=0) |
Reads LP from a file. More... | |
virtual void | writeLPF (std::ostream &out, const NameSet *rowNames, const NameSet *colNames, const DIdxSet *p_intvars=0) const |
virtual void | writeMPS (std::ostream &out, const NameSet *rowNames, const NameSet *colNames, const DIdxSet *p_intvars=0) const |
Writes a file in MPS format to out . More... | |
virtual void | writeFile (const char *filename, const NameSet *rowNames=0, const NameSet *colNames=0, const DIdxSet *p_intvars=0) const |
Write loaded LP to filename . More... | |
void | printProblemStatistics (std::ostream &os) |
Manipulation | |
virtual void | changeObj (const VectorBase< R > &newObj, bool scale=false) |
Changes objective vector to newObj . scale determines whether the new data should be scaled. More... | |
virtual void | changeObj (int i, const R &newVal, bool scale=false) |
changes i 'th objective vector element to newVal . scale determines whether the new data should be scaled More... | |
template<class S > | |
void | changeObj (int i, const S *newVal) |
changes i 'th objective vector element to newVal . More... | |
virtual void | changeObj (SPxColId id, const R &newVal, bool scale=false) |
Changes objective value of column with identifier id to newVal . scale determines whether the new data should be scaled. More... | |
virtual void | changeMaxObj (const VectorBase< R > &newObj, bool scale=false) |
Changes objective vector to newObj . scale determines whether the new data should be scaled. More... | |
virtual void | changeMaxObj (int i, const R &newVal, bool scale=false) |
changes i 'th objective vector element to newVal . scale determines whether the new data should be scaled More... | |
template<class S > | |
void | changeMaxObj (int i, const S *newVal) |
changes i 'th objective vector element to newVal . More... | |
virtual void | changeMaxObj (SPxColId id, const R &newVal, bool scale=false) |
Changes objective value of column with identifier id to newVal . scale determines whether the new data should be scaled. More... | |
virtual void | changeLower (const VectorBase< R > &newLower, bool scale=false) |
Changes vector of lower bounds to newLower . scale determines whether the new data should be scaled. More... | |
virtual void | changeLower (int i, const R &newLower, bool scale=false) |
changes i 'th lower bound to newLower . scale determines whether the new data should be scaled More... | |
template<class S > | |
void | changeLower (int i, const S *newLower) |
changes i 'th lower bound to newLower . More... | |
virtual void | changeLower (SPxColId id, const R &newLower, bool scale=false) |
changes lower bound of column with identifier id to newLower . scale determines whether the new data should be scaled More... | |
virtual void | changeUpper (const VectorBase< R > &newUpper, bool scale=false) |
Changes vector of upper bounds to newUpper . scale determines whether the new data should be scaled. More... | |
virtual void | changeUpper (int i, const R &newUpper, bool scale=false) |
Changes i 'th upper bound to newUpper . scale determines whether the new data should be scaled. More... | |
template<class S > | |
void | changeUpper (int i, const S *newUpper) |
Changes i 'th upper bound to newUpper . More... | |
virtual void | changeUpper (SPxColId id, const R &newUpper, bool scale=false) |
Changes upper bound of column with identifier id to newLower . scale determines whether the new data should be scaled. More... | |
virtual void | changeBounds (const VectorBase< R > &newLower, const VectorBase< R > &newUpper, bool scale=false) |
Changes variable bounds to newLower and newUpper . scale determines whether the new data should be scaled. More... | |
virtual void | changeBounds (int i, const R &newLower, const R &newUpper, bool scale=false) |
Changes bounds of column i to newLower and newUpper . scale determines whether the new data should be scaled. More... | |
template<class S > | |
void | changeBounds (int i, const S *newLower, const S *newUpper) |
Changes bounds of column i to newLower and newUpper . More... | |
virtual void | changeBounds (SPxColId id, const R &newLower, const R &newUpper, bool scale=false) |
Changes bounds of column with identifier id . scale determines whether the new data should be scaled. More... | |
virtual void | changeLhs (const VectorBase< R > &newLhs, bool scale=false) |
Changes left hand side vector for constraints to newLhs . scale determines whether the new data should be scaled. More... | |
virtual void | changeLhs (int i, const R &newLhs, bool scale=false) |
Changes i 'th left hand side value to newLhs . scale determines whether the new data should be scaled. More... | |
template<class S > | |
void | changeLhs (int i, const S *newLhs) |
Changes i 'th left hand side value to newLhs . More... | |
virtual void | changeLhs (SPxRowId id, const R &newLhs, bool scale=false) |
Changes left hand side value for row with identifier id . scale determines whether the new data should be scaled. More... | |
virtual void | changeRhs (const VectorBase< R > &newRhs, bool scale=false) |
Changes right hand side vector for constraints to newRhs . scale determines whether the new data should be scaled. More... | |
virtual void | changeRhs (int i, const R &newRhs, bool scale=false) |
Changes i 'th right hand side value to newRhs . scale determines whether the new data should be scaled. More... | |
virtual void | changeRhs (SPxRowId id, const R &newRhs, bool scale=false) |
Changes right hand side value for row with identifier id . scale determines whether the new data should be scaled. More... | |
virtual void | changeRange (const VectorBase< R > &newLhs, const VectorBase< R > &newRhs, bool scale=false) |
Changes left and right hand side vectors. scale determines whether the new data should be scaled. More... | |
virtual void | changeRange (int i, const R &newLhs, const R &newRhs, bool scale=false) |
Changes left and right hand side of row i . scale determines whether the new data should be scaled. More... | |
template<class S > | |
void | changeRange (int i, const S *newLhs, const S *newRhs) |
Changes left and right hand side of row i . More... | |
virtual void | changeRange (SPxRowId id, const R &newLhs, const R &newRhs, bool scale=false) |
Changes left and right hand side of row with identifier id . scale determines whether the new data should be scaled. More... | |
virtual void | changeRowObj (const VectorBase< R > &newRowObj, bool scale=false) |
Changes row objective function vector to newRowObj . scale determines whether the new data should be scaled. More... | |
virtual void | changeRowObj (int i, const R &newRowObj, bool scale=false) |
Changes i 'th row objective function value to newRowObj . scale determines whether the new data should be scaled. More... | |
virtual void | changeRowObj (SPxRowId id, const R &newRowObj, bool scale=false) |
Changes row objective function value for row with identifier id . scale determines whether the new data should be scaled. More... | |
virtual void | clearRowObjs () |
Clears row objective function values for all rows. More... | |
virtual void | changeRow (int n, const LPRowBase< R > &newRow, bool scale=false) |
Replaces i 'th row of LP with newRow . scale determines whether the new data should be scaled. More... | |
virtual void | changeRow (SPxRowId id, const LPRowBase< R > &newRow, bool scale=false) |
Replaces row with identifier id with newRow . scale determines whether the new data should be scaled. More... | |
virtual void | changeCol (int n, const LPColBase< R > &newCol, bool scale=false) |
Replaces i 'th column of LP with newCol . scale determines whether the new data should be scaled. More... | |
virtual void | changeCol (SPxColId id, const LPColBase< R > &newCol, bool scale=false) |
Replaces column with identifier id with newCol . scale determines whether the new data should be scaled. More... | |
virtual void | changeElement (int i, int j, const R &val, bool scale=false) |
Changes LP element (i , j ) to val . scale determines whether the new data should be scaled. More... | |
template<class S > | |
void | changeElement (int i, int j, const S *val) |
Changes LP element (i , j ) to val . More... | |
virtual void | changeElement (SPxRowId rid, SPxColId cid, const R &val, bool scale=false) |
Changes LP element identified by (rid , cid ) to val . scale determines whether the new data should be scaled. More... | |
virtual void | changeSense (SPxSense sns) |
Changes optimization sense to sns . More... | |
virtual void | changeObjOffset (const R &o) |
virtual void | computePrimalActivity (const VectorBase< R > &primal, VectorBase< R > &activity, const bool unscaled=true) const |
Computes activity of the rows for a given primal vector; activity does not need to be zero. More... | |
virtual void | addPrimalActivity (const SVectorBase< R > &primal, VectorBase< R > &activity) const |
Updates activity of the rows for a given primal vector; activity does not need to be zero. More... | |
virtual void | computeDualActivity (const VectorBase< R > &dual, VectorBase< R > &activity, const bool unscaled=true) const |
Computes "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero. More... | |
virtual void | addDualActivity (const SVectorBase< R > &dual, VectorBase< R > &activity) const |
Updates "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero. More... | |
virtual void | subDualActivity (const VectorBase< R > &dual, VectorBase< R > &activity) const |
Updates "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero. More... | |
Construction of dual problem | |
virtual void | buildDualProblem (SPxLPBase< R > &dualLP, SPxRowId primalRowIds[]=0, SPxColId primalColIds[]=0, SPxRowId dualRowIds[]=0, SPxColId dualColIds[]=0, int *nprimalrows=0, int *nprimalcols=0, int *ndualrows=0, int *ndualcols=0) |
Building the dual problem from a given LP. More... | |
Miscellaneous | |
bool | isConsistent () const |
Consistency check. More... | |
Constructors / Destructors | |
SPxLPBase () | |
Default constructor. More... | |
virtual | ~SPxLPBase () |
Destructor. More... | |
SPxLPBase (const SPxLPBase< R > &old) | |
Copy constructor. More... | |
template<class S > | |
SPxLPBase (const SPxLPBase< S > &old) | |
Copy constructor. More... | |
SPxLPBase< R > & | operator= (const SPxLPBase< R > &old) |
Assignment operator. More... | |
template<class S > | |
SPxLPBase< R > & | operator= (const SPxLPBase< S > &old) |
Assignment operator. More... | |
Public Attributes | |
SPxOut * | spxout |
Protected Member Functions | |
Protected write access | |
R & | rhs_w (int i) |
Returns right hand side of row i . More... | |
R & | lhs_w (int i) |
Returns left hand side of row i . More... | |
R & | maxRowObj_w (int i) |
Returns objective function value of row i . More... | |
R & | maxObj_w (int i) |
Returns objective value of column i for maximization problem. More... | |
R & | upper_w (int i) |
Returns upper bound of column i . More... | |
R & | lower_w (int i) |
Returns lower bound of column i . More... | |
Protected helpers | |
const LPRowSetBase< R > * | lprowset () const |
Returns the LP as an LPRowSetBase. More... | |
const LPColSetBase< R > * | lpcolset () const |
Returns the LP as an LPColSetBase. More... | |
virtual void | doRemoveRow (int j) |
Internal helper method. More... | |
virtual void | doRemoveRows (int perm[]) |
Internal helper method. More... | |
virtual void | doRemoveCol (int j) |
Internal helper method. More... | |
virtual void | doRemoveCols (int perm[]) |
Internal helper method. More... | |
virtual void | addedRows (int newrows) |
Called after the last n rows have just been added. More... | |
virtual void | addedCols (int newcols) |
Called after the last n columns have just been added. More... | |
void | added2Set (SVSetBase< R > &set, const SVSetBase< R > &addset, int n) |
![]() | |
const SVSetBase< R > * | rowSet () const |
Returns the complete SVSet. More... | |
int | num () const |
Returns the number of LPRowBases in LPRowSetBase. More... | |
int | max () const |
Returns the maximum number of LPRowBases that fit. More... | |
const VectorBase< R > & | lhs () const |
Returns the vector of lhs values. More... | |
VectorBase< R > & | lhs_w () |
Returns the vector of lhs values. More... | |
const R & | lhs (int i) const |
Returns the lhs of the i 'th LPRowBase. More... | |
R & | lhs_w (int i) |
Returns the lhs of the i 'th LPRowBase. More... | |
const R & | lhs (const DataKey &k) const |
Returns the lhs of the LPRowBase with DataKey k in LPRowSetBase. More... | |
R & | lhs_w (const DataKey &k) |
Returns the lhs of the LPRowBase with DataKey k in LPRowSetBase. More... | |
const VectorBase< R > & | rhs () const |
Returns the vector of rhs values. More... | |
VectorBase< R > & | rhs_w () |
Returns the vector of rhs values (writeable). More... | |
const R & | rhs (int i) const |
Returns the rhs of the i 'th LPRowBase. More... | |
R & | rhs_w (int i) |
Returns the rhs of the i 'th LPRowBase (writeable). More... | |
const R & | rhs (const DataKey &k) const |
Returns the rhs of the LPRowBase with DataKey k in LPRowSetBase. More... | |
R & | rhs_w (const DataKey &k) |
Returns the rhs of the LPRowBase with DataKey k in LPRowSetBase (writeable). More... | |
const VectorBase< R > & | obj () const |
Returns the vector of objective coefficients. More... | |
VectorBase< R > & | obj_w () |
Returns the vector of objective coefficients (writeable). More... | |
const R & | obj (int i) const |
Returns the objective coefficient of the i 'th LPRowBase. More... | |
R & | obj_w (int i) |
Returns the objective coefficient of the i 'th LPRowBase (writeable). More... | |
const R & | obj (const DataKey &k) const |
Returns the objective coefficient of the LPRowBase with DataKey k in LPRowSetBase. More... | |
R & | obj_w (const DataKey &k) |
Returns the objective coefficient of the LPRowBase with DataKey k in LPRowSetBase (writeable). More... | |
SVectorBase< R > & | rowVector_w (int i) |
Returns a writable rowVector of the i 'th LPRowBase. More... | |
const SVectorBase< R > & | rowVector (int i) const |
Returns the rowVector of the i 'th LPRowBase. More... | |
SVectorBase< R > & | rowVector_w (const DataKey &k) |
Returns a writable rowVector of the LPRowBase with DataKey k . More... | |
const SVectorBase< R > & | rowVector (const DataKey &k) const |
Returns the rowVector of the LPRowBase with DataKey k . More... | |
LPRowBase< R >::Type | type (int i) const |
Returns the inequalitiy type of the i 'th LPRowBase. More... | |
LPRowBase< R >::Type | type (const DataKey &k) const |
Returns the inequality type of the LPRowBase with DataKey k . More... | |
void | setType (int i, typename LPRowBase< R >::Type t) |
Changes the inequality type of row i to type . More... | |
const R & | value (int i) const |
Returns the value of the i'th LPRowBase. More... | |
const R & | value (const DataKey &k) const |
Returns the value of the LPRowBase with DataKey k . More... | |
DataKey | key (int i) const |
Returns the DataKey of the i 'th LPRowBase in LPRowSetBase. More... | |
int | number (const DataKey &k) const |
Returns the number of the LPRowBase with DataKey k in LPRowSetBase. More... | |
bool | has (const DataKey &k) const |
does DataKey k belong to LPRowSetBase ? More... | |
void | add (const LPRowBase< R > &row) |
void | add (DataKey &pkey, const LPRowBase< R > &prow) |
Adds row to LPRowSetBase. More... | |
void | add (const R &plhs, const SVectorBase< R > &prowVector, const R &prhs, const R &pobj=0, const int &pscaleExp=0) |
Adds LPRowBase consisting of left hand side lhs , row vector rowVector , and right hand side rhs to LPRowSetBase. More... | |
template<class S > | |
void | add (const S *lhsValue, const S *rowValues, const int *rowIndices, int rowSize, const S *rhsValue, const S *objValue=0) |
Adds LPRowBase consisting of left hand side lhs , row vector rowVector , and right hand side rhs to LPRowSetBase. More... | |
template<class S > | |
void | add (DataKey &newkey, const S *lhsValue, const S *rowValues, const int *rowIndices, int rowSize, const S *rhsValue, const S *objValue=0) |
Adds LPRowBase consisting of left hand side lhs , row vector rowVector , and right hand side rhs to LPRowSetBase, with DataKey key . More... | |
void | add (DataKey &newkey, const R &newlhs, const SVectorBase< R > &newrowVector, const R &newrhs, const R &newobj=0, const int &newscaleExp=0) |
Adds LPRowBase consisting of left hand side lhs , row vector rowVector , and right hand side rhs to LPRowSetBase, with DataKey key . More... | |
void | add (const LPRowSetBase< R > &newset) |
void | add (DataKey keys[], const LPRowSetBase< R > &set) |
Adds all LPRowBases of set to LPRowSetBase. More... | |
void | xtend (int n, int newmax) |
Extends row n to fit newmax nonzeros. More... | |
void | xtend (const DataKey &pkey, int pnewmax) |
Extends row with DataKey key to fit newmax nonzeros. More... | |
void | add2 (const DataKey &k, int n, const int idx[], const R val[]) |
Adds n nonzero (idx , val )-pairs to rowVector with DataKey k . More... | |
void | add2 (int i, int n, const int idx[], const R val[]) |
Adds n nonzero (idx , val )-pairs to i 'th rowVector. More... | |
template<class S > | |
void | add2 (int i, int n, const int idx[], const S val[]) |
Adds n nonzero (idx , val )-pairs to i 'th rowVector. More... | |
SVectorBase< R > & | create (int pnonzeros=0, const R &plhs=0, const R &prhs=1, const R &pobj=0, const int &pscaleExp=0) |
Creates new LPRowBase with specified parameters and returns a reference to its row vector. More... | |
SVectorBase< R > & | create (DataKey &newkey, int nonzeros=0, const R &newlhs=0, const R &newrhs=1, const R &newobj=0, const int &newscaleExp=0) |
Creates new LPRowBase with specified parameters and returns a reference to its row vector. More... | |
void | remove (int i) |
Removes i 'th LPRowBase. More... | |
void | remove (const DataKey &k) |
Removes LPRowBase with DataKey k . More... | |
void | remove (int perm[]) |
Removes multiple LPRowBases. More... | |
void | remove (const int nums[], int n) |
Removes n LPRowBases with row numbers given by nums . More... | |
void | remove (const int nums[], int n, int *perm) |
Removes n LPRowBases with row numbers given by nums , Stores permutation of row indices in perm . More... | |
void | clear () |
Removes all LPRowBases. More... | |
void | reMax (int newmax=0) |
Reallocates memory to be able to store newmax LPRowBases. More... | |
int | memSize () const |
Returns number of used nonzero entries. More... | |
int | memMax () const |
Returns length of nonzero memory. More... | |
void | memRemax (int newmax) |
Reallocates memory to be able to store newmax nonzeros. More... | |
void | memPack () |
Garbage collection in nonzero memory. More... | |
bool | isConsistent () const |
Checks consistency. More... | |
LPRowSetBase (int pmax=-1, int pmemmax=-1) | |
Default constructor. More... | |
LPRowSetBase< R > & | operator= (const LPRowSetBase< R > &rs) |
Assignment operator. More... | |
template<class S > | |
LPRowSetBase< R > & | operator= (const LPRowSetBase< S > &rs) |
Assignment operator. More... | |
LPRowSetBase (const LPRowSetBase< R > &rs) | |
Copy constructor. More... | |
template<class S > | |
LPRowSetBase (const LPRowSetBase< S > &rs) | |
Copy constructor. More... | |
virtual | ~LPRowSetBase () |
Destructor. More... | |
![]() | |
void | add (const SVectorBase< R > &svec) |
Adds svec to the set. More... | |
void | add (DataKey &nkey, const SVectorBase< R > &svec) |
Adds svec to SVSetBase. More... | |
template<class S > | |
void | add (DataKey &nkey, const S *rowValues, const int *rowIndices, int rowSize) |
Adds svec to SVSetBase. More... | |
void | add (const SVectorBase< R > svec[], int n) |
Adds all n SVectorBases in the array svec to the set. More... | |
void | add (DataKey nkey[], const SVectorBase< R > svec[], int n) |
Adds n SVectorBases to SVSetBase. More... | |
template<class S > | |
void | add (const SVSetBase< S > &pset) |
Adds all SVectorBases in pset to SVSetBase. More... | |
template<class S > | |
void | add (DataKey nkey[], const SVSetBase< S > &pset) |
Adds all SVectorBases of pset to SVSetBase. More... | |
SVectorBase< R > * | create (int idxmax=0) |
Creates new SVectorBase in set. More... | |
SVectorBase< R > * | create (DataKey &nkey, int idxmax=-1) |
Creates new SVectorBase in set. More... | |
void | xtend (SVectorBase< R > &svec, int newmax) |
Extends svec to fit newmax nonzeros. More... | |
void | add2 (SVectorBase< R > &svec, int idx, R val) |
Adds nonzero (idx , val ) to svec of this SVSetBase. More... | |
void | add2 (SVectorBase< R > &svec, int n, const int idx[], const R val[]) |
Adds n nonzeros to svec of this SVSetBase. More... | |
template<class S > | |
void | add2 (SVectorBase< R > &svec, int n, const int idx[], const S val[]) |
Adds n nonzeros to svec of this SVSetBase. More... | |
void | remove (const DataKey &removekey) |
Removes the vector with key removekey from the set. More... | |
void | remove (int removenum) |
Removes the vector with number removenum from the set. More... | |
void | remove (const SVectorBase< R > *svec) |
Removes one SVectorBase from set. More... | |
void | remove (int perm[]) |
Removes multiple elements. More... | |
void | remove (const DataKey keys[], int n) |
Removes n SVectorBases from set. More... | |
void | remove (const int nums[], int n) |
Removes n SVectorBases from set. More... | |
void | remove (const DataKey keys[], int n, int *perm) |
void | remove (const int nums[], int n, int *perm) |
void | clear (int minNewSize=-1) |
Removes all SVectorBases from set. More... | |
SVectorBase< R > & | operator[] (int n) |
Gets SVectorBase by number, writeable. More... | |
const SVectorBase< R > & | operator[] (int n) const |
Gets SVectorBase by number. More... | |
SVectorBase< R > & | operator[] (const DataKey &k) |
Gets SVectorBase by DataKey, writeable. More... | |
const SVectorBase< R > & | operator[] (const DataKey &k) const |
Gets SVectorBase by DataKey. More... | |
int | num () const |
Current number of SVectorBases. More... | |
int | max () const |
Current maximum number of SVectorBases. More... | |
DataKey | key (int n) const |
Gets DataKey of vector number. More... | |
DataKey | key (const SVectorBase< R > *svec) const |
Gets DataKey of SVectorBase. More... | |
int | number (const DataKey &k) const |
Gets vector number of DataKey. More... | |
int | number (const SVectorBase< R > *svec) const |
Gets vector number of SVectorBase. More... | |
bool | has (const DataKey &k) const |
True iff SVSetBase contains a SVectorBase for DataKey k . More... | |
bool | has (int n) const |
True iff SVSetBase contains a SVectorBase for vector number n. More... | |
bool | has (const SVectorBase< R > *svec) const |
Is an SVectorBase in the set? More... | |
int | memSize () const |
Used nonzero memory. More... | |
int | memMax () const |
Length of nonzero memory. More... | |
void | memRemax (int newmax) |
Reset length of nonzero memory. More... | |
void | memPack () |
Garbage collection in nonzero memory. More... | |
void | reMax (int newmax=0) |
Resets maximum number of SVectorBases. More... | |
bool | isConsistent () const |
Consistency check. More... | |
SVSetBase (int pmax=-1, int pmemmax=-1, double pfac=1.1, double pmemFac=1.2) | |
Default constructor. More... | |
virtual | ~SVSetBase () |
Destructor. More... | |
SVSetBase< R > & | operator= (const SVSetBase< R > &rhs) |
Assignment operator. More... | |
template<class S > | |
SVSetBase< R > & | operator= (const SVSetBase< S > &rhs) |
Assignment operator. More... | |
SVSetBase (const SVSetBase< R > &old) | |
Copy constructor. More... | |
template<class S > | |
SVSetBase (const SVSetBase< S > &old) | |
Copy constructor. More... | |
![]() | |
Nonzero< R > & | operator[] (int n) |
Reference to n 'th element. More... | |
const Nonzero< R > & | operator[] (int n) const |
Reference to n 'th const element. More... | |
Nonzero< R > & | last () |
Reference to last element. More... | |
const Nonzero< R > & | last () const |
Reference to last const element. More... | |
Nonzero< R > * | get_ptr () |
Gets a C pointer to the data. More... | |
const Nonzero< R > * | get_const_ptr () const |
Gets a const C pointer to the data. More... | |
void | append (const Nonzero< R > &t) |
Appends element t . More... | |
void | append (int n, const Nonzero< R > t[]) |
Appends n elements from t . More... | |
void | append (const ClassArray< Nonzero< R > > &t) |
Appends all elements from t . More... | |
void | insert (int i, int n) |
Inserts n uninitialized elements before i 'th element. More... | |
void | insert (int i, int n, const Nonzero< R > t[]) |
Inserts n elements from t before i 'the element. More... | |
void | insert (int i, const ClassArray< Nonzero< R > > &t) |
Inserts all elements from t before i 'th element. More... | |
void | remove (int n=0, int m=1) |
Removes m elements starting at n . More... | |
void | removeLast (int m=1) |
Removes m last elements. More... | |
void | clear () |
Removes all elements. More... | |
int | size () const |
Returns number of elements. More... | |
void | reSize (int newsize) |
Resets size to newsize . More... | |
int | max () const |
Returns maximum number of elements. More... | |
ptrdiff_t | reMax (int newMax=1, int newSize=-1) |
Resets maximum number of elements. More... | |
ClassArray & | operator= (const ClassArray &rhs) |
Assignment operator. More... | |
bool | isConsistent () const |
Consistency check. More... | |
ClassArray (const ClassArray &old) | |
Copy constructor. More... | |
ClassArray (int p_size=0, int p_max=0, double p_fac=1.2) | |
Default constructor. More... | |
virtual | ~ClassArray () |
Destructor. More... | |
![]() | |
const SVSetBase< R > * | colSet () const |
Returns the complete SVSetBase. More... | |
int | num () const |
Returns the number of LPColBases currently in LPColSetBase. More... | |
int | max () const |
Returns maximum number of LPColBases currently fitting into LPColSetBase. More... | |
const VectorBase< R > & | maxObj () const |
VectorBase< R > & | maxObj_w () |
Returns vector of objective values w.r.t. maximization. More... | |
const R & | maxObj (int i) const |
R & | maxObj_w (int i) |
Returns objective value (w.r.t. maximization) of i 'th LPColBase in LPColSetBase. More... | |
const R & | maxObj (const DataKey &k) const |
R & | maxObj_w (const DataKey &k) |
Returns objective value (w.r.t. maximization) of LPColBase with DataKey k in LPColSetBase. More... | |
const VectorBase< R > & | lower () const |
VectorBase< R > & | lower_w () |
Returns vector of lower bound values. More... | |
const R & | lower (int i) const |
R & | lower_w (int i) |
Returns lower bound of i 'th LPColBase in LPColSetBase. More... | |
const R & | lower (const DataKey &k) const |
R & | lower_w (const DataKey &k) |
Returns lower bound of LPColBase with DataKey k in LPColSetBase. More... | |
const VectorBase< R > & | upper () const |
VectorBase< R > & | upper_w () |
Returns vector of upper bound values. More... | |
const R & | upper (int i) const |
R & | upper_w (int i) |
Returns upper bound of i 'th LPColBase in LPColSetBase. More... | |
const R & | upper (const DataKey &k) const |
R & | upper_w (const DataKey &k) |
Returns upper bound of LPColBase with DataKey k in LPColSetBase. More... | |
SVectorBase< R > & | colVector_w (int i) |
const SVectorBase< R > & | colVector (int i) const |
Returns colVector of i 'th LPColBase in LPColSetBase. More... | |
SVectorBase< R > & | colVector_w (const DataKey &k) |
Returns writeable colVector of LPColBase with DataKey k in LPColSetBase. More... | |
const SVectorBase< R > & | colVector (const DataKey &k) const |
Returns colVector of LPColBase with DataKey k in LPColSetBase. More... | |
DataKey | key (int i) const |
Returns DataKey of i 'th LPColBase in LPColSetBase. More... | |
int | number (const DataKey &k) const |
Returns number of LPColBase with DataKey k in LPColSetBase. More... | |
bool | has (const DataKey &k) const |
Does DataKey k belong to LPColSetBase ? More... | |
void | add (const LPColBase< R > &pcol) |
void | add (DataKey &pkey, const LPColBase< R > &pcol) |
Adds p pcol to LPColSetBase. More... | |
void | add (const R &pobj, const R &plower, const SVectorBase< R > &pcolVector, const R &pupper, const int &pscaleExp=0) |
void | add (DataKey &newkey, const R &obj, const R &newlower, const SVectorBase< R > &newcolVector, const R &newupper, const int &newscaleExp=0) |
Adds LPColBase consisting of objective value obj , lower bound lower , column vector colVector and upper bound upper to LPColSetBase. More... | |
template<class S > | |
void | add (const S *obj, const S *lowerValue, const S *colValues, const int *colIndices, int colSize, const S *upperValue) |
Adds LPColBase consisting of left hand side lhs , column vector colVector , and right hand side rhs to LPColSetBase. More... | |
template<class S > | |
void | add (DataKey &newkey, const S *objValue, const S *lowerValue, const S *colValues, const int *colIndices, int colSize, const S *upperValue) |
Adds LPColBase consisting of left hand side lhs , column vector colVector , and right hand side rhs to LPColSetBase, with DataKey key . More... | |
void | add (const LPColSetBase< R > &newset) |
void | add (DataKey keys[], const LPColSetBase< R > &newset) |
Adds all LPColBases of set to LPColSetBase. More... | |
void | xtend (int n, int newmax) |
Extends column n to fit newmax nonzeros. More... | |
void | xtend (const DataKey &pkey, int pnewmax) |
Extends column with DataKey key to fit newmax nonzeros. More... | |
void | add2 (const DataKey &k, int n, const int idx[], const R val[]) |
void | add2 (int i, int n, const int idx[], const R val[]) |
Adds n nonzero (idx , val )-pairs to i 'th colVector. More... | |
template<class S > | |
void | add2 (int i, int n, const int idx[], const S val[]) |
Adds n nonzero (idx , val )-pairs to i 'th colVector. More... | |
SVectorBase< R > & | create (int pnonzeros=0, const R &pobj=1, const R &plw=0, const R &pupp=1, const int &pscaleExp=0) |
SVectorBase< R > & | create (DataKey &newkey, int nonzeros=0, const R &obj=1, const R &newlow=0, const R &newup=1, const int &newscaleExp=0) |
Creates new LPColBase with specified arguments and returns a reference to its column vector. More... | |
void | remove (int i) |
Removes i 'th LPColBase. More... | |
void | remove (const DataKey &k) |
Removes LPColBase with DataKey k . More... | |
void | remove (int perm[]) |
Removes multiple elements. More... | |
void | remove (const int nums[], int n) |
Removes LPColBases with numbers nums , where n is the length of the array nums . More... | |
void | remove (const int nums[], int n, int *perm) |
Removes LPColBases with numbers nums , where n is the length of the array nums , and stores the index permutation in array perm . More... | |
void | clear () |
Removes all LPColBases from the set. More... | |
void | reMax (int newmax=0) |
Reallocates memory to be able to store newmax LPColBases. More... | |
int | memSize () const |
Returns used nonzero memory. More... | |
int | memMax () const |
Returns length of nonzero memory. More... | |
void | memRemax (int newmax) |
Resets length of nonzero memory. More... | |
void | memPack () |
Garbage collection in nonzero memory. More... | |
bool | isConsistent () const |
Checks consistency. More... | |
LPColSetBase (int pmax=-1, int pmemmax=-1) | |
Default constructor. More... | |
LPColSetBase< R > & | operator= (const LPColSetBase< R > &rs) |
Assignment operator. More... | |
template<class S > | |
LPColSetBase< R > & | operator= (const LPColSetBase< S > &rs) |
Assignment operator. More... | |
LPColSetBase (const LPColSetBase< R > &rs) | |
Copy constructor. More... | |
template<class S > | |
LPColSetBase (const LPColSetBase< S > &rs) | |
Copy constructor. More... | |
virtual | ~LPColSetBase () |
Destructor. More... | |
Private Member Functions | |
Private helpers | |
SVectorBase< R > & | colVector_w (int i) |
Returns the LP as an LPRowSet. More... | |
SVectorBase< R > & | rowVector_w (int i) |
void | doAddRow (const LPRowBase< R > &row, bool scale=false) |
void | doAddRow (const R &lhsValue, const SVectorBase< R > &rowVec, const R &rhsValue, bool scale=false) |
void | doAddRows (const LPRowSetBase< R > &set, bool scale=false) |
void | doAddCol (const LPColBase< R > &col, bool scale=false) |
void | doAddCol (const R &objValue, const R &lowerValue, const SVectorBase< R > &colVec, const R &upperValue, bool scale=false) |
void | doAddCols (const LPColSetBase< R > &set, bool scale=false) |
Private Attributes | |
Data | |
SPxSense | thesense |
optimization sense. More... | |
R | offset |
offset computed, e.g., in simplification step More... | |
bool | _isScaled |
true, if scaling has been performed More... | |
SPxScaler * | lp_scaler |
points to the scaler if the lp has been scaled, to 0 otherwise More... | |
Friends | |
template<class S > | |
class | SPxLPBase |
class | SPxBasis |
class | SPxScaler |
class | SPxEquiliSC |
class | SPxLeastSqSC |
class | SPxGeometSC |
class | SPxMainSM |
Additional Inherited Members | |
![]() | |
DataArray< int > | scaleExp |
row scaling factors (stored as bitshift) More... | |
![]() | |
int | thesize |
number of used elements in array data More... | |
int | themax |
the length of array data and More... | |
Nonzero< R > * | data |
the array of elements More... | |
double | memFactor |
memory extension factor. More... | |
![]() | |
DataArray< int > | scaleExp |
column scaling factors (stored as bitshift) More... | |
Saving LPs in a form suitable for SoPlex.
Class SPxLPBase provides the data structures required for saving a linear program in the form
\[ \begin{array}{rl} \hbox{max} & c^T x \\ \hbox{s.t.} & l_r \le Ax \le u_r \\ & l_c \le x \le u_c \end{array} \]
suitable for solving with SoPlex. This includes:
Note, that the optimization sense is not saved directly. Instead, the objective function are multiplied by -1 to transform the LP to our standard form maximizing the objective function. However, the sense of the loaded LP can be retrieved with method spxSense().
Further, equality constraints are modeled by \(l_r = u_r\). Analogously, fixed variables have \(l_c = u_c\).
SPxLPBases are saved as an SVSet, both for columns and rows. Note that this is redundant but eases the access.
Definition at line 80 of file spxlpbase.h.
enum SPxSense |
SPxLPBase | ( | ) |
Default constructor.
Definition at line 2616 of file spxlpbase.h.
|
virtual |
Destructor.
Definition at line 2624 of file spxlpbase.h.
Copy constructor.
Definition at line 2628 of file spxlpbase.h.
Copy constructor.
Definition at line 2642 of file spxlpbase.h.
|
virtual |
Definition at line 741 of file spxlpbase.h.
Referenced by SoPlex::_addColReal(), SoPlex::_transformFeasibility(), SoPlex::_updateComplementaryDualSlackColCoeff(), SPxLPBase< Real >::addCol(), SoPlex::addColRational(), SoPlex::addColReal(), and SPxMainSM::handleRowObjectives().
|
virtual |
Definition at line 747 of file spxlpbase.h.
void addCol | ( | const S * | objValue, |
const S * | lowerValue, | ||
const S * | colValues, | ||
const int * | colIndices, | ||
int | colSize, | ||
const S * | upperValue | ||
) |
Definition at line 754 of file spxlpbase.h.
Adds col
to LPColSetVBase.
Definition at line 786 of file spxlpbase.h.
|
virtual |
Definition at line 793 of file spxlpbase.h.
Referenced by SoPlex::_addColsReal(), SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_transformEquality(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::addColRational(), SPxLPBase< Real >::addCols(), SoPlex::addColsRational(), SoPlex::addColsReal(), and SPxLPBase< Real >::buildDualProblem().
void addCols | ( | const S * | objValue, |
const S * | lowerValues, | ||
const S * | colValues, | ||
const int * | colIndices, | ||
const int * | colStarts, | ||
const int * | colLengths, | ||
const int | numCols, | ||
const int | numValues, | ||
const S * | upperValues | ||
) |
Definition at line 800 of file spxlpbase.h.
|
virtual |
Adds all LPColBases of set
to LPColSetBase.
Definition at line 888 of file spxlpbase.h.
|
virtual |
Updates "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero.
SPxInternalCodeException | if dimension of dual vector does not match number of rows or if the dimension of the activity vector does not match the number of columns |
Definition at line 1810 of file spxlpbase.h.
Referenced by SoPlex::_performOptIRStable().
Definition at line 2099 of file spxlpbase.h.
|
protectedvirtual |
Called after the last n
columns have just been added.
Reimplemented in SPxSolver.
Definition at line 2095 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addCol(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::addRow(), SPxLPBase< Real >::addRows(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doAddRow(), and SPxLPBase< Real >::doAddRows().
|
protectedvirtual |
Called after the last n
rows have just been added.
Reimplemented in SPxSolver.
Definition at line 2091 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addCol(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::addRow(), SPxLPBase< Real >::addRows(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doAddRow(), and SPxLPBase< Real >::doAddRows().
|
virtual |
Updates activity of the rows for a given primal vector; activity does not need to be zero.
SPxInternalCodeException | if the dimension of primal vector does not match number of columns or if the dimension of the activity vector does not match the number of rows |
Definition at line 1787 of file spxlpbase.h.
Referenced by SoPlex::_performOptIRStable().
|
virtual |
Definition at line 580 of file spxlpbase.h.
Referenced by SoPlex::_addRowReal(), SoPlex::_lift(), SoPlex::_transformUnbounded(), SPxLPBase< Real >::addRow(), SoPlex::addRowRational(), and SoPlex::addRowReal().
|
virtual |
Definition at line 586 of file spxlpbase.h.
void addRow | ( | const S * | lhsValue, |
const S * | rowValues, | ||
const int * | rowIndices, | ||
int | rowSize, | ||
const S * | rhsValue | ||
) |
Definition at line 593 of file spxlpbase.h.
Adds row
to LPRowSetBase.
Definition at line 628 of file spxlpbase.h.
|
virtual |
Definition at line 635 of file spxlpbase.h.
Referenced by SoPlex::_addRowsReal(), SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_formDecompReducedProblem(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SoPlex::_updateDecompReducedProblem(), SoPlex::_updateDecompReducedProblemViol(), SoPlex::addRowRational(), SPxLPBase< Real >::addRows(), SoPlex::addRowsRational(), SoPlex::addRowsReal(), and SPxLPBase< Real >::buildDualProblem().
void addRows | ( | const S * | lhsValues, |
const S * | rowValues, | ||
const int * | rowIndices, | ||
const int * | rowStarts, | ||
const int * | rowLengths, | ||
const int | numRows, | ||
const int | numValues, | ||
const S * | rhsValues | ||
) |
Definition at line 642 of file spxlpbase.h.
|
virtual |
adds all LPRowBases of pset
to LPRowSetBase.
Definition at line 732 of file spxlpbase.h.
|
virtual |
Building the dual problem from a given LP.
Referenced by SoPlex::_formDecompComplementaryProblem(), SoPlex::_solveDecompositionDualSimplex(), SPxLPBase< Real >::operator=(), SPxLPBase< Real >::subDualActivity(), and SoPlex::writeDualFileReal().
void buildDualProblem | ( | SPxLPBase< Rational > & | dualLP, |
SPxRowId | primalRowIds[], | ||
SPxColId | primalColIds[], | ||
SPxRowId | dualRowIds[], | ||
SPxColId | dualColIds[], | ||
int * | nprimalrows, | ||
int * | nprimalcols, | ||
int * | ndualrows, | ||
int * | ndualcols | ||
) |
Building the dual problem from a given LP.
Definition at line 2408 of file spxlpbase_rational.cpp.
void buildDualProblem | ( | SPxLPBase< Real > & | dualLP, |
SPxRowId | primalRowIds[], | ||
SPxColId | primalColIds[], | ||
SPxRowId | dualRowIds[], | ||
SPxColId | dualColIds[], | ||
int * | nprimalrows, | ||
int * | nprimalcols, | ||
int * | ndualrows, | ||
int * | ndualcols | ||
) |
Building the dual problem from a given LP.
Definition at line 2693 of file spxlpbase_real.cpp.
void buildDualProblem | ( | SPxLPBase< Real > & | dualLP, |
SPxRowId | primalRowIds[], | ||
SPxColId | primalColIds[], | ||
SPxRowId | dualRowIds[], | ||
SPxColId | dualColIds[], | ||
int * | nprimalrows, | ||
int * | nprimalcols, | ||
int * | ndualrows, | ||
int * | ndualcols | ||
) |
|
virtual |
Changes variable bounds to newLower
and newUpper
. scale
determines whether the new data should be scaled.
Definition at line 1434 of file spxlpbase.h.
Referenced by SoPlex::_changeBoundsReal(), SoPlex::_lift(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SPxLPBase< Real >::changeBounds(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), and SPxMainSM::simplifyCols().
|
virtual |
Changes bounds of column i
to newLower
and newUpper
. scale
determines whether the new data should be scaled.
Definition at line 1442 of file spxlpbase.h.
void changeBounds | ( | int | i, |
const S * | newLower, | ||
const S * | newUpper | ||
) |
Changes bounds of column i
to newLower
and newUpper
.
Definition at line 1451 of file spxlpbase.h.
|
virtual |
Changes bounds of column with identifier id
. scale
determines whether the new data should be scaled.
Definition at line 1459 of file spxlpbase.h.
|
virtual |
Replaces i
'th column of LP with newCol
. scale
determines whether the new data should be scaled.
Definition at line 1638 of file spxlpbase.h.
Referenced by SoPlex::_changeColReal(), SPxLPBase< Real >::changeCol(), SoPlex::changeColRational(), and SoPlex::changeColReal().
Replaces column with identifier id
with newCol
. scale
determines whether the new data should be scaled.
Definition at line 1677 of file spxlpbase.h.
void changeElement | ( | int | i, |
int | j, | ||
const Real & | val, | ||
bool | scale | ||
) |
Changes LP element (i
, j
) to val
. scale
determines whether the new data should be scaled.
Definition at line 513 of file spxlpbase_real.cpp.
|
virtual |
Changes LP element (i
, j
) to val
. scale
determines whether the new data should be scaled.
Definition at line 1683 of file spxlpbase.h.
Referenced by SoPlex::_changeElementReal(), SoPlex::_lift(), SPxMainSM::aggregateVars(), SPxLPBase< Real >::changeElement(), SoPlex::changeElementRational(), SoPlex::changeElementReal(), and SPxMainSM::multiaggregation().
void changeElement | ( | int | i, |
int | j, | ||
const S * | val | ||
) |
Changes LP element (i
, j
) to val
.
Definition at line 1726 of file spxlpbase.h.
|
virtual |
Changes LP element identified by (rid
, cid
) to val
. scale
determines whether the new data should be scaled.
Definition at line 1757 of file spxlpbase.h.
void changeLhs | ( | const VectorBase< Real > & | newLhs, |
bool | scale | ||
) |
Changes left hand side vector for constraints to newLhs
.
Definition at line 481 of file spxlpbase_real.cpp.
|
virtual |
Changes left hand side vector for constraints to newLhs
. scale
determines whether the new data should be scaled.
Definition at line 1465 of file spxlpbase.h.
Referenced by SoPlex::_changeLhsReal(), SoPlex::_restoreLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxMainSM::aggregateVars(), SPxLPBase< Real >::changeLhs(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SPxLPBase< Real >::changeRange(), SPxLPBase< Real >::changeRow(), SPxMainSM::fixColumn(), SPxMainSM::handleExtremes(), SPxMainSM::multiaggregation(), SPxLPBase< Real >::operator=(), and SPxMainSM::simplifyRows().
|
virtual |
Changes i
'th left hand side value to newLhs
. scale
determines whether the new data should be scaled.
Definition at line 1474 of file spxlpbase.h.
void changeLhs | ( | int | i, |
const S * | newLhs | ||
) |
Changes i
'th left hand side value to newLhs
.
Definition at line 1489 of file spxlpbase.h.
|
virtual |
Changes left hand side value for row with identifier id
. scale
determines whether the new data should be scaled.
Definition at line 1496 of file spxlpbase.h.
void changeLhs | ( | const VectorBase< Real > & | newLhs, |
bool | scale | ||
) |
void changeLower | ( | const VectorBase< Real > & | newLower, |
bool | scale | ||
) |
Changes vector of lower bounds to newLower
.
Definition at line 448 of file spxlpbase_real.cpp.
|
virtual |
Changes vector of lower bounds to newLower
. scale
determines whether the new data should be scaled.
Definition at line 1360 of file spxlpbase.h.
Referenced by SoPlex::_changeLowerReal(), SoPlex::_getCompatibleBoundCons(), SoPlex::_restoreLPReal(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxMainSM::aggregateVars(), SPxLPBase< Real >::changeBounds(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeLower(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SPxMainSM::duplicateCols(), SPxMainSM::handleExtremes(), SPxLPBase< Real >::operator=(), SPxMainSM::propagatePseudoobj(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
|
virtual |
changes i
'th lower bound to newLower
. scale
determines whether the new data should be scaled
Definition at line 1369 of file spxlpbase.h.
void changeLower | ( | int | i, |
const S * | newLower | ||
) |
changes i
'th lower bound to newLower
.
Definition at line 1384 of file spxlpbase.h.
|
virtual |
changes lower bound of column with identifier id
to newLower
. scale
determines whether the new data should be scaled
Definition at line 1391 of file spxlpbase.h.
void changeLower | ( | const VectorBase< Real > & | newLower, |
bool | scale | ||
) |
void changeMaxObj | ( | const VectorBase< Real > & | newObj, |
bool | scale | ||
) |
Changes objective vector to newObj
.
Definition at line 432 of file spxlpbase_real.cpp.
|
virtual |
Changes objective vector to newObj
. scale
determines whether the new data should be scaled.
Definition at line 1323 of file spxlpbase.h.
Referenced by SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxLPBase< Real >::changeMaxObj(), SPxLPBase< Real >::changeObj(), SPxMainSM::multiaggregation(), and SPxLPBase< Real >::operator=().
|
virtual |
changes i
'th objective vector element to newVal
. scale
determines whether the new data should be scaled
Definition at line 1332 of file spxlpbase.h.
void changeMaxObj | ( | int | i, |
const S * | newVal | ||
) |
changes i
'th objective vector element to newVal
.
Definition at line 1347 of file spxlpbase.h.
|
virtual |
Changes objective value of column with identifier id
to newVal
. scale
determines whether the new data should be scaled.
Definition at line 1354 of file spxlpbase.h.
void changeMaxObj | ( | const VectorBase< Real > & | newObj, |
bool | scale | ||
) |
|
virtual |
Changes objective vector to newObj
. scale
determines whether the new data should be scaled.
Definition at line 1291 of file spxlpbase.h.
Referenced by SoPlex::_computeReducedProbObjCoeff(), SoPlex::_restoreLPReal(), SoPlex::_transformUnbounded(), SPxMainSM::aggregateVars(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeObj(), SoPlex::changeObjRational(), SoPlex::changeObjReal(), SPxMainSM::handleExtremes(), and SPxMainSM::simplifyCols().
|
virtual |
changes i
'th objective vector element to newVal
. scale
determines whether the new data should be scaled
Definition at line 1299 of file spxlpbase.h.
void changeObj | ( | int | i, |
const S * | newVal | ||
) |
changes i
'th objective vector element to newVal
.
Definition at line 1308 of file spxlpbase.h.
|
virtual |
Changes objective value of column with identifier id
to newVal
. scale
determines whether the new data should be scaled.
Definition at line 1317 of file spxlpbase.h.
|
virtual |
Definition at line 1773 of file spxlpbase.h.
Referenced by SoPlex::_decompSimplifyAndSolve(), SoPlex::_evaluateSolutionDecomp(), SoPlex::_evaluateSolutionReal(), SoPlex::_preprocessAndSolveReal(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), and SoPlex::setRealParam().
|
virtual |
Changes left and right hand side vectors. scale
determines whether the new data should be scaled.
Definition at line 1531 of file spxlpbase.h.
Referenced by SoPlex::_changeRangeReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SPxLPBase< Real >::changeRange(), SoPlex::changeRangeRational(), SoPlex::changeRangeReal(), SPxMainSM::duplicateRows(), SPxMainSM::handleRowObjectives(), and SPxMainSM::simplifyCols().
|
virtual |
Changes left and right hand side of row i
. scale
determines whether the new data should be scaled.
Definition at line 1539 of file spxlpbase.h.
void changeRange | ( | int | i, |
const S * | newLhs, | ||
const S * | newRhs | ||
) |
Changes left and right hand side of row i
.
Definition at line 1548 of file spxlpbase.h.
|
virtual |
Changes left and right hand side of row with identifier id
. scale
determines whether the new data should be scaled.
Definition at line 1556 of file spxlpbase.h.
void changeRhs | ( | const VectorBase< Real > & | newRhs, |
bool | scale | ||
) |
Changes right hand side vector for constraints to newRhs
.
Definition at line 497 of file spxlpbase_real.cpp.
|
virtual |
Changes right hand side vector for constraints to newRhs
. scale
determines whether the new data should be scaled.
Definition at line 1502 of file spxlpbase.h.
Referenced by SoPlex::_changeRhsReal(), SoPlex::_restoreLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxMainSM::aggregateVars(), SPxLPBase< Real >::changeRange(), SPxLPBase< Real >::changeRhs(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SPxLPBase< Real >::changeRow(), SPxMainSM::fixColumn(), SPxMainSM::handleExtremes(), SPxMainSM::multiaggregation(), SPxLPBase< Real >::operator=(), and SPxMainSM::simplifyRows().
|
virtual |
Changes i
'th right hand side value to newRhs
. scale
determines whether the new data should be scaled.
Definition at line 1511 of file spxlpbase.h.
|
virtual |
Changes right hand side value for row with identifier id
. scale
determines whether the new data should be scaled.
Definition at line 1525 of file spxlpbase.h.
void changeRhs | ( | const VectorBase< Real > & | newRhs, |
bool | scale | ||
) |
|
virtual |
Replaces i
'th row of LP with newRow
. scale
determines whether the new data should be scaled.
Definition at line 1593 of file spxlpbase.h.
Referenced by SoPlex::_changeRowReal(), SoPlex::_getCompatibleColumns(), SPxLPBase< Real >::changeRow(), SoPlex::changeRowRational(), and SoPlex::changeRowReal().
Replaces row with identifier id
with newRow
. scale
determines whether the new data should be scaled.
Definition at line 1632 of file spxlpbase.h.
|
virtual |
Changes row objective function vector to newRowObj
. scale
determines whether the new data should be scaled.
Definition at line 1562 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::changeRow(), SPxLPBase< Real >::changeRowObj(), and SPxMainSM::handleRowObjectives().
|
virtual |
Changes i
'th row objective function value to newRowObj
. scale
determines whether the new data should be scaled.
Definition at line 1572 of file spxlpbase.h.
|
virtual |
Changes row objective function value for row with identifier id
. scale
determines whether the new data should be scaled.
Definition at line 1581 of file spxlpbase.h.
|
virtual |
Changes optimization sense to sns
.
Reimplemented in SPxSolver.
Definition at line 1763 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::buildDualProblem(), and SoPlex::setIntParam().
void changeUpper | ( | const VectorBase< Real > & | newUpper, |
bool | scale | ||
) |
Changes vector of upper bounds to newUpper
.
Definition at line 465 of file spxlpbase_real.cpp.
|
virtual |
Changes vector of upper bounds to newUpper
. scale
determines whether the new data should be scaled.
Definition at line 1397 of file spxlpbase.h.
Referenced by SoPlex::_changeUpperReal(), SoPlex::_getCompatibleBoundCons(), SoPlex::_restoreLPReal(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxMainSM::aggregateVars(), SPxLPBase< Real >::changeBounds(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeUpper(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SPxMainSM::duplicateCols(), SPxMainSM::handleExtremes(), SPxLPBase< Real >::operator=(), SPxMainSM::propagatePseudoobj(), SPxMainSM::removeRowSingleton(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::simplifyRows().
|
virtual |
Changes i
'th upper bound to newUpper
. scale
determines whether the new data should be scaled.
Definition at line 1406 of file spxlpbase.h.
void changeUpper | ( | int | i, |
const S * | newUpper | ||
) |
Changes i
'th upper bound to newUpper
.
Definition at line 1421 of file spxlpbase.h.
|
virtual |
Changes upper bound of column with identifier id
to newLower
. scale
determines whether the new data should be scaled.
Definition at line 1428 of file spxlpbase.h.
void changeUpper | ( | const VectorBase< Real > & | newUpper, |
bool | scale | ||
) |
SPxColId cId | ( | int | n | ) | const |
Returns the column identifier for column n
.
Definition at line 568 of file spxlpbase.h.
Referenced by SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_updateDecompComplementaryDualProblem(), SPxLPBase< Real >::addCol(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::buildDualProblem(), soplex::getColName(), soplex::initPrefs(), and SPxWeightPR::selectEnter().
|
virtual |
clears the LP.
Reimplemented in SPxSolver.
Definition at line 1098 of file spxlpbase.h.
Referenced by SoPlex::clearLPRational(), SoPlex::clearLPReal(), SPxLPBase< Real >::readLPF(), SPxLPBase< Real >::readMPS(), and SPxLPBase< Real >::SPxLPBase().
|
virtual |
Clears row objective function values for all rows.
Reimplemented in SPxSolver.
Definition at line 1587 of file spxlpbase.h.
const SVectorBase<R>& colVector | ( | int | i | ) | const |
Returns column vector of column i
.
Definition at line 373 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_untransformFeasibility(), SoPlex::_updateComplementaryDualSlackColCoeff(), SoPlex::addColRational(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::addPrimalActivity(), SPxLPBase< Real >::addRows(), SPxMainSM::aggregateVars(), SoPlex::areLPsInSync(), SoPlex::colVectorRational(), SoPlex::colVectorRealInternal(), SPxLPBase< Real >::doAddRows(), SPxLPBase< Real >::doRemoveCol(), SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxMainSM::ForceConstraintPS::ForceConstraintPS(), SPxScaler::getCoefUnscaled(), SPxLPBase< Real >::getCol(), SPxLPBase< Real >::getCols(), SPxScaler::getColUnscaled(), SPxLPBase< Real >::isConsistent(), SPxScaler::maxColRatio(), soplex::maxPrescaledRatio(), SoPlex::multBasis(), SoPlex::multBasisTranspose(), SPxMainSM::multiaggregation(), SPxLPBase< Real >::nNzos(), SPxMainSM::removeEmpty(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), and SPxMainSM::trivialHeuristic().
const SVectorBase<R>& colVector | ( | const SPxColId & | id | ) | const |
Returns column vector of column with identifier id
.
Definition at line 379 of file spxlpbase.h.
|
private |
Returns the LP as an LPRowSet.
Definition at line 2159 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addRows(), SPxScaler::applyScaling(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeElement(), SPxLPBase< Real >::changeRow(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doAddRows(), SPxLPBase< Real >::doRemoveRow(), SPxLPBase< Real >::doRemoveRows(), SPxMainSM::handleExtremes(), and SPxScaler::unscale().
void computeDualActivity | ( | const VectorBase< Rational > & | dual, |
VectorBase< Rational > & | activity, | ||
const bool | unscaled | ||
) | const |
Definition at line 75 of file spxlpbase_rational.cpp.
void computeDualActivity | ( | const VectorBase< Real > & | dual, |
VectorBase< Real > & | activity, | ||
const bool | unscaled | ||
) | const |
Definition at line 95 of file spxlpbase_real.cpp.
|
virtual |
Computes "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero.
SPxInternalCodeException | if dimension of dual vector does not match number of rows or if the dimension of the activity vector does not match the number of columns |
Referenced by SPxLPBase< Real >::addPrimalActivity(), and SPxLPBase< Real >::operator=().
void computeDualActivity | ( | const VectorBase< Real > & | dual, |
VectorBase< Real > & | activity, | ||
const bool | unscaled | ||
) | const |
void computePrimalActivity | ( | const VectorBase< Rational > & | primal, |
VectorBase< Rational > & | activity, | ||
const bool | unscaled | ||
) | const |
Definition at line 37 of file spxlpbase_rational.cpp.
void computePrimalActivity | ( | const VectorBase< Real > & | primal, |
VectorBase< Real > & | activity, | ||
const bool | unscaled | ||
) | const |
Definition at line 47 of file spxlpbase_real.cpp.
|
virtual |
Computes activity of the rows for a given primal vector; activity does not need to be zero.
SPxInternalCodeException | if the dimension of primal vector does not match number of columns or if the dimension of the activity vector does not match the number of rows unscaled determines whether the returned data should be unscaled (if scaling was applied prior) |
Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_findViolatedRows(), SoPlex::_performOptIRStable(), SoPlex::_reconstructSolutionRational(), SoPlex::_untransformFeasibility(), SPxLPBase< Real >::changeObjOffset(), SoPlex::getDecompRowViolation(), SoPlex::getRowViolationRational(), SoPlex::getRowViolationReal(), and SPxLPBase< Real >::operator=().
void computePrimalActivity | ( | const VectorBase< Real > & | primal, |
VectorBase< Real > & | activity, | ||
const bool | unscaled | ||
) | const |
|
private |
Definition at line 2389 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addCol().
|
private |
Definition at line 2446 of file spxlpbase.h.
|
private |
Definition at line 2502 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addCols().
|
private |
Definition at line 2171 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addRow().
|
private |
Definition at line 2226 of file spxlpbase.h.
|
private |
Definition at line 2281 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addRows().
|
protectedvirtual |
Internal helper method.
Reimplemented in SPxSolver.
Definition at line 2030 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::removeCol().
|
protectedvirtual |
Internal helper method.
Reimplemented in SPxSolver.
Definition at line 2069 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::removeCols().
|
protectedvirtual |
Internal helper method.
Reimplemented in SPxSolver.
Definition at line 1974 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::removeRow().
|
protectedvirtual |
Internal helper method.
Reimplemented in SPxSolver.
Definition at line 2009 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::removeRows().
void getCol | ( | int | i, |
LPColBase< R > & | col | ||
) | const |
Gets i
'th column.
Definition at line 336 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::getCol(), SoPlex::getColRational(), and SPxLPBase< Real >::getCols().
Gets column with identifier id
.
Definition at line 345 of file spxlpbase.h.
void getCols | ( | int | start, |
int | end, | ||
LPColSetBase< R > & | set | ||
) | const |
Gets columns start
, ..., end
.
Definition at line 351 of file spxlpbase.h.
Referenced by SoPlex::getColsRational().
void getColVectorUnscaled | ( | int | i, |
DSVectorBase< Real > & | vec | ||
) | const |
Gets column vector of column i
.
Definition at line 297 of file spxlpbase_real.cpp.
void getColVectorUnscaled | ( | const SPxColId & | id, |
DSVectorBase< Real > & | vec | ||
) | const |
Gets column vector of column with identifier id
.
Definition at line 308 of file spxlpbase_real.cpp.
void getColVectorUnscaled | ( | int | i, |
DSVectorBase< Real > & | vec | ||
) | const |
Gets column vector of column i
.
Referenced by SoPlex::_checkScaling(), SPxLPBase< Real >::colVector(), SoPlex::getColVectorReal(), SoPlex::multBasis(), SoPlex::multBasisTranspose(), and SPxLPBase< Real >::operator=().
void getColVectorUnscaled | ( | const SPxColId & | id, |
DSVectorBase< Real > & | vec | ||
) | const |
Gets column vector of column with identifier id
.
void getColVectorUnscaled | ( | int | i, |
DSVectorBase< Real > & | vec | ||
) | const |
void getColVectorUnscaled | ( | const SPxColId & | id, |
DSVectorBase< Real > & | vec | ||
) | const |
void getLhsUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Returns unscaled left hand side vector.
Definition at line 268 of file spxlpbase_real.cpp.
void getLhsUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Returns unscaled left hand side vector.
Referenced by SoPlex::getLhsReal(), SPxLPBase< Real >::getLhsUnscaled(), SPxLPBase< Real >::maxRowObj(), and SPxLPBase< Real >::operator=().
void getLhsUnscaled | ( | VectorBase< Real > & | vec | ) | const |
void getLowerUnscaled | ( | DVector & | vec | ) | const |
Returns unscaled lower bound vector.
Definition at line 403 of file spxlpbase_real.cpp.
void getLowerUnscaled | ( | DVector & | vec | ) | const |
Gets unscaled lower bound vector.
Referenced by SoPlex::getLowerReal(), SPxLPBase< Real >::getLowerUnscaled(), SPxLPBase< Real >::lower(), and SPxLPBase< Real >::operator=().
void getLowerUnscaled | ( | DVector & | vec | ) | const |
void getObj | ( | VectorBase< R > & | pobj | ) | const |
Gets objective vector.
Definition at line 394 of file spxlpbase.h.
Referenced by SoPlex::_performOptIRStable(), SoPlex::_reconstructSolutionRational(), SoPlex::_storeLPReal(), and SoPlex::getObjRational().
void getObjUnscaled | ( | VectorBase< Real > & | pobj | ) | const |
Gets unscaled objective vector.
Definition at line 210 of file spxlpbase_real.cpp.
void getObjUnscaled | ( | VectorBase< Real > & | pobj | ) | const |
Gets unscaled objective vector.
Referenced by SPxLPBase< Real >::colVector(), SoPlex::getObjReal(), and SPxLPBase< Real >::operator=().
void getObjUnscaled | ( | VectorBase< Real > & | pobj | ) | const |
void getRhs | ( | VectorBase< R > & | vec | ) | const |
Gets (internal and possibly scaled) right hand side vector.
Definition at line 238 of file spxlpbase.h.
void getRhsUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Gets unscaled right hand side vector.
Definition at line 239 of file spxlpbase_real.cpp.
void getRhsUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Gets unscaled right hand side vector.
Referenced by SPxLPBase< Real >::getRhs(), SoPlex::getRhsReal(), SPxLPBase< Real >::getRhsUnscaled(), and SPxLPBase< Real >::operator=().
void getRhsUnscaled | ( | VectorBase< Real > & | vec | ) | const |
void getRow | ( | int | i, |
LPRowBase< R > & | row | ||
) | const |
Gets i
'th row.
Definition at line 180 of file spxlpbase.h.
Referenced by SoPlex::_getCompatibleColumns(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SPxLPBase< Real >::getRow(), and SoPlex::getRowRational().
Gets row with identifier id
.
Definition at line 189 of file spxlpbase.h.
void getRowObj | ( | VectorBase< R > & | prowobj | ) | const |
Gets row objective function vector.
Definition at line 271 of file spxlpbase.h.
void getRows | ( | int | start, |
int | end, | ||
LPRowSetBase< R > & | set | ||
) | const |
Gets rows start
, ... end
.
Definition at line 195 of file spxlpbase.h.
Referenced by SoPlex::getRowsRational().
void getRowVectorUnscaled | ( | int | i, |
DSVectorBase< Real > & | vec | ||
) | const |
Gets unscaled row vector of row i
.
Referenced by SoPlex::_checkScaling(), SPxLPBase< Real >::operator=(), and SPxLPBase< Real >::rowVector().
void getRowVectorUnscaled | ( | int | i, |
DSVectorBase< Real > & | vec | ||
) | const |
Gets unscaled row vector of row i
.
Definition at line 228 of file spxlpbase_real.cpp.
void getRowVectorUnscaled | ( | int | i, |
DSVectorBase< Real > & | vec | ||
) | const |
void getUpperUnscaled | ( | DVector & | vec | ) | const |
Returns unscaled upper bound vector.
Definition at line 374 of file spxlpbase_real.cpp.
void getUpperUnscaled | ( | DVector & | vec | ) | const |
Gets unscaled upper bound vector.
Referenced by SoPlex::getUpperReal(), SPxLPBase< Real >::getUpperUnscaled(), SPxLPBase< Real >::operator=(), and SPxLPBase< Real >::upper().
void getUpperUnscaled | ( | DVector & | vec | ) | const |
bool has | ( | const SPxRowId & | id | ) | const |
Returns the row number of the row with identifier id
.
Definition at line 542 of file spxlpbase.h.
Referenced by SPxBasis::removedCol(), and SPxBasis::removedRow().
bool has | ( | const SPxColId & | id | ) | const |
Returns the column number of the column with identifier id
.
Definition at line 548 of file spxlpbase.h.
bool has | ( | const SPxId & | id | ) | const |
Returns the row or column number for identifier id
.
Definition at line 554 of file spxlpbase.h.
bool isConsistent | ( | ) | const |
Consistency check.
Definition at line 1867 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), SPxLPBase< Real >::changeBounds(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeElement(), SPxLPBase< Real >::changeLhs(), SPxLPBase< Real >::changeLower(), SPxLPBase< Real >::changeMaxObj(), SPxLPBase< Real >::changeObj(), SPxLPBase< Real >::changeRange(), SPxLPBase< Real >::changeRhs(), SPxLPBase< Real >::changeRow(), SPxLPBase< Real >::changeRowObj(), SPxLPBase< Real >::changeUpper(), SPxMainSM::handleExtremes(), SPxLPBase< Real >::operator=(), SPxScaler::setup(), SPxLPBase< Real >::SPxLPBase(), and SPxScaler::unscale().
bool isScaled | ( | ) | const |
Returns true if and only if the LP is scaled.
Definition at line 139 of file spxlpbase.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::_checkBasisScaling(), SoPlex::_checkScaling(), SoPlex::_decompResolveWithoutPreprocessing(), SoPlex::_optimizeReal(), SoPlex::_preprocessAndSolveReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_storeSolutionReal(), SoPlex::changeObjReal(), SoPlex::coefReal(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SPxScaler::getCoefUnscaled(), SPxScaler::getColUnscaled(), SPxScaler::getLhsUnscaled(), SPxScaler::getLowerUnscaled(), SPxScaler::getMaxObjUnscaled(), SPxScaler::getRhsUnscaled(), SPxScaler::getRowUnscaled(), SoPlex::getRowVectorReal(), SPxScaler::getUpperUnscaled(), SPxScaler::lhsUnscaled(), SPxScaler::lowerUnscaled(), SPxScaler::maxObjUnscaled(), SoPlex::multBasis(), SoPlex::multBasisTranspose(), SPxScaler::rhsUnscaled(), SPxScaler::scaleElement(), SPxScaler::scaleLhs(), SPxScaler::scaleLower(), SPxScaler::scaleObj(), SPxScaler::scaleRhs(), SPxScaler::scaleUpper(), SPxScaler::unscale(), SPxScaler::unscaleDual(), SPxScaler::unscaleDualray(), SPxScaler::unscalePrimal(), SPxScaler::unscalePrimalray(), SPxScaler::unscaleRedCost(), SPxScaler::unscaleSlacks(), SPxScaler::upperUnscaled(), and SoPlex::writeFileReal().
const VectorBase<R>& lhs | ( | ) | const |
Returns left hand side vector.
Definition at line 253 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_completeRangeTypesRational(), SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_findViolatedRows(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_identifyComplementaryDualFixedPrimalVars(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_restoreLPReal(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_storeLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateComplementaryDualSlackColCoeff(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SPxMainSM::aggregateVars(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SPxSolver::calculateProblemRanges(), SPxSolver::changeLhs(), SPxLPBase< Real >::changeLhs(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SPxSolver::changeRange(), SoPlex::changeRangeRational(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SPxSolver::changeRhsStatus(), SPxMainSM::checkSolution(), SPxSolver::computeEnterCoPrhs4Row(), SPxSolver::computeFrhs(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxBasis::dualRowStatus(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxBoundFlippingRT::flipAndUpdate(), SPxMainSM::FreeZeroObjVariablePS::FreeZeroObjVariablePS(), SoPlex::getDecompRowViolation(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOriginalProblemStatistics(), SoPlex::getOrigVarFixedDirection(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::getRows(), SPxSolver::getSlacks(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), SPxSolver::isBasisValid(), SoPlex::lhsRational(), SoPlex::lhsRealInternal(), soplex::LPFwriteRows(), SPxMainSM::multiaggregation(), SPxSolver::nonbasicValue(), SPxLPBase< Real >::printProblemStatistics(), SPxSolver::qualConstraintViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxSolver::setLeaveBound4Row(), SPxSolver::setPrimalBounds(), SPxWeightST::setPrimalStatus(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxSolver::solve(), SPxSolver::test(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SPxSolver::unShift(), and SPxSolver::varStatusToBasisStatusRow().
const R& lhs | ( | int | i | ) | const |
Returns left hand side of row number i
.
Definition at line 259 of file spxlpbase.h.
const R& lhs | ( | const SPxRowId & | id | ) | const |
Returns left hand side of row with identifier id
.
Definition at line 265 of file spxlpbase.h.
|
protected |
Returns left hand side of row i
.
Definition at line 1926 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().
Real lhsUnscaled | ( | int | i | ) | const |
Returns unscaled left hand side of row number i
.
Definition at line 278 of file spxlpbase_real.cpp.
Returns left hand side of row with identifier id
.
Definition at line 289 of file spxlpbase_real.cpp.
R lhsUnscaled | ( | int | i | ) | const |
Returns unscaled left hand side of row number i
.
Referenced by SoPlex::_checkScaling(), SPxSolver::changeLhs(), SoPlex::getRowViolationReal(), SoPlex::lhsReal(), SPxLPBase< Real >::maxRowObj(), and SPxLPBase< Real >::operator=().
R lhsUnscaled | ( | const SPxRowId & | id | ) | const |
Returns left hand side of row with identifier id
.
Real lhsUnscaled | ( | int | i | ) | const |
const VectorBase<R>& lower | ( | ) | const |
Returns (internal and possibly scaled) lower bound vector.
Definition at line 483 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_completeRangeTypesRational(), SoPlex::_getCompatibleBoundCons(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_removeComplementaryDualFixedPrimalVars(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_storeLPReal(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateComplementaryPrimalFixedPrimalVars(), SPxMainSM::aggregateVars(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SPxSolver::calculateProblemRanges(), SoPlex::changeBoundsRational(), SPxSolver::changeLower(), SPxLPBase< Real >::changeLower(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SPxSolver::changeUpperStatus(), SPxMainSM::computeMinMaxResidualActivity(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxMainSM::duplicateCols(), SPxMainSM::FixBoundsPS::FixBoundsPS(), SPxMainSM::fixColumn(), SPxBoundFlippingRT::flipAndUpdate(), SPxWeightST::generate(), SPxLPBase< Real >::getCol(), SPxLPBase< Real >::getCols(), SoPlex::getDecompBoundViolation(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals2(), SoPlex::getOriginalProblemStatistics(), SPxMainSM::handleExtremes(), SPxSolver::isBasisValid(), SoPlex::lowerRational(), SoPlex::lowerRealInternal(), soplex::LPFwriteBounds(), SPxMainSM::multiaggregation(), SPxSolver::nonbasicValue(), soplex::primalColStatus(), SPxLPBase< Real >::printProblemStatistics(), SPxMainSM::propagatePseudoobj(), SPxSolver::qualBoundViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxSumST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxSolver::solve(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SPxSolver::unShift(), SPxSolver::varStatusToBasisStatusCol(), and SPxBasis::writeBasis().
const R& lower | ( | int | i | ) | const |
Returns (internal and possibly scaled) lower bound of column i
.
Definition at line 489 of file spxlpbase.h.
const R& lower | ( | const SPxColId & | id | ) | const |
Returns (internal and possibly scaled) lower bound of column with identifier id
.
Definition at line 495 of file spxlpbase.h.
|
protected |
Returns lower bound of column i
.
Definition at line 1950 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().
Real lowerUnscaled | ( | int | i | ) | const |
Returns unscaled lower bound of column i
.
Definition at line 413 of file spxlpbase_real.cpp.
Returns unscaled lower bound of column with identifier id
.
Definition at line 424 of file spxlpbase_real.cpp.
R lowerUnscaled | ( | int | i | ) | const |
Returns unscaled lower bound of column i
.
Referenced by SoPlex::_checkScaling(), SPxSolver::changeLower(), SoPlex::getBoundViolationReal(), SPxLPBase< Real >::lower(), SoPlex::lowerReal(), and SPxLPBase< Real >::operator=().
R lowerUnscaled | ( | const SPxColId & | id | ) | const |
Returns unscaled lower bound of column with identifier id
.
Real lowerUnscaled | ( | int | i | ) | const |
|
protected |
Returns the LP as an LPColSetBase.
Definition at line 1968 of file spxlpbase.h.
|
protected |
Returns the LP as an LPRowSetBase.
Definition at line 1962 of file spxlpbase.h.
Rational maxAbsNzo | ( | bool | ) | const |
Definition at line 113 of file spxlpbase_rational.cpp.
Real maxAbsNzo | ( | bool | unscaled | ) | const |
Definition at line 143 of file spxlpbase_real.cpp.
|
virtual |
Absolute biggest non-zero element in (in rational case possibly scaled) LP.
Referenced by SoPlex::getOriginalProblemStatistics(), SoPlex::maxAbsNonzeroRational(), SoPlex::maxAbsNonzeroReal(), SPxLPBase< Real >::nNzos(), SPxLPBase< Real >::operator=(), SPxLPBase< Real >::printProblemStatistics(), SPxEquiliSC::scale(), SPxLeastSqSC::scale(), and SPxGeometSC::scale().
Real maxAbsNzo | ( | bool | unscaled | ) | const |
const VectorBase<R>& maxObj | ( | ) | const |
Returns objective vector for maximization problem.
Methods maxObj() return the objective vector or its elements, after transformation to a maximization problem. Since this is how SPxLPBase internally stores any LP these methods are generally faster. The following condition holds: obj() = spxSense() * maxObj().
Definition at line 429 of file spxlpbase.h.
Referenced by SoPlex::_checkOriginalProblemOptimality(), SoPlex::_computeReducedProbObjCoeff(), SoPlex::_performOptIRStable(), SoPlex::_setComplementaryPrimalOriginalObjective(), SoPlex::_solveDecompositionDualSimplex(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::areLPsInSync(), SPxSolver::changeLowerStatus(), SPxLPBase< Real >::changeMaxObj(), SPxSolver::changeUpperStatus(), SPxWeightPR::computeCP(), SPxSolver::computeEnterCoPrhs4Col(), SPxSolver::computeFrhs(), SPxSolver::computeLeaveCoPrhs4Col(), SPxWeightPR::computeRP(), SPxMainSM::duplicateCols(), SPxWeightST::generate(), SPxSolver::getDegeneracyLevel(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getRedCost(), SPxWeightPR::load(), soplex::LPFwriteObjective(), SPxLPBase< Real >::maxObj(), SoPlex::maxObjRational(), SoPlex::maxObjRealInternal(), SPxMainSM::multiaggregation(), SPxSolver::nonbasicValue(), SPxLPBase< Real >::obj(), SPxSolver::performSolutionPolishing(), soplex::primalColStatus(), SPxMainSM::propagatePseudoobj(), SPxMainSM::removeEmpty(), SPxSolver::setDualColBounds(), SPxSolver::setRedCost(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxSolver::test(), SPxMainSM::trivialHeuristic(), SPxSolver::ungetEnterVal(), SPxSolver::unShift(), and SPxSolver::varStatusToBasisStatusCol().
const R& maxObj | ( | int | i | ) | const |
Returns objective value of column i
for maximization problem.
Definition at line 435 of file spxlpbase.h.
const R& maxObj | ( | const SPxColId & | id | ) | const |
Returns objective value of column with identifier id
for maximization problem.
Definition at line 441 of file spxlpbase.h.
|
protected |
Returns objective value of column i
for maximization problem.
Definition at line 1938 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().
void maxObjUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Returns unscaled objective vector for maximization problem.
Definition at line 345 of file spxlpbase_real.cpp.
Real maxObjUnscaled | ( | int | i | ) | const |
Returns unscaled objective value of column i
for maximization problem.
Definition at line 355 of file spxlpbase_real.cpp.
Returns unscaled objective value of column with identifier id
for maximization problem.
Definition at line 366 of file spxlpbase_real.cpp.
void maxObjUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Returns unscaled objective vector for maximization problem.
Referenced by SPxLPBase< Real >::maxObj(), SoPlex::maxObjReal(), and SPxLPBase< Real >::operator=().
R maxObjUnscaled | ( | int | i | ) | const |
Returns unscaled objective value of column i
for maximization problem.
R maxObjUnscaled | ( | const SPxColId & | id | ) | const |
Returns unscaled objective value of column with identifier id
for maximization problem.
void maxObjUnscaled | ( | VectorBase< Real > & | vec | ) | const |
Real maxObjUnscaled | ( | int | i | ) | const |
const VectorBase<R>& maxRowObj | ( | ) | const |
Definition at line 297 of file spxlpbase.h.
Referenced by SoPlex::_performOptIRStable(), SPxScaler::applyScaling(), SPxSolver::changeLhsStatus(), SPxSolver::changeRhsStatus(), SPxLPBase< Real >::changeRowObj(), SPxSolver::computeEnterCoPrhs4Row(), SPxSolver::computeFrhs(), SPxSolver::computeLeaveCoPrhs4Row(), SPxSolver::coTest(), SPxSolver::getDual(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxMainSM::handleRowObjectives(), SPxSolver::nonbasicValue(), SPxLPBase< Real >::rowObj(), SPxSolver::setDualColBounds(), SPxSolver::setLeaveBound4Row(), SPxSolver::ungetEnterVal(), SPxScaler::unscale(), and SPxSolver::unShift().
const R& maxRowObj | ( | int | i | ) | const |
Definition at line 303 of file spxlpbase.h.
const R& maxRowObj | ( | const SPxRowId & | id | ) | const |
Returns row objective function value of row with identifier id
.
Definition at line 309 of file spxlpbase.h.
|
protected |
Returns objective function value of row i
.
Definition at line 1932 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), and SPxScaler::unscale().
Rational minAbsNzo | ( | bool | ) | const |
Definition at line 131 of file spxlpbase_rational.cpp.
|
virtual |
Absolute smallest non-zero element in (possibly scaled) LP.
Referenced by SoPlex::getOriginalProblemStatistics(), SoPlex::minAbsNonzeroRational(), SoPlex::minAbsNonzeroReal(), SPxLPBase< Real >::nNzos(), SPxLPBase< Real >::operator=(), SPxLPBase< Real >::printProblemStatistics(), SPxEquiliSC::scale(), SPxLeastSqSC::scale(), and SPxGeometSC::scale().
Real minAbsNzo | ( | bool | unscaled | ) | const |
Definition at line 176 of file spxlpbase_real.cpp.
Real minAbsNzo | ( | bool | unscaled | ) | const |
int nCols | ( | ) | const |
Returns number of columns in LP.
Definition at line 157 of file spxlpbase.h.
Referenced by SoPlex::_checkOriginalProblemOptimality(), SoPlex::_checkScaling(), SoPlex::_decompResolveWithoutPreprocessing(), SoPlex::_decompSimplifyAndSolve(), SoPlex::_evaluateSolutionDecomp(), SoPlex::_findViolatedRows(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_formDecompReducedProblem(), SoPlex::_getCompatibleColumns(), SoPlex::_getZeroDualMultiplierIndices(), SoPlex::_identifyComplementaryDualFixedPrimalVars(), SoPlex::_identifyComplementaryPrimalFixedPrimalVars(), SoPlex::_preprocessAndSolveReal(), SoPlex::_removeComplementaryDualFixedPrimalVars(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_setComplementaryPrimalOriginalObjective(), SoPlex::_solveDecompositionDualSimplex(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_storeLPReal(), SoPlex::_storeSolutionReal(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SoPlex::_updateDecompReducedProblem(), SoPlex::_updateDecompReducedProblemViol(), SoPlex::_writeOriginalProblemBasis(), SPxLPBase< Real >::addCol(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::addDualActivity(), SPxBasis::addedCols(), SPxLPBase< Real >::addPrimalActivity(), SPxLPBase< Real >::addRow(), SPxLPBase< Real >::addRows(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SPxSolver::calculateProblemRanges(), SoPlex::checkBasisDualFeasibility(), SPxSolver::computeFrhsXtra(), SPxBasis::Desc::Desc(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxLPBase< Real >::doRemoveCol(), SPxLPBase< Real >::doRemoveRows(), SPxBasis::dump(), SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxWeightST::generate(), SPxSolver::getBasis(), SPxSolver::getBasisColStatus(), SPxScaler::getCoefUnscaled(), SPxScaler::getColMaxAbsUnscaled(), SPxScaler::getColMinAbsUnscaled(), soplex::getColName(), SPxScaler::getColUnscaled(), SoPlex::getDecompBoundViolation(), SoPlex::getDecompRowViolation(), SPxSolver::getDegeneracyLevel(), SPxSolver::getDual(), SoPlex::getOriginalProblemBasisColStatus(), SoPlex::getOriginalProblemStatistics(), SPxSolver::getPrimal(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::initPrefs(), SPxSolver::isBasisValid(), SPxWeightPR::isConsistent(), SPxBasis::isConsistent(), SPxLPBase< Real >::isConsistent(), SPxBasis::isDescValid(), SPxWeightPR::load(), SPxBasis::loadDesc(), SPxScaler::lowerUnscaled(), soplex::LPFwriteBounds(), soplex::LPFwriteGenerals(), soplex::LPFwriteSVector(), SPxScaler::maxColRatio(), SPxScaler::maxObjUnscaled(), soplex::maxPrescaledRatio(), SPxMainSM::multiaggregation(), SPxLPBase< Real >::nNzos(), SPxSolver::nonbasicValue(), SoPlex::numColsRational(), SoPlex::numColsReal(), SPxSolver::performSolutionPolishing(), SoPlex::printDecompDisplayLine(), SPxLPBase< Real >::printProblemStatistics(), SPxMainSM::propagatePseudoobj(), SPxSolver::qualBoundViolation(), SPxSolver::qualConstraintViolation(), SPxSolver::qualSlackViolation(), SPxBasis::readBasis(), SPxBasis::reDim(), SPxMainSM::removeCol(), SPxLPBase< Real >::removeColRange(), SoPlex::removeColRational(), SoPlex::removeColReal(), SPxLPBase< Real >::removeCols(), SoPlex::removeColsRational(), SoPlex::removeColsReal(), SPxBasis::removedCol(), SPxMainSM::removeEmpty(), SPxBasis::restoreInitialBasis(), SPxLeastSqSC::scale(), SPxGeometSC::scale(), SPxScaler::scaleElement(), SPxScaler::scaleLower(), SPxScaler::scaleObj(), SPxScaler::scaleUpper(), SPxFastRT::selectEnter(), SPxFastRT::selectLeave(), SoPlex::setBasis(), SPxSolver::setBasis(), SPxSolver::setDual(), SPxSolver::setDualColBounds(), SPxSolver::setDualRowBounds(), SoPlex::setIntegralityInformation(), SPxSolver::setIntegralityInformation(), SPxScaler::setup(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxSolver::solve(), SPxLPBase< Real >::subDualActivity(), SPxSolver::terminate(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SPxSolver::unShift(), SPxScaler::upperUnscaled(), and SPxBasis::writeBasis().
int nNzos | ( | ) | const |
Returns number of nonzeros in LP.
Definition at line 163 of file spxlpbase.h.
Referenced by SoPlex::areLPsInSync(), SoPlex::getOriginalProblemStatistics(), SoPlex::numNonzerosRational(), SoPlex::numNonzerosReal(), SPxLPBase< Real >::printProblemStatistics(), SPxLeastSqSC::scale(), and SPxMainSM::simplify().
int nRows | ( | ) | const |
Returns number of rows in LP.
Definition at line 151 of file spxlpbase.h.
Referenced by SoPlex::_checkBasisScaling(), SoPlex::_checkScaling(), SoPlex::_decompResolveWithoutPreprocessing(), SoPlex::_decompSimplifyAndSolve(), SoPlex::_evaluateSolutionDecomp(), SoPlex::_findViolatedRows(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_formDecompReducedProblem(), SoPlex::_getCompatibleColumns(), SoPlex::_preprocessAndSolveReal(), SoPlex::_resolveWithoutPreprocessing(), SoPlex::_restoreLPReal(), SoPlex::_solveDecompositionDualSimplex(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_storeSolutionReal(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SoPlex::_writeOriginalProblemBasis(), SPxLPBase< Real >::addCol(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::addDualActivity(), SPxBasis::addedRows(), SPxLPBase< Real >::addPrimalActivity(), SPxLPBase< Real >::addRow(), SPxLPBase< Real >::addRows(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SPxSolver::calculateProblemRanges(), SPxSolver::changeLhs(), SPxSolver::changeRange(), SPxSolver::changeRhs(), SPxMainSM::checkSolution(), SPxSolver::computeFrhs(), SPxBasis::Desc::Desc(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxLPBase< Real >::doRemoveCols(), SPxLPBase< Real >::doRemoveRow(), SPxBasis::dump(), SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxWeightST::generate(), SPxSolver::getBasis(), SPxSolver::getBasisRowStatus(), SPxScaler::getCoefUnscaled(), SoPlex::getDecompRowViolation(), SPxSolver::getDegeneracyLevel(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOriginalProblemStatistics(), SPxScaler::getRowMaxAbsUnscaled(), SPxScaler::getRowMinAbsUnscaled(), SPxScaler::getRowUnscaled(), SPxSolver::getSlacks(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::initPrefs(), SPxSolver::isBasisValid(), SPxWeightPR::isConsistent(), SPxBasis::isConsistent(), SPxLPBase< Real >::isConsistent(), SPxBasis::isDescValid(), SPxScaler::lhsUnscaled(), SPxWeightPR::load(), SPxBasis::loadDesc(), soplex::LPFgetRowName(), soplex::LPFwriteRows(), soplex::maxPrescaledRatio(), SPxScaler::maxRowRatio(), soplex::MPSgetRowName(), SPxMainSM::multiaggregation(), SPxSolver::nonbasicValue(), SoPlex::numRowsRational(), SoPlex::numRowsReal(), SPxSolver::performSolutionPolishing(), SPxLPBase< Real >::printProblemStatistics(), SPxSolver::qualConstraintViolation(), SPxSolver::qualSlackViolation(), SPxBasis::readBasis(), SPxBasis::reDim(), SPxBasis::removedRow(), SPxMainSM::removeEmpty(), SPxMainSM::removeRow(), SPxLPBase< Real >::removeRowRange(), SoPlex::removeRowRational(), SoPlex::removeRowReal(), SPxLPBase< Real >::removeRows(), SoPlex::removeRowsRational(), SoPlex::removeRowsReal(), SPxBasis::restoreInitialBasis(), SPxScaler::rhsUnscaled(), SPxLeastSqSC::scale(), SPxGeometSC::scale(), SPxScaler::scaleElement(), SPxScaler::scaleLhs(), SPxScaler::scaleRhs(), SoPlex::setBasis(), SPxSolver::setBasis(), SPxSolver::setDualColBounds(), SPxSolver::setDualRowBounds(), SPxScaler::setup(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxSolver::solve(), SPxLPBase< Real >::subDualActivity(), SPxSolver::terminate(), SPxScaler::unscale(), SPxSolver::unShift(), and SPxBasis::writeBasis().
int number | ( | const SPxRowId & | id | ) | const |
Returns the row number of the row with identifier id
.
Definition at line 522 of file spxlpbase.h.
Referenced by SoPlex::_findViolatedRows(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_getCompatibleColumns(), SoPlex::_getZeroDualMultiplierIndices(), SoPlex::_identifyComplementaryDualFixedPrimalVars(), SoPlex::_identifyComplementaryPrimalFixedPrimalVars(), SoPlex::_removeComplementaryDualFixedPrimalVars(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_setComplementaryPrimalOriginalObjective(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateComplementaryDualSlackColCoeff(), SoPlex::_updateComplementaryPrimalFixedPrimalVars(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SoPlex::_updateDecompReducedProblem(), SPxLPBase< Real >::changeBounds(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeElement(), SPxLPBase< Real >::changeLhs(), SPxLPBase< Real >::changeLower(), SPxLPBase< Real >::changeMaxObj(), SPxLPBase< Real >::changeObj(), SPxLPBase< Real >::changeRange(), SPxLPBase< Real >::changeRhs(), SPxLPBase< Real >::changeRow(), SPxLPBase< Real >::changeRowObj(), SPxLPBase< Real >::changeUpper(), SoPlex::checkBasisDualFeasibility(), SPxSolver::computeDualfarkas4Row(), SPxSolver::computeEnterCoPrhs(), SPxSolver::computeEnterCoPrhs4Col(), SPxSolver::computeEnterCoPrhs4Row(), SPxSolver::computeLeaveCoPrhs(), SPxSolver::computeLeaveCoPrhs4Col(), SPxSolver::computeLeaveCoPrhs4Row(), SPxWeightPR::computeLeavePenalty(), SPxSolver::computePrimalray4Col(), SPxBasis::dump(), SPxSolver::enter(), SPxBoundFlippingRT::flipAndUpdate(), SPxWeightST::generate(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SPxLPBase< Real >::getCol(), SoPlex::getCompSlackVarCoeff(), SPxSolver::getDual(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SoPlex::getOriginalProblemBasisColStatus(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOrigVarFixedDirection(), SPxSolver::getPrimal(), SPxSolver::getRedCost(), SPxLPBase< Real >::getRow(), SPxSolver::getSlacks(), SPxLPBase< Real >::maxObj(), SoPlex::multBasis(), SoPlex::multBasisTranspose(), SPxLPBase< Real >::obj(), SPxSolver::performSolutionPolishing(), SPxSolver::rejectEnter(), SPxLPBase< Real >::removeCol(), SPxLPBase< Real >::removeCols(), SPxLPBase< Real >::removeRow(), SPxLPBase< Real >::removeRows(), SPxParMultPR::selectEnter(), SPxFastRT::selectEnter(), SPxFastRT::selectLeave(), SPxBoundFlippingRT::selectLeave(), SPxSolver::setDual(), soplex::setDualStatus(), SPxSolver::setEnterBound4Col(), SPxSolver::setEnterBound4Row(), SPxSolver::setEnterBounds(), SPxSolver::setLeaveBound4Col(), SPxSolver::setLeaveBound4Row(), SPxSolver::setLeaveBounds(), SPxSolver::setPrimal(), SPxWeightST::setPrimalStatus(), SPxSolver::setRedCost(), SPxSolver::setSlacks(), SPxSolver::solve(), SPxSolver::ungetEnterVal(), and SPxSolver::unShift().
int number | ( | const SPxColId & | id | ) | const |
Returns the column number of the column with identifier id
.
Definition at line 528 of file spxlpbase.h.
int number | ( | const SPxId & | id | ) | const |
Returns the row or column number for identifier id
.
Definition at line 534 of file spxlpbase.h.
R obj | ( | int | i | ) | const |
Returns objective value of column i
.
Definition at line 403 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_performOptIRStable(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_updateDecompComplementaryDualProblem(), SPxMainSM::aggregateVars(), SPxMainSM::FixVariablePS::FixVariablePS(), SPxMainSM::ForceConstraintPS::ForceConstraintPS(), SPxMainSM::FreeColSingletonPS::FreeColSingletonPS(), SoPlex::getCompSlackVarCoeff(), SPxMainSM::handleExtremes(), SoPlex::objRational(), and SPxMainSM::simplifyCols().
R obj | ( | const SPxColId & | id | ) | const |
Returns objective value of column with identifier id
.
Definition at line 413 of file spxlpbase.h.
const R& objOffset | ( | ) | const |
Returns the objective function value offset.
Definition at line 516 of file spxlpbase.h.
Referenced by SoPlex::printDecompDisplayLine(), and SPxSolver::value().
Real objUnscaled | ( | int | i | ) | const |
Returns unscaled objective value of column i
.
Definition at line 316 of file spxlpbase_real.cpp.
Returns unscaled objective value of column with identifier id
.
Definition at line 337 of file spxlpbase_real.cpp.
R objUnscaled | ( | int | i | ) | const |
Returns unscaled objective value of column i
.
Referenced by SoPlex::_checkScaling(), SPxLPBase< Real >::obj(), SoPlex::objReal(), and SPxLPBase< Real >::operator=().
R objUnscaled | ( | const SPxColId & | id | ) | const |
Returns unscaled objective value of column with identifier id
.
Real objUnscaled | ( | int | i | ) | const |
Assignment operator.
Definition at line 2655 of file spxlpbase.h.
Assignment operator.
Definition at line 2675 of file spxlpbase.h.
void printProblemStatistics | ( | std::ostream & | os | ) |
prints problem statistics
Definition at line 1192 of file spxlpbase.h.
Referenced by SoPlex::printStatistics().
|
virtual |
Reads LP in LP or MPS format from input stream in
.
in | input stream. |
rowNames | contains after the call the names of the constraints (rows) in the same order as the rows in the LP. Constraints without a name (only possible with LPF files) are automatically assigned a name. Maybe 0 if the names are not needed. |
colNames | contains after the call the names of the variables (columns) in the same order as the columns in the LP. Maybe 0 if the names are not needed. |
intVars | contains after the call the indices of those variables that where marked as beeing integer in the file. Maybe 0 if the information is not needed. |
Reimplemented in SPxSolver.
Definition at line 1134 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::readFile().
|
virtual |
Reads LP from a file.
Definition at line 1154 of file spxlpbase.h.
Referenced by SoPlex::_readFileRational(), and SoPlex::_readFileReal().
bool readLPF | ( | std::istream & | p_input, |
NameSet * | p_rnames, | ||
NameSet * | p_cnames, | ||
DIdxSet * | p_intvars | ||
) |
Read LP in "CPLEX LP File Format".
The specification is taken from the ILOG CPLEX 7.0 Reference Manual, Appendix E, Page 527.
This routine should read (most?) valid LP format files. What it will not do, is find all cases where a file is ill formed. If this happens it may complain and read nothing or read "something".
Problem: A line ending in '+' or '-' followed by a line starting with a number, will be regarded as an error.
The reader will accept the keyword INT[egers] as a synonym for GEN[erals] which is an undocumented feature in CPLEX.
A difference to the CPLEX reader, is that no name for the objective row is required.
The manual says the maximum allowed line length is 255 characters, but CPLEX does not complain if the lines are longer.
< row names.
< column names.
< the set of columns read.
< the set of rows read.
< reusable empty column.
< last assembled row.
< last assembled vector (from row).
p_input | input stream. |
p_rnames | row names. |
p_cnames | column names. |
p_intvars | integer variables. |
Definition at line 530 of file spxlpbase_rational.cpp.
bool readLPF | ( | std::istream & | p_input, |
NameSet * | p_rnames, | ||
NameSet * | p_cnames, | ||
DIdxSet * | p_intvars | ||
) |
Read LP in "CPLEX LP File Format".
The specification is taken from the ILOG CPLEX 7.0 Reference Manual, Appendix E, Page 527.
This routine should read (most?) valid LP format files. What it will not do, is find all cases where a file is ill formed. If this happens it may complain and read nothing or read "something".
Problem: A line ending in '+' or '-' followed by a line starting with a number, will be regarded as an error.
The reader will accept the keyword INT[egers] as a synonym for GEN[erals] which is an undocumented feature in CPLEX.
A difference to the CPLEX reader, is that no name for the objective row is required.
The manual says the maximum allowed line length is 255 characters, but CPLEX does not complain if the lines are longer.
< row names.
< column names.
< the set of columns read.
< the set of rows read.
< reusable empty column.
< last assembled row.
< last assembled vector (from row).
p_input | input stream. |
p_rnames | row names. |
p_cnames | column names. |
p_intvars | integer variables. |
Definition at line 908 of file spxlpbase_real.cpp.
|
virtual |
Reads LP in LP format from input stream in
.
Referenced by SPxLPBase< Real >::clear(), SPxLPBase< Real >::operator=(), and SPxLPBase< Real >::read().
bool readLPF | ( | std::istream & | p_input, |
NameSet * | p_rnames, | ||
NameSet * | p_cnames, | ||
DIdxSet * | p_intvars | ||
) |
|
virtual |
Reads an LP in MPS format from input stream in
.
Referenced by SPxLPBase< Real >::clear(), SPxLPBase< Real >::operator=(), and SPxLPBase< Real >::read().
bool readMPS | ( | std::istream & | p_input, |
NameSet * | p_rnames, | ||
NameSet * | p_cnames, | ||
DIdxSet * | p_intvars | ||
) |
p_input | input stream. |
p_rnames | row names. |
p_cnames | column names. |
p_intvars | integer variables. |
Definition at line 1677 of file spxlpbase_rational.cpp.
bool readMPS | ( | std::istream & | p_input, |
NameSet * | p_rnames, | ||
NameSet * | p_cnames, | ||
DIdxSet * | p_intvars | ||
) |
p_input | input stream. |
p_rnames | row names. |
p_cnames | column names. |
p_intvars | integer variables. |
Definition at line 2022 of file spxlpbase_real.cpp.
bool readMPS | ( | std::istream & | p_input, |
NameSet * | p_rnames, | ||
NameSet * | p_cnames, | ||
DIdxSet * | p_intvars | ||
) |
|
virtual |
Removes i
'th column.
Definition at line 1001 of file spxlpbase.h.
Referenced by SoPlex::_removeColReal(), SoPlex::_setComplementaryPrimalOriginalObjective(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxLPBase< Real >::removeCol(), SPxMainSM::removeCol(), SoPlex::removeColRational(), and SoPlex::removeColReal().
|
virtual |
Removes column with identifier id
.
Definition at line 1010 of file spxlpbase.h.
|
virtual |
Removes columns from start
to end
(including both).
Definition at line 1071 of file spxlpbase.h.
Referenced by SoPlex::_project(), and SoPlex::_untransformEquality().
|
virtual |
Removes multiple columns.
This method removes all LPColBases from the SPxLPBase with an index i
such that perm
[i] < 0. Upon completion, perm
[i] >= 0 indicates the new index where the i
'th LPColBase has been moved to due to this removal. Note, that perm
must point to an array of at least nCols() ints.
Definition at line 1020 of file spxlpbase.h.
Referenced by SoPlex::_removeColsReal(), SoPlex::_removeComplementaryDualFixedPrimalVars(), SoPlex::_updateDecompComplementaryDualProblem(), SPxMainSM::duplicateCols(), SPxLPBase< Real >::removeColRange(), SPxLPBase< Real >::removeCols(), SoPlex::removeColsRational(), and SoPlex::removeColsReal().
|
virtual |
Definition at line 1026 of file spxlpbase.h.
|
virtual |
Removes n
LPCols.
Removing multiple columns with one method invocation is available in two flavours. An array perm
can be passed as third argument or not. If given, perm
must be an array at least of size nCols(). It is used to return the permutations resulting from this removal: perm
[i] < 0 indicates, that the element to index i
has been removed. Otherwise, perm
[i] is the new index of the element with index i
before the removal.
Definition at line 1051 of file spxlpbase.h.
|
virtual |
Removes i
'th row.
Definition at line 904 of file spxlpbase.h.
Referenced by SoPlex::_removeRowReal(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_untransformUnbounded(), SPxLPBase< Real >::removeRow(), SPxMainSM::removeRow(), SoPlex::removeRowRational(), and SoPlex::removeRowReal().
|
virtual |
Removes row with identifier id
.
Definition at line 913 of file spxlpbase.h.
|
virtual |
Removes rows from start
to end
(including both).
Definition at line 974 of file spxlpbase.h.
Referenced by SoPlex::_project().
|
virtual |
Removes multiple rows.
This method removes all LPRowBases from the SPxLPBase with an index i
such that perm
[i] < 0. Upon completion, perm
[i] >= 0 indicates the new index where the i'th
LPRow has been moved to due to this removal. Note that perm
must point to an array of at least nRows() ints.
Definition at line 923 of file spxlpbase.h.
Referenced by SoPlex::_formDecompReducedProblem(), SoPlex::_removeRowsReal(), SoPlex::_updateDecompComplementaryPrimalProblem(), SPxMainSM::duplicateRows(), SPxLPBase< Real >::removeRowRange(), SPxLPBase< Real >::removeRows(), SoPlex::removeRowsRational(), and SoPlex::removeRowsReal().
|
virtual |
Definition at line 929 of file spxlpbase.h.
|
virtual |
Removes n
LPRowBases.
Removing multiple rows with one method invocation is available in two flavours. An array perm
can be passed as third argument or not. If given, perm
must be an array at least of size nRows(). It is used to return the permutations resulting from this removal: perm
[i] < 0 indicates, that the element to index i
has been removed. Otherwise, perm
[i] is the new index of the element with index i
before the removal.
Definition at line 954 of file spxlpbase.h.
const VectorBase<R>& rhs | ( | ) | const |
Returns right hand side vector.
Definition at line 219 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_completeRangeTypesRational(), SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_findViolatedRows(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_identifyComplementaryDualFixedPrimalVars(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_restoreLPReal(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_storeLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateComplementaryDualSlackColCoeff(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SPxMainSM::aggregateVars(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SPxSolver::calculateProblemRanges(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SPxSolver::changeLhsStatus(), SPxSolver::changeRange(), SoPlex::changeRangeRational(), SPxSolver::changeRhs(), SPxLPBase< Real >::changeRhs(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SPxMainSM::checkSolution(), SPxSolver::computeEnterCoPrhs4Row(), SPxSolver::computeFrhs(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxBasis::dualRowStatus(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxBoundFlippingRT::flipAndUpdate(), SPxMainSM::FreeZeroObjVariablePS::FreeZeroObjVariablePS(), SoPlex::getDecompRowViolation(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOriginalProblemStatistics(), SoPlex::getOrigVarFixedDirection(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::getRows(), SPxSolver::getSlacks(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), SPxSolver::isBasisValid(), soplex::LPFwriteRows(), SPxMainSM::multiaggregation(), SPxSolver::nonbasicValue(), SPxLPBase< Real >::printProblemStatistics(), SPxSolver::qualConstraintViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SoPlex::rhsRational(), SoPlex::rhsRealInternal(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxSolver::setLeaveBound4Row(), SPxSolver::setPrimalBounds(), SPxWeightST::setPrimalStatus(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxSolver::solve(), SPxSolver::test(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SPxSolver::unShift(), and SPxSolver::varStatusToBasisStatusRow().
const R& rhs | ( | int | i | ) | const |
Returns right hand side of row number i
.
Definition at line 225 of file spxlpbase.h.
const R& rhs | ( | const SPxRowId & | id | ) | const |
Returns right hand side of row with identifier id
.
Definition at line 232 of file spxlpbase.h.
|
protected |
Returns right hand side of row i
.
Definition at line 1920 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().
R rhsUnscaled | ( | int | i | ) | const |
Returns unscaled right hand side of row number i
.
Referenced by SoPlex::_checkScaling(), SPxSolver::changeRhs(), SPxLPBase< Real >::getRhs(), SoPlex::getRowViolationReal(), SPxLPBase< Real >::operator=(), and SoPlex::rhsReal().
Real rhsUnscaled | ( | int | i | ) | const |
Returns unscaled right hand side of row number i
.
Definition at line 249 of file spxlpbase_real.cpp.
R rhsUnscaled | ( | const SPxRowId & | id | ) | const |
Returns unscaled right hand side of row with identifier id
.
Returns unscaled right hand side of row with identifier id
.
Definition at line 260 of file spxlpbase_real.cpp.
Real rhsUnscaled | ( | int | i | ) | const |
SPxRowId rId | ( | int | n | ) | const |
Returns the row identifier for row n
.
Definition at line 562 of file spxlpbase.h.
Referenced by SoPlex::_formDecompComplementaryProblem(), SPxLPBase< Real >::addRow(), SPxLPBase< Real >::addRows(), SPxLPBase< Real >::buildDualProblem(), soplex::getRowName(), soplex::initPrefs(), soplex::LPFgetRowName(), soplex::MPSgetRowName(), and SPxWeightPR::selectEnter().
R rowObj | ( | int | i | ) | const |
Definition at line 279 of file spxlpbase.h.
Referenced by SPxMainSM::DuplicateRowsPS::DuplicateRowsPS(), SPxMainSM::FreeZeroObjVariablePS::FreeZeroObjVariablePS(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::getRows(), and SPxMainSM::handleRowObjectives().
R rowObj | ( | const SPxRowId & | id | ) | const |
Returns row objective function value of row with identifier id
.
Definition at line 288 of file spxlpbase.h.
LPRowBase<R>::Type rowType | ( | int | i | ) | const |
Returns the inequality type of the i'th
LPRow.
Definition at line 324 of file spxlpbase.h.
Referenced by SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_formDecompComplementaryProblem(), SoPlex::_updateComplementaryDualSlackColCoeff(), SoPlex::_updateDecompComplementaryDualProblem(), SoPlex::_updateDecompComplementaryPrimalProblem(), SoPlex::getCompSlackVarCoeff(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOrigProbDualVariableSign(), SoPlex::rowTypeRational(), and SoPlex::rowTypeReal().
Returns the inequality type of the row with identifier key
.
Definition at line 330 of file spxlpbase.h.
const SVectorBase<R>& rowVector | ( | int | i | ) | const |
Gets row vector of row i
.
Definition at line 204 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_computeInfeasBox(), SoPlex::_deleteAndUpdateRowsComplementaryProblem(), SoPlex::_untransformUnbounded(), SPxLPBase< Real >::addCols(), SPxLPBase< Real >::addDualActivity(), SoPlex::addRowRational(), SPxLPBase< Real >::addRows(), SPxMainSM::checkSolution(), SPxMainSM::computeMinMaxResidualActivity(), SPxWeightPR::computeRP(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doRemoveRow(), SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::FreeZeroObjVariablePS::FreeZeroObjVariablePS(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::getRows(), SPxScaler::getRowUnscaled(), SoPlex::getRowVectorReal(), SPxLPBase< Real >::isConsistent(), soplex::LPFwriteRows(), soplex::maxPrescaledRatio(), SPxScaler::maxRowRatio(), SPxMainSM::multiaggregation(), SPxSolver::qualConstraintViolation(), SPxSolver::qualSlackViolation(), SPxMainSM::removeEmpty(), SoPlex::rowVectorRational(), SoPlex::rowVectorRealInternal(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxSolver::solve(), and SPxLPBase< Real >::subDualActivity().
const SVectorBase<R>& rowVector | ( | const SPxRowId & | id | ) | const |
Gets row vector of row with identifier id
.
Definition at line 210 of file spxlpbase.h.
|
private |
Definition at line 2165 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::addCols(), SPxScaler::applyScaling(), SPxLPBase< Real >::changeCol(), SPxLPBase< Real >::changeElement(), SPxLPBase< Real >::changeRow(), SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxLPBase< Real >::doRemoveCol(), SPxLPBase< Real >::doRemoveCols(), SPxMainSM::handleExtremes(), and SPxScaler::unscale().
void setOutstream | ( | SPxOut & | newOutstream | ) |
Definition at line 125 of file spxlpbase.h.
Referenced by SoPlex::_ensureRationalLP(), SoPlex::_formDecompComplementaryProblem(), SoPlex::SoPlex(), and SoPlex::writeDualFileReal().
void setScalingInfo | ( | bool | scaled | ) |
set whether the LP is scaled or not
Definition at line 145 of file spxlpbase.h.
Referenced by SoPlex::_preprocessAndSolveReal(), SPxScaler::applyScaling(), and SPxGeometSC::scale().
SPxSense spxSense | ( | ) | const |
Returns the optimization sense.
Definition at line 510 of file spxlpbase.h.
Referenced by SoPlex::_decompSimplifyAndSolve(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_solveDecompositionDualSimplex(), SoPlex::areLPsInSync(), SPxLPBase< Real >::changeObj(), SPxLPBase< Real >::changeRowObj(), SoPlex::checkBasisDualFeasibility(), SPxMainSM::ForceConstraintPS::ForceConstraintPS(), SPxSolver::getDual(), SPxLPBase< Real >::getObj(), SPxSolver::getRedCost(), SPxLPBase< Real >::getRowObj(), soplex::LPFwriteObjective(), SPxLPBase< Real >::obj(), SPxLPBase< Real >::rowObj(), SPxSolver::setDual(), SPxSolver::setRedCost(), SPxMainSM::simplify(), and SPxSolver::terminate().
|
virtual |
Updates "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero.
SPxInternalCodeException | if dimension of dual vector does not match number of rows or if the dimension of the activity vector does not match the number of columns |
Definition at line 1828 of file spxlpbase.h.
Referenced by SoPlex::_performOptIRStable(), and SoPlex::_reconstructSolutionRational().
void unscaleLP | ( | ) |
Definition at line 36 of file spxlpbase_real.cpp.
void unscaleLP | ( | ) |
unscales the lp and clears basis
Referenced by SPxLPBase< Real >::operator=(), SPxLPBase< Real >::setOutstream(), SPxSolver::unscaleLPandReloadBasis(), and SoPlex::writeFileReal().
void unscaleLP | ( | ) |
const VectorBase<R>& upper | ( | ) | const |
Returns upper bound vector.
Definition at line 456 of file spxlpbase.h.
Referenced by SoPlex::_checkScaling(), SoPlex::_completeRangeTypesRational(), SoPlex::_getCompatibleBoundCons(), SoPlex::_recomputeRangeTypesRational(), SoPlex::_recomputeRangeTypesReal(), SoPlex::_removeComplementaryDualFixedPrimalVars(), SoPlex::_setComplementaryDualOriginalObjective(), SoPlex::_storeLPReal(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_updateComplementaryDualFixedPrimalVars(), SoPlex::_updateComplementaryPrimalFixedPrimalVars(), SPxMainSM::aggregateVars(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SoPlex::changeBoundsRational(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), SPxSolver::changeLowerStatus(), SPxSolver::changeUpper(), SPxLPBase< Real >::changeUpper(), SoPlex::changeUpperRational(), SoPlex::changeUpperReal(), SPxMainSM::computeMinMaxResidualActivity(), SPxLPBase< Real >::doAddCol(), SPxLPBase< Real >::doAddCols(), SPxMainSM::duplicateCols(), SPxMainSM::FixBoundsPS::FixBoundsPS(), SPxMainSM::fixColumn(), SPxBoundFlippingRT::flipAndUpdate(), SPxWeightST::generate(), SPxLPBase< Real >::getCol(), SPxLPBase< Real >::getCols(), SoPlex::getDecompBoundViolation(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals2(), SoPlex::getOriginalProblemStatistics(), SPxMainSM::handleExtremes(), SPxSolver::isBasisValid(), soplex::LPFwriteBounds(), SPxMainSM::multiaggregation(), SPxSolver::nonbasicValue(), soplex::primalColStatus(), SPxLPBase< Real >::printProblemStatistics(), SPxMainSM::propagatePseudoobj(), SPxSolver::qualBoundViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxSumST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxSolver::solve(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SPxSolver::unShift(), SoPlex::upperRational(), SoPlex::upperRealInternal(), SPxSolver::varStatusToBasisStatusCol(), and SPxBasis::writeBasis().
const R& upper | ( | int | i | ) | const |
Returns upper bound of column i
.
Definition at line 462 of file spxlpbase.h.
const R& upper | ( | const SPxColId & | id | ) | const |
Returns upper bound of column with identifier id
.
Definition at line 468 of file spxlpbase.h.
|
protected |
Returns upper bound of column i
.
Definition at line 1944 of file spxlpbase.h.
Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().
Real upperUnscaled | ( | int | i | ) | const |
Returns unscaled upper bound of column i
.
Definition at line 384 of file spxlpbase_real.cpp.
Returns unscaled upper bound of column with identifier id
.
Definition at line 395 of file spxlpbase_real.cpp.
R upperUnscaled | ( | int | i | ) | const |
Returns unscaled upper bound of column i
.
Referenced by SoPlex::_checkScaling(), SPxSolver::changeUpper(), SoPlex::getBoundViolationReal(), SPxLPBase< Real >::operator=(), SPxLPBase< Real >::upper(), and SoPlex::upperReal().
R upperUnscaled | ( | const SPxColId & | id | ) | const |
Returns unscaled upper bound of column with identifier id
.
Real upperUnscaled | ( | int | i | ) | const |
|
virtual |
Write loaded LP to filename
.
Definition at line 1175 of file spxlpbase.h.
Referenced by SoPlex::_lift(), SoPlex::_project(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SoPlex::writeDualFileReal(), SoPlex::writeFileRational(), and SoPlex::writeFileReal().
|
virtual |
Writes a file in LP format to out
. If rowNames
and colNames
are NULL
, default names are used for the constraints and variables. If intVars
is not NULL
, the variables contained in it are marked as integer in the output.
Referenced by SPxLPBase< Real >::operator=(), SPxLPBase< Real >::readFile(), and SPxLPBase< Real >::writeFile().
void writeLPF | ( | std::ostream & | p_output, |
const NameSet * | p_rnames, | ||
const NameSet * | p_cnames, | ||
const DIdxSet * | p_intvars | ||
) | const |
Write LP in LP Format.
p_output | output stream |
p_rnames | row names |
p_cnames | column names |
p_intvars | integer variables |
Definition at line 2107 of file spxlpbase_rational.cpp.
void writeLPF | ( | std::ostream & | p_output, |
const NameSet * | p_rnames, | ||
const NameSet * | p_cnames, | ||
const DIdxSet * | p_intvars | ||
) | const |
Write LP in LP Format.
p_output | output stream |
p_rnames | row names |
p_cnames | column names |
p_intvars | integer variables |
Definition at line 2401 of file spxlpbase_real.cpp.
void writeLPF | ( | std::ostream & | p_output, |
const NameSet * | p_rnames, | ||
const NameSet * | p_cnames, | ||
const DIdxSet * | p_intvars | ||
) | const |
|
virtual |
Writes a file in MPS format to out
.
Referenced by SPxLPBase< Real >::operator=(), SPxLPBase< Real >::readFile(), SPxLPBase< Real >::writeFile(), and SPxSolver::writeState().
void writeMPS | ( | std::ostream & | p_output, |
const NameSet * | p_rnames, | ||
const NameSet * | p_cnames, | ||
const DIdxSet * | p_intvars | ||
) | const |
Write LP in MPS format.
p_output | output stream. |
p_rnames | row names. |
p_cnames | column names. |
p_intvars | integer variables. |
Definition at line 2214 of file spxlpbase_rational.cpp.
void writeMPS | ( | std::ostream & | p_output, |
const NameSet * | p_rnames, | ||
const NameSet * | p_cnames, | ||
const DIdxSet * | p_intvars | ||
) | const |
Write LP in MPS format.
p_output | output stream. |
p_rnames | row names. |
p_cnames | column names. |
p_intvars | integer variables. |
Definition at line 2502 of file spxlpbase_real.cpp.
void writeMPS | ( | std::ostream & | p_output, |
const NameSet * | p_rnames, | ||
const NameSet * | p_cnames, | ||
const DIdxSet * | p_intvars | ||
) | const |
|
friend |
Definition at line 83 of file spxlpbase.h.
|
friend |
Definition at line 85 of file spxlpbase.h.
|
friend |
Definition at line 87 of file spxlpbase.h.
|
friend |
Definition at line 86 of file spxlpbase.h.
|
friend |
Definition at line 82 of file spxlpbase.h.
|
friend |
Definition at line 88 of file spxlpbase.h.
|
friend |
Definition at line 84 of file spxlpbase.h.
|
private |
true, if scaling has been performed
Definition at line 113 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::isScaled(), SPxLPBase< Real >::operator=(), and SPxScaler::unscale().
|
private |
points to the scaler if the lp has been scaled, to 0 otherwise
Definition at line 114 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::operator=(), and SPxScaler::setup().
|
private |
offset computed, e.g., in simplification step
Definition at line 112 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::objOffset(), and SPxLPBase< Real >::operator=().
SPxOut* spxout |
Definition at line 121 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::operator=(), and SPxMainSM::simplify().
|
private |
optimization sense.
Definition at line 111 of file spxlpbase.h.
Referenced by SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::operator=(), and SPxLPBase< Real >::spxSense().