Scippy

SoPlex

Sequential object-oriented simPlex

SPxLPBase< R > Class Template Reference

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 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<>
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...
 
rhsUnscaled (int i) const
 Returns unscaled right hand side of row number i. More...
 
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...
 
rowObj (int i) const
 
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...
 
lhsUnscaled (int i) const
 Returns unscaled left hand side of row number i. More...
 
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...
 
obj (int i) const
 Returns objective value of column i. More...
 
obj (const SPxColId &id) const
 Returns objective value of column with identifier id. More...
 
objUnscaled (int i) const
 Returns unscaled objective value of column i. More...
 
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...
 
maxObjUnscaled (int i) const
 Returns unscaled objective value of column i for maximization problem. More...
 
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...
 
upperUnscaled (int i) const
 Returns unscaled upper bound of column i. More...
 
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...
 
lowerUnscaled (int i) const
 Returns unscaled lower bound of column i. More...
 
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

SPxOutspxout
 

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)
 
- Protected Member Functions inherited from LPRowSetBase< R >
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...
 
- Protected Member Functions inherited from SVSetBase< R >
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...
 
- Protected Member Functions inherited from ClassArray< Nonzero< R > >
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...
 
ClassArrayoperator= (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...
 
- Protected Member Functions inherited from LPColSetBase< R >
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...
 
offset
 offset computed, e.g., in simplification step More...
 
bool _isScaled
 true, if scaling has been performed More...
 
SPxScalerlp_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

- Protected Attributes inherited from LPRowSetBase< R >
DataArray< int > scaleExp
 row scaling factors (stored as bitshift) More...
 
- Protected Attributes inherited from ClassArray< Nonzero< R > >
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...
 
- Protected Attributes inherited from LPColSetBase< R >
DataArray< int > scaleExp
 column scaling factors (stored as bitshift) More...
 

Detailed Description

template<class R>
class soplex::SPxLPBase< R >

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:

  • SVSetBases for both columns and rows
  • objective Vector
  • upper and lower bound Vectors for variables ( \(l_c\) and \(u_c\))
  • upper and lower bound Vectors for inequalities ( \(l_r\) and \(u_r\))

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.

Member Enumeration Documentation

◆ SPxSense

enum SPxSense

Optimization sense.

Enumerator
MAXIMIZE 
MINIMIZE 

Definition at line 97 of file spxlpbase.h.

Constructor & Destructor Documentation

◆ SPxLPBase() [1/3]

SPxLPBase ( )

Default constructor.

Definition at line 2590 of file spxlpbase.h.

◆ ~SPxLPBase()

virtual ~SPxLPBase ( )
virtual

Destructor.

Definition at line 2598 of file spxlpbase.h.

◆ SPxLPBase() [2/3]

SPxLPBase ( const SPxLPBase< R > &  old)

Copy constructor.

Definition at line 2602 of file spxlpbase.h.

◆ SPxLPBase() [3/3]

SPxLPBase ( const SPxLPBase< S > &  old)

Copy constructor.

Definition at line 2616 of file spxlpbase.h.

Member Function Documentation

◆ addCol() [1/4]

◆ addCol() [2/4]

virtual void addCol ( const R &  objValue,
const R &  lowerValue,
const SVectorBase< R > &  colVec,
const R &  upperValue,
bool  scale = false 
)
virtual

Definition at line 747 of file spxlpbase.h.

◆ addCol() [3/4]

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.

◆ addCol() [4/4]

virtual void addCol ( SPxColId id,
const LPColBase< R > &  col,
bool  scale = false 
)
virtual

Adds col to LPColSetVBase.

Definition at line 786 of file spxlpbase.h.

◆ addCols() [1/3]

◆ addCols() [2/3]

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 
)
Todo:
implement the addition of new rows as in doAddCols()

Definition at line 800 of file spxlpbase.h.

◆ addCols() [3/3]

virtual void addCols ( SPxColId  id[],
const LPColSetBase< R > &  set,
bool  scale = false 
)
virtual

Adds all LPColBases of set to LPColSetBase.

Definition at line 888 of file spxlpbase.h.

◆ addDualActivity()

virtual void addDualActivity ( const SVectorBase< R > &  dual,
VectorBase< R > &  activity 
) const
virtual

Updates "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero.

Exceptions
SPxInternalCodeExceptionif 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 1784 of file spxlpbase.h.

Referenced by SoPlex::_performOptIRStable().

◆ added2Set()

void added2Set ( SVSetBase< R > &  set,
const SVSetBase< R > &  addset,
int  n 
)
protected

Definition at line 2073 of file spxlpbase.h.

◆ addedCols()

virtual void addedCols ( int  newcols)
protectedvirtual

◆ addedRows()

virtual void addedRows ( int  newrows)
protectedvirtual

◆ addPrimalActivity()

virtual void addPrimalActivity ( const SVectorBase< R > &  primal,
VectorBase< R > &  activity 
) const
virtual

Updates activity of the rows for a given primal vector; activity does not need to be zero.

Exceptions
SPxInternalCodeExceptionif 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 1761 of file spxlpbase.h.

Referenced by SoPlex::_performOptIRStable().

◆ addRow() [1/4]

virtual void addRow ( const LPRowBase< R > &  row,
bool  scale = false 
)
virtual

◆ addRow() [2/4]

virtual void addRow ( const R &  lhsValue,
const SVectorBase< R > &  rowVec,
const R &  rhsValue,
bool  scale = false 
)
virtual

Definition at line 586 of file spxlpbase.h.

◆ addRow() [3/4]

void addRow ( const S *  lhsValue,
const S *  rowValues,
const int *  rowIndices,
int  rowSize,
const S *  rhsValue 
)

Definition at line 593 of file spxlpbase.h.

◆ addRow() [4/4]

virtual void addRow ( SPxRowId id,
const LPRowBase< R > &  row,
bool  scale = false 
)
virtual

Adds row to LPRowSetBase.

Definition at line 628 of file spxlpbase.h.

◆ addRows() [1/3]

◆ addRows() [2/3]

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 
)
Todo:
implement the addition of new columns as in doAddRows()

Definition at line 642 of file spxlpbase.h.

◆ addRows() [3/3]

virtual void addRows ( SPxRowId  id[],
const LPRowSetBase< R > &  set,
bool  scale = false 
)
virtual

adds all LPRowBases of pset to LPRowSetBase.

Definition at line 732 of file spxlpbase.h.

◆ buildDualProblem() [1/3]

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 
)
virtual

Building the dual problem from a given LP.

Note
primalRows must be as large as the number of unranged primal rows + 2 * the number of ranged primal rows. dualCols must have the identical size to the primal rows.

Referenced by SoPlex::_formDecompComplementaryProblem(), SoPlex::_solveDecompositionDualSimplex(), SPxLPBase< Real >::subDualActivity(), and SoPlex::writeDualFileReal().

◆ buildDualProblem() [2/3]

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.

Note
primalRows must be as large as the number of unranged primal rows + 2 * the number of ranged primal rows. dualCols must have the identical size to the primal rows.

Definition at line 2410 of file spxlpbase_rational.cpp.

◆ buildDualProblem() [3/3]

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.

Note
primalRows must be as large as the number of unranged primal rows + 2 * the number of ranged primal rows. dualCols must have the identical size to the primal rows.

Definition at line 2650 of file spxlpbase_real.cpp.

◆ changeBounds() [1/4]

virtual void changeBounds ( const VectorBase< R > &  newLower,
const VectorBase< R > &  newUpper,
bool  scale = false 
)
virtual

Changes variable bounds to newLower and newUpper. scale determines whether the new data should be scaled.

Definition at line 1418 of file spxlpbase.h.

Referenced by SoPlex::_changeBoundsReal(), SoPlex::_lift(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SPxLPBase< Real >::changeBounds(), SoPlex::changeBoundsRational(), SoPlex::changeBoundsReal(), and SPxMainSM::simplifyCols().

◆ changeBounds() [2/4]

virtual void changeBounds ( int  i,
const R &  newLower,
const R &  newUpper,
bool  scale = false 
)
virtual

Changes bounds of column i to newLower and newUpper. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1426 of file spxlpbase.h.

◆ changeBounds() [3/4]

void changeBounds ( int  i,
const S *  newLower,
const S *  newUpper 
)

Changes bounds of column i to newLower and newUpper.

Definition at line 1435 of file spxlpbase.h.

◆ changeBounds() [4/4]

virtual void changeBounds ( SPxColId  id,
const R &  newLower,
const R &  newUpper,
bool  scale = false 
)
virtual

Changes bounds of column with identifier id. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1443 of file spxlpbase.h.

◆ changeCol() [1/2]

virtual void changeCol ( int  n,
const LPColBase< R > &  newCol,
bool  scale = false 
)
virtual

Replaces i 'th column of LP with newCol. scale determines whether the new data should be scaled.

Definition at line 1612 of file spxlpbase.h.

Referenced by SoPlex::_changeColReal(), SPxLPBase< Real >::changeCol(), SoPlex::changeColRational(), and SoPlex::changeColReal().

◆ changeCol() [2/2]

virtual void changeCol ( SPxColId  id,
const LPColBase< R > &  newCol,
bool  scale = false 
)
virtual

Replaces column with identifier id with newCol. scale determines whether the new data should be scaled.

Definition at line 1651 of file spxlpbase.h.

◆ changeElement() [1/3]

virtual void changeElement ( int  i,
int  j,
const R &  val,
bool  scale = false 
)
virtual

Changes LP element (i, j) to val. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1657 of file spxlpbase.h.

Referenced by SoPlex::_changeElementReal(), SoPlex::_lift(), SPxLPBase< Real >::changeElement(), SoPlex::changeElementRational(), SoPlex::changeElementReal(), and SPxMainSM::multiaggregation().

◆ changeElement() [2/3]

void changeElement ( int  i,
int  j,
const S *  val 
)

Changes LP element (i, j) to val.

Definition at line 1700 of file spxlpbase.h.

◆ changeElement() [3/3]

virtual void changeElement ( SPxRowId  rid,
SPxColId  cid,
const R &  val,
bool  scale = false 
)
virtual

Changes LP element identified by (rid, cid) to val. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1731 of file spxlpbase.h.

◆ changeLhs() [1/5]

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.

◆ changeLhs() [2/5]

◆ changeLhs() [3/5]

virtual void changeLhs ( int  i,
const R &  newLhs,
bool  scale = false 
)
virtual

Changes i 'th left hand side value to newLhs. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1457 of file spxlpbase.h.

◆ changeLhs() [4/5]

void changeLhs ( int  i,
const S *  newLhs 
)

Changes i 'th left hand side value to newLhs.

Definition at line 1468 of file spxlpbase.h.

◆ changeLhs() [5/5]

virtual void changeLhs ( SPxRowId  id,
const R &  newLhs,
bool  scale = false 
)
virtual

Changes left hand side value for row with identifier id. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1475 of file spxlpbase.h.

◆ changeLower() [1/5]

void changeLower ( const VectorBase< Real > &  newLower,
bool  scale 
)

Changes vector of lower bounds to newLower.

Definition at line 448 of file spxlpbase_real.cpp.

◆ changeLower() [2/5]

◆ changeLower() [3/5]

virtual void changeLower ( int  i,
const R &  newLower,
bool  scale = false 
)
virtual

changes i 'th lower bound to newLower. scale determines whether the new data should be scaled

Reimplemented in SPxSolver.

Definition at line 1354 of file spxlpbase.h.

◆ changeLower() [4/5]

void changeLower ( int  i,
const S *  newLower 
)

changes i 'th lower bound to newLower.

Definition at line 1369 of file spxlpbase.h.

◆ changeLower() [5/5]

virtual void changeLower ( SPxColId  id,
const R &  newLower,
bool  scale = false 
)
virtual

changes lower bound of column with identifier id to newLower. scale determines whether the new data should be scaled

Reimplemented in SPxSolver.

Definition at line 1376 of file spxlpbase.h.

◆ changeMaxObj() [1/5]

void changeMaxObj ( const VectorBase< Real > &  newObj,
bool  scale 
)

Changes objective vector to newObj.

Definition at line 432 of file spxlpbase_real.cpp.

◆ changeMaxObj() [2/5]

virtual void changeMaxObj ( const VectorBase< R > &  newObj,
bool  scale = false 
)
virtual

Changes objective vector to newObj. scale determines whether the new data should be scaled.

Definition at line 1310 of file spxlpbase.h.

Referenced by SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxLPBase< Real >::changeMaxObj(), SPxLPBase< Real >::changeObj(), and SPxMainSM::multiaggregation().

◆ changeMaxObj() [3/5]

virtual void changeMaxObj ( int  i,
const R &  newVal,
bool  scale = false 
)
virtual

changes i 'th objective vector element to newVal. scale determines whether the new data should be scaled

Reimplemented in SPxSolver.

Definition at line 1318 of file spxlpbase.h.

◆ changeMaxObj() [4/5]

void changeMaxObj ( int  i,
const S *  newVal 
)

changes i 'th objective vector element to newVal.

Definition at line 1333 of file spxlpbase.h.

◆ changeMaxObj() [5/5]

virtual void changeMaxObj ( SPxColId  id,
const R &  newVal,
bool  scale = false 
)
virtual

Changes objective value of column with identifier id to newVal. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1340 of file spxlpbase.h.

◆ changeObj() [1/4]

virtual void changeObj ( const VectorBase< R > &  newObj,
bool  scale = false 
)
virtual

◆ changeObj() [2/4]

virtual void changeObj ( int  i,
const R &  newVal,
bool  scale = false 
)
virtual

changes i 'th objective vector element to newVal. scale determines whether the new data should be scaled

Reimplemented in SPxSolver.

Definition at line 1286 of file spxlpbase.h.

◆ changeObj() [3/4]

void changeObj ( int  i,
const S *  newVal 
)

changes i 'th objective vector element to newVal.

Definition at line 1295 of file spxlpbase.h.

◆ changeObj() [4/4]

virtual void changeObj ( SPxColId  id,
const R &  newVal,
bool  scale = false 
)
virtual

Changes objective value of column with identifier id to newVal. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1304 of file spxlpbase.h.

◆ changeObjOffset()

◆ changeRange() [1/4]

virtual void changeRange ( const VectorBase< R > &  newLhs,
const VectorBase< R > &  newRhs,
bool  scale = false 
)
virtual

◆ changeRange() [2/4]

virtual void changeRange ( int  i,
const R &  newLhs,
const R &  newRhs,
bool  scale = false 
)
virtual

Changes left and right hand side of row i. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1513 of file spxlpbase.h.

◆ changeRange() [3/4]

void changeRange ( int  i,
const S *  newLhs,
const S *  newRhs 
)

Changes left and right hand side of row i.

Definition at line 1522 of file spxlpbase.h.

◆ changeRange() [4/4]

virtual void changeRange ( SPxRowId  id,
const R &  newLhs,
const R &  newRhs,
bool  scale = false 
)
virtual

Changes left and right hand side of row with identifier id. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1530 of file spxlpbase.h.

◆ changeRhs() [1/4]

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.

◆ changeRhs() [2/4]

◆ changeRhs() [3/4]

virtual void changeRhs ( int  i,
const R &  newRhs,
bool  scale = false 
)
virtual

Changes i 'th right hand side value to newRhs. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1489 of file spxlpbase.h.

◆ changeRhs() [4/4]

virtual void changeRhs ( SPxRowId  id,
const R &  newRhs,
bool  scale = false 
)
virtual

Changes right hand side value for row with identifier id. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1499 of file spxlpbase.h.

◆ changeRow() [1/2]

virtual void changeRow ( int  n,
const LPRowBase< R > &  newRow,
bool  scale = false 
)
virtual

Replaces i 'th row of LP with newRow. scale determines whether the new data should be scaled.

Definition at line 1567 of file spxlpbase.h.

Referenced by SoPlex::_changeRowReal(), SoPlex::_getCompatibleColumns(), SPxLPBase< Real >::changeRow(), SoPlex::changeRowRational(), and SoPlex::changeRowReal().

◆ changeRow() [2/2]

virtual void changeRow ( SPxRowId  id,
const LPRowBase< R > &  newRow,
bool  scale = false 
)
virtual

Replaces row with identifier id with newRow. scale determines whether the new data should be scaled.

Definition at line 1606 of file spxlpbase.h.

◆ changeRowObj() [1/3]

virtual void changeRowObj ( const VectorBase< R > &  newRowObj,
bool  scale = false 
)
virtual

Changes row objective function vector to newRowObj. scale determines whether the new data should be scaled.

Definition at line 1536 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::changeRow(), SPxLPBase< Real >::changeRowObj(), and SPxMainSM::handleRowObjectives().

◆ changeRowObj() [2/3]

virtual void changeRowObj ( int  i,
const R &  newRowObj,
bool  scale = false 
)
virtual

Changes i 'th row objective function value to newRowObj. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1546 of file spxlpbase.h.

◆ changeRowObj() [3/3]

virtual void changeRowObj ( SPxRowId  id,
const R &  newRowObj,
bool  scale = false 
)
virtual

Changes row objective function value for row with identifier id. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1555 of file spxlpbase.h.

◆ changeSense()

virtual void changeSense ( SPxSense  sns)
virtual

Changes optimization sense to sns.

Reimplemented in SPxSolver.

Definition at line 1737 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::buildDualProblem(), and SoPlex::setIntParam().

◆ changeUpper() [1/5]

void changeUpper ( const VectorBase< Real > &  newUpper,
bool  scale 
)

Changes vector of upper bounds to newUpper.

Definition at line 465 of file spxlpbase_real.cpp.

◆ changeUpper() [2/5]

◆ changeUpper() [3/5]

virtual void changeUpper ( int  i,
const R &  newUpper,
bool  scale = false 
)
virtual

Changes i 'th upper bound to newUpper. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1390 of file spxlpbase.h.

◆ changeUpper() [4/5]

void changeUpper ( int  i,
const S *  newUpper 
)

Changes i 'th upper bound to newUpper.

Definition at line 1405 of file spxlpbase.h.

◆ changeUpper() [5/5]

virtual void changeUpper ( SPxColId  id,
const R &  newUpper,
bool  scale = false 
)
virtual

Changes upper bound of column with identifier id to newLower. scale determines whether the new data should be scaled.

Reimplemented in SPxSolver.

Definition at line 1412 of file spxlpbase.h.

◆ cId()

◆ clear()

virtual void clear ( )
virtual

◆ clearRowObjs()

virtual void clearRowObjs ( )
virtual

Clears row objective function values for all rows.

Reimplemented in SPxSolver.

Definition at line 1561 of file spxlpbase.h.

◆ colVector() [1/2]

◆ colVector() [2/2]

const SVectorBase<R>& colVector ( const SPxColId id) const

Returns column vector of column with identifier id.

Definition at line 379 of file spxlpbase.h.

◆ colVector_w()

◆ computeDualActivity() [1/3]

void computeDualActivity ( const VectorBase< Rational > &  dual,
VectorBase< Rational > &  activity,
const bool  unscaled 
) const

Definition at line 76 of file spxlpbase_rational.cpp.

◆ computeDualActivity() [2/3]

void computeDualActivity ( const VectorBase< Real > &  dual,
VectorBase< Real > &  activity,
const bool  unscaled 
) const

Definition at line 95 of file spxlpbase_real.cpp.

◆ computeDualActivity() [3/3]

virtual void computeDualActivity ( const VectorBase< R > &  dual,
VectorBase< R > &  activity,
const bool  unscaled = true 
) const
virtual

Computes "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero.

Exceptions
SPxInternalCodeExceptionif 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().

◆ computePrimalActivity() [1/3]

void computePrimalActivity ( const VectorBase< Rational > &  primal,
VectorBase< Rational > &  activity,
const bool  unscaled 
) const

Definition at line 38 of file spxlpbase_rational.cpp.

◆ computePrimalActivity() [2/3]

void computePrimalActivity ( const VectorBase< Real > &  primal,
VectorBase< Real > &  activity,
const bool  unscaled 
) const

Definition at line 47 of file spxlpbase_real.cpp.

◆ computePrimalActivity() [3/3]

virtual void computePrimalActivity ( const VectorBase< R > &  primal,
VectorBase< R > &  activity,
const bool  unscaled = true 
) const
virtual

Computes activity of the rows for a given primal vector; activity does not need to be zero.

Exceptions
SPxInternalCodeExceptionif 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(), and SoPlex::getRowViolationReal().

◆ doAddCol() [1/2]

void doAddCol ( const LPColBase< R > &  col,
bool  scale = false 
)
private

Definition at line 2363 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::addCol().

◆ doAddCol() [2/2]

void doAddCol ( const R &  objValue,
const R &  lowerValue,
const SVectorBase< R > &  colVec,
const R &  upperValue,
bool  scale = false 
)
private

Definition at line 2420 of file spxlpbase.h.

◆ doAddCols()

void doAddCols ( const LPColSetBase< R > &  set,
bool  scale = false 
)
private

Definition at line 2476 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::addCols().

◆ doAddRow() [1/2]

void doAddRow ( const LPRowBase< R > &  row,
bool  scale = false 
)
private

Definition at line 2145 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::addRow().

◆ doAddRow() [2/2]

void doAddRow ( const R &  lhsValue,
const SVectorBase< R > &  rowVec,
const R &  rhsValue,
bool  scale = false 
)
private

Definition at line 2200 of file spxlpbase.h.

◆ doAddRows()

void doAddRows ( const LPRowSetBase< R > &  set,
bool  scale = false 
)
private

Definition at line 2255 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::addRows().

◆ doRemoveCol()

virtual void doRemoveCol ( int  j)
protectedvirtual

Internal helper method.

Reimplemented in SPxSolver.

Definition at line 2004 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::removeCol().

◆ doRemoveCols()

virtual void doRemoveCols ( int  perm[])
protectedvirtual

Internal helper method.

Reimplemented in SPxSolver.

Definition at line 2043 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::removeCols().

◆ doRemoveRow()

virtual void doRemoveRow ( int  j)
protectedvirtual

Internal helper method.

Reimplemented in SPxSolver.

Definition at line 1948 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::removeRow().

◆ doRemoveRows()

virtual void doRemoveRows ( int  perm[])
protectedvirtual

Internal helper method.

Reimplemented in SPxSolver.

Definition at line 1983 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::removeRows().

◆ getCol() [1/2]

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().

◆ getCol() [2/2]

void getCol ( const SPxColId id,
LPColBase< R > &  col 
) const

Gets column with identifier id.

Definition at line 345 of file spxlpbase.h.

◆ getCols()

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().

◆ getColVectorUnscaled() [1/4]

void getColVectorUnscaled ( int  i,
DSVectorBase< Real > &  vec 
) const

Gets column vector of column i.

Definition at line 297 of file spxlpbase_real.cpp.

◆ getColVectorUnscaled() [2/4]

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.

◆ getColVectorUnscaled() [3/4]

void getColVectorUnscaled ( int  i,
DSVectorBase< Real > &  vec 
) const

◆ getColVectorUnscaled() [4/4]

void getColVectorUnscaled ( const SPxColId id,
DSVectorBase< Real > &  vec 
) const

Gets column vector of column with identifier id.

◆ getLhsUnscaled() [1/2]

void getLhsUnscaled ( VectorBase< Real > &  vec) const

Returns unscaled left hand side vector.

Definition at line 268 of file spxlpbase_real.cpp.

◆ getLhsUnscaled() [2/2]

void getLhsUnscaled ( VectorBase< Real > &  vec) const

Returns unscaled left hand side vector.

Referenced by SoPlex::getLhsReal(), SPxLPBase< Real >::getLhsUnscaled(), and SPxLPBase< Real >::maxRowObj().

◆ getLowerUnscaled() [1/2]

void getLowerUnscaled ( DVector vec) const

Returns unscaled lower bound vector.

Definition at line 403 of file spxlpbase_real.cpp.

◆ getLowerUnscaled() [2/2]

void getLowerUnscaled ( DVector vec) const

Gets unscaled lower bound vector.

Referenced by SoPlex::getLowerReal(), SPxLPBase< Real >::getLowerUnscaled(), and SPxLPBase< Real >::lower().

◆ getObj()

void getObj ( VectorBase< R > &  pobj) const

◆ getObjUnscaled() [1/2]

void getObjUnscaled ( VectorBase< Real > &  pobj) const

Gets unscaled objective vector.

Definition at line 210 of file spxlpbase_real.cpp.

◆ getObjUnscaled() [2/2]

void getObjUnscaled ( VectorBase< Real > &  pobj) const

Gets unscaled objective vector.

Referenced by SPxLPBase< Real >::colVector(), and SoPlex::getObjReal().

◆ getRhs()

void getRhs ( VectorBase< R > &  vec) const

Gets (internal and possibly scaled) right hand side vector.

Definition at line 238 of file spxlpbase.h.

◆ getRhsUnscaled() [1/2]

void getRhsUnscaled ( VectorBase< Real > &  vec) const

Gets unscaled right hand side vector.

Definition at line 239 of file spxlpbase_real.cpp.

◆ getRhsUnscaled() [2/2]

void getRhsUnscaled ( VectorBase< Real > &  vec) const

Gets unscaled right hand side vector.

Referenced by SPxLPBase< Real >::getRhs(), SoPlex::getRhsReal(), and SPxLPBase< Real >::getRhsUnscaled().

◆ getRow() [1/2]

◆ getRow() [2/2]

void getRow ( const SPxRowId id,
LPRowBase< R > &  row 
) const

Gets row with identifier id.

Definition at line 189 of file spxlpbase.h.

◆ getRowObj()

void getRowObj ( VectorBase< R > &  prowobj) const

Gets row objective function vector.

Definition at line 271 of file spxlpbase.h.

◆ getRows()

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().

◆ getRowVectorUnscaled() [1/2]

void getRowVectorUnscaled ( int  i,
DSVectorBase< Real > &  vec 
) const

Gets unscaled row vector of row i.

Referenced by SoPlex::_checkScaling(), and SPxLPBase< Real >::rowVector().

◆ getRowVectorUnscaled() [2/2]

void getRowVectorUnscaled ( int  i,
DSVectorBase< Real > &  vec 
) const

Gets unscaled row vector of row i.

Definition at line 228 of file spxlpbase_real.cpp.

◆ getUpperUnscaled() [1/2]

void getUpperUnscaled ( DVector vec) const

Returns unscaled upper bound vector.

Definition at line 374 of file spxlpbase_real.cpp.

◆ getUpperUnscaled() [2/2]

void getUpperUnscaled ( DVector vec) const

Gets unscaled upper bound vector.

Referenced by SoPlex::getUpperReal(), SPxLPBase< Real >::getUpperUnscaled(), and SPxLPBase< Real >::upper().

◆ has() [1/3]

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().

◆ has() [2/3]

bool has ( const SPxColId id) const

Returns the column number of the column with identifier id.

Definition at line 548 of file spxlpbase.h.

◆ has() [3/3]

bool has ( const SPxId id) const

Returns the row or column number for identifier id.

Definition at line 554 of file spxlpbase.h.

◆ isConsistent()

◆ isScaled()

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().

◆ lhs() [1/3]

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(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SPxLPBase< Real >::changeLhs(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeRangeRational(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SPxMainSM::checkSolution(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxBasis::dualRowStatus(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxBoundFlippingRT::flipAndUpdate(), SPxMainSM::FreeZeroObjVariablePS::FreeZeroObjVariablePS(), SoPlex::getDecompRowViolation(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOriginalProblemStatistics(), SoPlex::getOrigVarFixedDirection(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::getRows(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), SoPlex::lhsRational(), SoPlex::lhsRealInternal(), soplex::LPFwriteRows(), SPxMainSM::multiaggregation(), SPxLPBase< Real >::printProblemStatistics(), SoPlexLegacy::qualConstraintViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxWeightST::setPrimalStatus(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::trivialHeuristic(), and SPxScaler::unscale().

◆ lhs() [2/3]

const R& lhs ( int  i) const

Returns left hand side of row number i.

Definition at line 259 of file spxlpbase.h.

◆ lhs() [3/3]

const R& lhs ( const SPxRowId id) const

Returns left hand side of row with identifier id.

Definition at line 265 of file spxlpbase.h.

◆ lhs_w()

R& lhs_w ( int  i)
protected

Returns left hand side of row i.

Definition at line 1900 of file spxlpbase.h.

Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().

◆ lhsUnscaled() [1/4]

Real lhsUnscaled ( int  i) const

Returns unscaled left hand side of row number i.

Definition at line 278 of file spxlpbase_real.cpp.

◆ lhsUnscaled() [2/4]

Real lhsUnscaled ( const SPxRowId id) const

Returns left hand side of row with identifier id.

Definition at line 289 of file spxlpbase_real.cpp.

◆ lhsUnscaled() [3/4]

R lhsUnscaled ( int  i) const

Returns unscaled left hand side of row number i.

Referenced by SoPlex::_checkScaling(), SoPlex::getRowViolationReal(), SoPlex::lhsReal(), and SPxLPBase< Real >::maxRowObj().

◆ lhsUnscaled() [4/4]

R lhsUnscaled ( const SPxRowId id) const

Returns left hand side of row with identifier id.

◆ lower() [1/3]

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(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SoPlex::changeBoundsRational(), SPxLPBase< Real >::changeLower(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), 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(), SoPlex::getOriginalProblemStatistics(), SPxMainSM::handleExtremes(), SoPlex::lowerRational(), SoPlex::lowerRealInternal(), soplex::LPFwriteBounds(), SPxMainSM::multiaggregation(), soplex::primalColStatus(), SPxLPBase< Real >::printProblemStatistics(), SPxMainSM::propagatePseudoobj(), SoPlexLegacy::qualBoundViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxSumST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), and SPxBasis::writeBasis().

◆ lower() [2/3]

const R& lower ( int  i) const

Returns (internal and possibly scaled) lower bound of column i.

Definition at line 489 of file spxlpbase.h.

◆ lower() [3/3]

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.

◆ lower_w()

R& lower_w ( int  i)
protected

Returns lower bound of column i.

Definition at line 1924 of file spxlpbase.h.

Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().

◆ lowerUnscaled() [1/4]

Real lowerUnscaled ( int  i) const

Returns unscaled lower bound of column i.

Definition at line 413 of file spxlpbase_real.cpp.

◆ lowerUnscaled() [2/4]

Real lowerUnscaled ( const SPxColId id) const

Returns unscaled lower bound of column with identifier id.

Definition at line 424 of file spxlpbase_real.cpp.

◆ lowerUnscaled() [3/4]

R lowerUnscaled ( int  i) const

Returns unscaled lower bound of column i.

Referenced by SoPlex::_checkScaling(), SoPlex::getBoundViolationReal(), SPxLPBase< Real >::lower(), and SoPlex::lowerReal().

◆ lowerUnscaled() [4/4]

R lowerUnscaled ( const SPxColId id) const

Returns unscaled lower bound of column with identifier id.

◆ lpcolset()

const LPColSetBase<R>* lpcolset ( ) const
protected

Returns the LP as an LPColSetBase.

Definition at line 1942 of file spxlpbase.h.

◆ lprowset()

const LPRowSetBase<R>* lprowset ( ) const
protected

Returns the LP as an LPRowSetBase.

Definition at line 1936 of file spxlpbase.h.

◆ maxAbsNzo() [1/3]

Rational maxAbsNzo ( bool  ) const

Definition at line 114 of file spxlpbase_rational.cpp.

◆ maxAbsNzo() [2/3]

Real maxAbsNzo ( bool  unscaled) const

Definition at line 143 of file spxlpbase_real.cpp.

◆ maxAbsNzo() [3/3]

virtual R maxAbsNzo ( bool  unscaled = true) const
virtual

◆ maxObj() [1/3]

◆ maxObj() [2/3]

const R& maxObj ( int  i) const

Returns objective value of column i for maximization problem.

Definition at line 435 of file spxlpbase.h.

◆ maxObj() [3/3]

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.

◆ maxObj_w()

R& maxObj_w ( int  i)
protected

Returns objective value of column i for maximization problem.

Definition at line 1912 of file spxlpbase.h.

Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().

◆ maxObjUnscaled() [1/6]

void maxObjUnscaled ( VectorBase< Real > &  vec) const

Returns unscaled objective vector for maximization problem.

Definition at line 345 of file spxlpbase_real.cpp.

◆ maxObjUnscaled() [2/6]

Real maxObjUnscaled ( int  i) const

Returns unscaled objective value of column i for maximization problem.

Definition at line 355 of file spxlpbase_real.cpp.

◆ maxObjUnscaled() [3/6]

Real maxObjUnscaled ( const SPxColId id) const

Returns unscaled objective value of column with identifier id for maximization problem.

Definition at line 366 of file spxlpbase_real.cpp.

◆ maxObjUnscaled() [4/6]

void maxObjUnscaled ( VectorBase< Real > &  vec) const

Returns unscaled objective vector for maximization problem.

Referenced by SPxLPBase< Real >::maxObj(), and SoPlex::maxObjReal().

◆ maxObjUnscaled() [5/6]

R maxObjUnscaled ( int  i) const

Returns unscaled objective value of column i for maximization problem.

◆ maxObjUnscaled() [6/6]

R maxObjUnscaled ( const SPxColId id) const

Returns unscaled objective value of column with identifier id for maximization problem.

◆ maxRowObj() [1/3]

◆ maxRowObj() [2/3]

const R& maxRowObj ( int  i) const

Definition at line 303 of file spxlpbase.h.

◆ maxRowObj() [3/3]

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.

◆ maxRowObj_w()

R& maxRowObj_w ( int  i)
protected

Returns objective function value of row i.

Definition at line 1906 of file spxlpbase.h.

Referenced by SPxScaler::applyScaling(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), and SPxScaler::unscale().

◆ minAbsNzo() [1/3]

Rational minAbsNzo ( bool  ) const

Definition at line 132 of file spxlpbase_rational.cpp.

◆ minAbsNzo() [2/3]

virtual R minAbsNzo ( bool  unscaled = true) const
virtual

◆ minAbsNzo() [3/3]

Real minAbsNzo ( bool  unscaled) const

Definition at line 176 of file spxlpbase_real.cpp.

◆ nCols()

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(), SoPlex::checkBasisDualFeasibility(), 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(), SoPlexLegacy::getBasis(), SPxScaler::getCoefUnscaled(), SPxScaler::getColMaxAbsUnscaled(), SPxScaler::getColMinAbsUnscaled(), SoPlexLegacy::getColName(), soplex::getColName(), SPxScaler::getColUnscaled(), SoPlex::getDecompBoundViolation(), SoPlex::getDecompRowViolation(), SoPlex::getOriginalProblemBasisColStatus(), SoPlex::getOriginalProblemStatistics(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::initPrefs(), 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(), SoPlex::numColsRational(), SoPlex::numColsReal(), SoPlexLegacy::objValue(), SoPlex::printDecompDisplayLine(), SPxLPBase< Real >::printProblemStatistics(), SPxMainSM::propagatePseudoobj(), SoPlexLegacy::qualBoundViolation(), SoPlexLegacy::qualConstraintViolation(), 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(), SoPlexLegacy::setBasis(), SoPlex::setBasis(), SoPlex::setIntegralityInformation(), SPxScaler::setup(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SoPlexLegacy::solve(), SPxLPBase< Real >::subDualActivity(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SoPlexLegacy::unsimplify(), SPxScaler::upperUnscaled(), SPxBasis::writeBasis(), and SoPlexLegacy::writeBasisFile().

◆ nNzos()

◆ nRows()

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(), SPxMainSM::checkSolution(), 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(), SoPlexLegacy::getBasis(), SPxScaler::getCoefUnscaled(), SoPlex::getDecompRowViolation(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOriginalProblemStatistics(), SPxScaler::getRowMaxAbsUnscaled(), SPxScaler::getRowMinAbsUnscaled(), SoPlexLegacy::getRowName(), SPxScaler::getRowUnscaled(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::initPrefs(), 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(), SoPlex::numRowsRational(), SoPlex::numRowsReal(), SPxLPBase< Real >::printProblemStatistics(), SoPlexLegacy::qualConstraintViolation(), 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(), SoPlexLegacy::setBasis(), SoPlex::setBasis(), SPxScaler::setup(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SoPlexLegacy::solve(), SPxLPBase< Real >::subDualActivity(), SPxScaler::unscale(), SoPlexLegacy::unsimplify(), SPxBasis::writeBasis(), and SoPlexLegacy::writeBasisFile().

◆ number() [1/3]

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(), SPxWeightPR::computeLeavePenalty(), SPxBasis::dump(), SPxBoundFlippingRT::flipAndUpdate(), SPxWeightST::generate(), SoPlex::getBasisInd(), SoPlex::getBasisInverseColReal(), SoPlex::getBasisInverseRowReal(), SoPlex::getBasisInverseTimesVecReal(), SPxLPBase< Real >::getCol(), SoPlex::getCompSlackVarCoeff(), SoPlex::getOriginalProblemBasisColStatus(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOrigVarFixedDirection(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::maxObj(), SoPlex::multBasis(), SoPlex::multBasisTranspose(), SPxLPBase< Real >::obj(), SPxLPBase< Real >::removeCol(), SPxLPBase< Real >::removeCols(), SPxLPBase< Real >::removeRow(), SPxLPBase< Real >::removeRows(), SPxParMultPR::selectEnter(), SPxFastRT::selectEnter(), SPxFastRT::selectLeave(), SPxBoundFlippingRT::selectLeave(), soplex::setDualStatus(), and SPxWeightST::setPrimalStatus().

◆ number() [2/3]

int number ( const SPxColId id) const

Returns the column number of the column with identifier id.

Definition at line 528 of file spxlpbase.h.

◆ number() [3/3]

int number ( const SPxId id) const

Returns the row or column number for identifier id.

Definition at line 534 of file spxlpbase.h.

◆ obj() [1/2]

◆ obj() [2/2]

R obj ( const SPxColId id) const

Returns objective value of column with identifier id.

Definition at line 413 of file spxlpbase.h.

◆ objOffset()

const R& objOffset ( ) const

Returns the objective function value offset.

Definition at line 516 of file spxlpbase.h.

Referenced by SoPlex::printDecompDisplayLine().

◆ objUnscaled() [1/4]

Real objUnscaled ( int  i) const

Returns unscaled objective value of column i.

Definition at line 316 of file spxlpbase_real.cpp.

◆ objUnscaled() [2/4]

Real objUnscaled ( const SPxColId id) const

Returns unscaled objective value of column with identifier id.

Definition at line 337 of file spxlpbase_real.cpp.

◆ objUnscaled() [3/4]

R objUnscaled ( int  i) const

Returns unscaled objective value of column i.

Referenced by SoPlex::_checkScaling(), SPxLPBase< Real >::obj(), and SoPlex::objReal().

◆ objUnscaled() [4/4]

R objUnscaled ( const SPxColId id) const

Returns unscaled objective value of column with identifier id.

◆ operator=() [1/2]

SPxLPBase<R>& operator= ( const SPxLPBase< R > &  old)

Assignment operator.

Definition at line 2629 of file spxlpbase.h.

◆ operator=() [2/2]

SPxLPBase<R>& operator= ( const SPxLPBase< S > &  old)

Assignment operator.

Definition at line 2649 of file spxlpbase.h.

◆ printProblemStatistics()

void printProblemStatistics ( std::ostream &  os)

prints problem statistics

Definition at line 1192 of file spxlpbase.h.

Referenced by SoPlex::printStatistics().

◆ read()

virtual bool read ( std::istream &  in,
NameSet rowNames = 0,
NameSet colNames = 0,
DIdxSet intVars = 0 
)
virtual

Reads LP in LP or MPS format from input stream in.

Parameters
ininput stream.
rowNamescontains 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.
colNamescontains 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.
intVarscontains 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.
Todo:
Make sure the Id's in the NameSets are the same as in the LP.

Reimplemented in SPxSolver.

Definition at line 1134 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::readFile().

◆ readFile()

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

Reads LP from a file.

Definition at line 1154 of file spxlpbase.h.

Referenced by SoPlex::_readFileRational(), and SoPlex::_readFileReal().

◆ readLPF() [1/3]

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.

Returns
true if the file was read correctly

< 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).

Parameters
p_inputinput stream.
p_rnamesrow names.
p_cnamescolumn names.
p_intvarsinteger variables.

Definition at line 531 of file spxlpbase_rational.cpp.

◆ readLPF() [2/3]

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.

Returns
true if the file was read correctly

< 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).

Parameters
p_inputinput stream.
p_rnamesrow names.
p_cnamescolumn names.
p_intvarsinteger variables.

Definition at line 865 of file spxlpbase_real.cpp.

◆ readLPF() [3/3]

virtual bool readLPF ( std::istream &  in,
NameSet rowNames = 0,
NameSet colNames = 0,
DIdxSet intVars = 0 
)
virtual

Reads LP in LP format from input stream in.

Referenced by SPxLPBase< Real >::clear(), and SPxLPBase< Real >::read().

◆ readMPS() [1/3]

virtual bool readMPS ( std::istream &  in,
NameSet rowNames = 0,
NameSet colNames = 0,
DIdxSet intVars = 0 
)
virtual

Reads an LP in MPS format from input stream in.

Referenced by SPxLPBase< Real >::clear(), and SPxLPBase< Real >::read().

◆ readMPS() [2/3]

bool readMPS ( std::istream &  p_input,
NameSet p_rnames,
NameSet p_cnames,
DIdxSet p_intvars 
)
Parameters
p_inputinput stream.
p_rnamesrow names.
p_cnamescolumn names.
p_intvarsinteger variables.

Definition at line 1678 of file spxlpbase_rational.cpp.

◆ readMPS() [3/3]

bool readMPS ( std::istream &  p_input,
NameSet p_rnames,
NameSet p_cnames,
DIdxSet p_intvars 
)
Parameters
p_inputinput stream.
p_rnamesrow names.
p_cnamescolumn names.
p_intvarsinteger variables.

Definition at line 1978 of file spxlpbase_real.cpp.

◆ removeCol() [1/2]

◆ removeCol() [2/2]

virtual void removeCol ( SPxColId  id)
virtual

Removes column with identifier id.

Definition at line 1010 of file spxlpbase.h.

◆ removeColRange()

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

Removes columns from start to end (including both).

Definition at line 1071 of file spxlpbase.h.

Referenced by SoPlex::_project(), and SoPlex::_untransformEquality().

◆ removeCols() [1/3]

virtual void removeCols ( int  perm[])
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().

◆ removeCols() [2/3]

virtual void removeCols ( SPxColId  id[],
int  n,
int  perm[] = 0 
)
virtual

Definition at line 1026 of file spxlpbase.h.

◆ removeCols() [3/3]

virtual void removeCols ( int  nums[],
int  n,
int  perm[] = 0 
)
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.

◆ removeRow() [1/2]

◆ removeRow() [2/2]

virtual void removeRow ( SPxRowId  id)
virtual

Removes row with identifier id.

Definition at line 913 of file spxlpbase.h.

◆ removeRowRange()

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

Removes rows from start to end (including both).

Definition at line 974 of file spxlpbase.h.

Referenced by SoPlex::_project().

◆ removeRows() [1/3]

virtual void removeRows ( int  perm[])
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().

◆ removeRows() [2/3]

virtual void removeRows ( SPxRowId  id[],
int  n,
int  perm[] = 0 
)
virtual

Definition at line 929 of file spxlpbase.h.

◆ removeRows() [3/3]

virtual void removeRows ( int  nums[],
int  n,
int  perm[] = 0 
)
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.

◆ rhs() [1/3]

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(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SoPlex::changeLhsRational(), SoPlex::changeLhsReal(), SoPlex::changeRangeRational(), SPxLPBase< Real >::changeRhs(), SoPlex::changeRhsRational(), SoPlex::changeRhsReal(), SPxMainSM::checkSolution(), SPxLPBase< Real >::doAddRow(), SPxLPBase< Real >::doAddRows(), SPxBasis::dualRowStatus(), SPxMainSM::duplicateRows(), SPxMainSM::fixColumn(), SPxBoundFlippingRT::flipAndUpdate(), SPxMainSM::FreeZeroObjVariablePS::FreeZeroObjVariablePS(), SoPlex::getDecompRowViolation(), SoPlex::getOriginalProblemBasisRowStatus(), SoPlex::getOriginalProblemStatistics(), SoPlex::getOrigVarFixedDirection(), SPxLPBase< Real >::getRow(), SPxLPBase< Real >::getRows(), SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::LPFwriteRows(), SPxMainSM::multiaggregation(), SPxLPBase< Real >::printProblemStatistics(), SoPlexLegacy::qualConstraintViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SoPlex::rhsRational(), SoPlex::rhsRealInternal(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxWeightST::setPrimalStatus(), SPxSumST::setupWeights(), SPxVectorST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::trivialHeuristic(), and SPxScaler::unscale().

◆ rhs() [2/3]

const R& rhs ( int  i) const

Returns right hand side of row number i.

Definition at line 225 of file spxlpbase.h.

◆ rhs() [3/3]

const R& rhs ( const SPxRowId id) const

Returns right hand side of row with identifier id.

Definition at line 232 of file spxlpbase.h.

◆ rhs_w()

R& rhs_w ( int  i)
protected

Returns right hand side of row i.

Definition at line 1894 of file spxlpbase.h.

Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().

◆ rhsUnscaled() [1/4]

R rhsUnscaled ( int  i) const

Returns unscaled right hand side of row number i.

Referenced by SoPlex::_checkScaling(), SPxLPBase< Real >::getRhs(), SoPlex::getRowViolationReal(), and SoPlex::rhsReal().

◆ rhsUnscaled() [2/4]

Real rhsUnscaled ( int  i) const

Returns unscaled right hand side of row number i.

Definition at line 249 of file spxlpbase_real.cpp.

◆ rhsUnscaled() [3/4]

R rhsUnscaled ( const SPxRowId id) const

Returns unscaled right hand side of row with identifier id.

◆ rhsUnscaled() [4/4]

Real rhsUnscaled ( const SPxRowId id) const

Returns unscaled right hand side of row with identifier id.

Definition at line 260 of file spxlpbase_real.cpp.

◆ rId()

◆ rowObj() [1/2]

◆ rowObj() [2/2]

R rowObj ( const SPxRowId id) const

Returns row objective function value of row with identifier id.

Definition at line 288 of file spxlpbase.h.

◆ rowType() [1/2]

◆ rowType() [2/2]

LPRowBase<R>::Type rowType ( const SPxRowId id) const

Returns the inequality type of the row with identifier key.

Definition at line 330 of file spxlpbase.h.

◆ rowVector() [1/2]

◆ rowVector() [2/2]

const SVectorBase<R>& rowVector ( const SPxRowId id) const

Gets row vector of row with identifier id.

Definition at line 210 of file spxlpbase.h.

◆ rowVector_w()

◆ setOutstream()

◆ setScalingInfo()

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()

◆ subDualActivity()

virtual void subDualActivity ( const VectorBase< R > &  dual,
VectorBase< R > &  activity 
) const
virtual

Updates "dual" activity of the columns for a given dual vector, i.e., y^T A; activity does not need to be zero.

Exceptions
SPxInternalCodeExceptionif 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 1802 of file spxlpbase.h.

Referenced by SoPlex::_performOptIRStable(), and SoPlex::_reconstructSolutionRational().

◆ unscaleLP() [1/2]

void unscaleLP ( )

Definition at line 36 of file spxlpbase_real.cpp.

◆ unscaleLP() [2/2]

void unscaleLP ( )

◆ upper() [1/3]

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(), SPxScaler::applyScaling(), SoPlex::areLPsInSync(), SoPlex::changeBoundsRational(), SoPlex::changeLowerRational(), SoPlex::changeLowerReal(), 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(), SoPlex::getOriginalProblemStatistics(), SPxMainSM::handleExtremes(), soplex::LPFwriteBounds(), SPxMainSM::multiaggregation(), soplex::primalColStatus(), SPxLPBase< Real >::printProblemStatistics(), SPxMainSM::propagatePseudoobj(), SoPlexLegacy::qualBoundViolation(), SPxMainSM::removeEmpty(), SPxMainSM::removeRowSingleton(), SPxBoundFlippingRT::selectEnter(), SPxBoundFlippingRT::selectLeave(), SPxSumST::setupWeights(), SPxWeightST::setupWeights(), SPxMainSM::simplify(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::trivialHeuristic(), SPxScaler::unscale(), SoPlex::upperRational(), SoPlex::upperRealInternal(), and SPxBasis::writeBasis().

◆ upper() [2/3]

const R& upper ( int  i) const

Returns upper bound of column i.

Definition at line 462 of file spxlpbase.h.

◆ upper() [3/3]

const R& upper ( const SPxColId id) const

Returns upper bound of column with identifier id.

Definition at line 468 of file spxlpbase.h.

◆ upper_w()

R& upper_w ( int  i)
protected

Returns upper bound of column i.

Definition at line 1918 of file spxlpbase.h.

Referenced by SPxScaler::applyScaling(), and SPxScaler::unscale().

◆ upperUnscaled() [1/4]

Real upperUnscaled ( int  i) const

Returns unscaled upper bound of column i.

Definition at line 384 of file spxlpbase_real.cpp.

◆ upperUnscaled() [2/4]

Real upperUnscaled ( const SPxColId id) const

Returns unscaled upper bound of column with identifier id.

Definition at line 395 of file spxlpbase_real.cpp.

◆ upperUnscaled() [3/4]

R upperUnscaled ( int  i) const

Returns unscaled upper bound of column i.

Referenced by SoPlex::_checkScaling(), SoPlex::getBoundViolationReal(), SPxLPBase< Real >::upper(), and SoPlex::upperReal().

◆ upperUnscaled() [4/4]

R upperUnscaled ( const SPxColId id) const

Returns unscaled upper bound of column with identifier id.

◆ writeFile()

virtual void writeFile ( const char *  filename,
const NameSet rowNames = 0,
const NameSet colNames = 0,
const DIdxSet p_intvars = 0 
) const
virtual

◆ writeLPF() [1/3]

virtual void writeLPF ( std::ostream &  out,
const NameSet rowNames,
const NameSet colNames,
const DIdxSet p_intvars = 0 
) const
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 >::readFile(), and SPxLPBase< Real >::writeFile().

◆ writeLPF() [2/3]

void writeLPF ( std::ostream &  p_output,
const NameSet p_rnames,
const NameSet p_cnames,
const DIdxSet p_intvars 
) const

Write LP in LP Format.

Parameters
p_outputoutput stream
p_rnamesrow names
p_cnamescolumn names
p_intvarsinteger variables

Definition at line 2109 of file spxlpbase_rational.cpp.

◆ writeLPF() [3/3]

void writeLPF ( std::ostream &  p_output,
const NameSet p_rnames,
const NameSet p_cnames,
const DIdxSet p_intvars 
) const

Write LP in LP Format.

Parameters
p_outputoutput stream
p_rnamesrow names
p_cnamescolumn names
p_intvarsinteger variables

Definition at line 2358 of file spxlpbase_real.cpp.

◆ writeMPS() [1/3]

virtual void writeMPS ( std::ostream &  out,
const NameSet rowNames,
const NameSet colNames,
const DIdxSet p_intvars = 0 
) const
virtual

Writes a file in MPS format to out.

Referenced by SPxLPBase< Real >::readFile(), and SPxLPBase< Real >::writeFile().

◆ writeMPS() [2/3]

void writeMPS ( std::ostream &  p_output,
const NameSet p_rnames,
const NameSet p_cnames,
const DIdxSet p_intvars 
) const

Write LP in MPS format.

Note
There will always be a BOUNDS section, even if there are no bounds.
Parameters
p_outputoutput stream.
p_rnamesrow names.
p_cnamescolumn names.
p_intvarsinteger variables.

Definition at line 2216 of file spxlpbase_rational.cpp.

◆ writeMPS() [3/3]

void writeMPS ( std::ostream &  p_output,
const NameSet p_rnames,
const NameSet p_cnames,
const DIdxSet p_intvars 
) const

Write LP in MPS format.

Note
There will always be a BOUNDS section, even if there are no bounds.
Parameters
p_outputoutput stream.
p_rnamesrow names.
p_cnamescolumn names.
p_intvarsinteger variables.

Definition at line 2459 of file spxlpbase_real.cpp.

Friends And Related Function Documentation

◆ SPxBasis

friend class SPxBasis
friend

Definition at line 83 of file spxlpbase.h.

◆ SPxEquiliSC

friend class SPxEquiliSC
friend

Definition at line 85 of file spxlpbase.h.

◆ SPxGeometSC

friend class SPxGeometSC
friend

Definition at line 87 of file spxlpbase.h.

◆ SPxLeastSqSC

friend class SPxLeastSqSC
friend

Definition at line 86 of file spxlpbase.h.

◆ SPxLPBase

friend class SPxLPBase
friend

Definition at line 82 of file spxlpbase.h.

◆ SPxMainSM

friend class SPxMainSM
friend

Definition at line 88 of file spxlpbase.h.

◆ SPxScaler

friend class SPxScaler
friend

Definition at line 84 of file spxlpbase.h.

Member Data Documentation

◆ _isScaled

bool _isScaled
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().

◆ lp_scaler

SPxScaler* lp_scaler
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().

◆ offset

R offset
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

◆ thesense

SPxSense thesense
private

optimization sense.

Definition at line 111 of file spxlpbase.h.

Referenced by SPxLPBase< Real >::doAddCols(), SPxLPBase< Real >::operator=(), and SPxLPBase< Real >::spxSense().