Scippy

SoPlex

Sequential object-oriented simPlex

LP simplifier for removing uneccessary row/columns.This SPxSimplifier is mainly based on the paper "Presolving in linear programming" by E. Andersen and K. Andersen (Mathematical Programming, 1995). It implements all proposed methods and some other preprocessing techniques for removing redundant rows and columns and bounds. Also infeasibility and unboundedness may be detected. More...

#include <spxmainsm.h>

Inheritance diagram for SPxMainSM:

Classes

class  DoubletonEquationPS
 Postsolves doubleton equations combined with a column singleton. More...
 
class  DuplicateColsPS
 Postsolves duplicate columns. More...
 
class  DuplicateRowsPS
 Postsolves duplicate rows. More...
 
struct  ElementCompare
 comparator for class SVector::Element: compare nonzeros according to value More...
 
class  EmptyConstraintPS
 Postsolves empty constraints. More...
 
class  FixBoundsPS
 Postsolves variable bound fixing. More...
 
class  FixVariablePS
 Postsolves variable fixing. More...
 
class  ForceConstraintPS
 Postsolves forcing constraints. More...
 
class  FreeColSingletonPS
 Postsolves free column singletons. More...
 
class  FreeConstraintPS
 Postsolves unconstraint constraints. More...
 
class  FreeZeroObjVariablePS
 Postsolves the case when constraints are removed due to a variable with zero objective that is free in one direction. More...
 
struct  IdxCompare
 comparator for class SVector::Element: compare nonzeros according to index More...
 
class  PostStep
 Base class for postsolving operations.Class PostStep is an abstract base class providing the interface for operations in the postsolving process. More...
 
class  RowObjPS
 Postsolves row objectives. More...
 
class  RowSingletonPS
 Postsolves row singletons. More...
 
class  ZeroObjColSingletonPS
 Postsolves column singletons with zero objective. More...
 

Public Member Functions

 SPxMainSM (Timer::TYPE ttype=Timer::USER_TIME)
 default constructor. More...
 
 SPxMainSM (const SPxMainSM &old)
 copy constructor. More...
 
SPxMainSMoperator= (const SPxMainSM &rhs)
 assignment operator More...
 
virtual ~SPxMainSM ()
 destructor. More...
 
virtual SPxSimplifierclone () const
 clone function for polymorphism More...
 
virtual Result simplify (SPxLP &lp, Real eps, Real delta)
 simplify SPxLP lp with identical primal and dual feasibility tolerance. More...
 
virtual Result simplify (SPxLP &lp, Real eps, Real ftol, Real otol, bool keepbounds=false)
 simplify SPxLP lp with independent primal and dual feasibility tolerance. More...
 
virtual void unsimplify (const Vector &x, const Vector &y, const Vector &s, const Vector &r, const SPxSolver::VarStatus rows[], const SPxSolver::VarStatus cols[])
 reconstructs an optimal solution for the unsimplified LP. More...
 
virtual Result result () const
 returns result status of the simplification More...
 
virtual bool isUnsimplified () const
 specifies whether an optimal solution has already been unsimplified. More...
 
virtual const VectorunsimplifiedPrimal ()
 returns a reference to the unsimplified primal solution. More...
 
virtual const VectorunsimplifiedDual ()
 returns a reference to the unsimplified dual solution. More...
 
virtual const VectorunsimplifiedSlacks ()
 returns a reference to the unsimplified slack values. More...
 
virtual const VectorunsimplifiedRedCost ()
 returns a reference to the unsimplified reduced costs. More...
 
virtual SPxSolver::VarStatus getBasisRowStatus (int i) const
 gets basis status for a single row. More...
 
virtual SPxSolver::VarStatus getBasisColStatus (int j) const
 gets basis status for a single column. More...
 
virtual void getBasis (SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[], const int rowsSize=-1, const int colsSize=-1) const
 get optimal basis. More...
 
- Public Member Functions inherited from SPxSimplifier
virtual const char * getName () const
 get name of simplifier. More...
 
virtual Real timeUsed () const
 
virtual Real getObjoffset () const
 get objective offset. More...
 
virtual void addObjoffset (const Real val)
 add objective offset. More...
 
virtual void setMinReduction (const Real minRed)
 set minimal reduction threshold to continue simplification More...
 
virtual bool isConsistent () const
 consistency check More...
 
 SPxSimplifier (const char *p_name, Timer::TYPE ttype=Timer::USER_TIME)
 constructor More...
 
 SPxSimplifier (const SPxSimplifier &old)
 copy constructor More...
 
SPxSimplifieroperator= (const SPxSimplifier &rhs)
 assignment operator More...
 
virtual ~SPxSimplifier ()
 destructor. More...
 

Private Types

enum  SimpleStep {
  EMPTY_ROW = 0, FREE_ROW = 1, SINGLETON_ROW = 2, FORCE_ROW = 3,
  EMPTY_COL = 4, FIX_COL = 5, FREE_ZOBJ_COL = 6, ZOBJ_SINGLETON_COL = 7,
  DOUBLETON_ROW = 8, FREE_SINGLETON_COL = 9, DOMINATED_COL = 10, WEAKLY_DOMINATED_COL = 11,
  DUPLICATE_ROW = 12, FIX_DUPLICATE_COL = 13, SUB_DUPLICATE_COL = 14
}
 Different simplification steps. More...
 

Private Member Functions

void handleRowObjectives (SPxLP &lp)
 handle row objectives More...
 
void handleExtremes (SPxLP &lp)
 handles extreme values by setting them to zero or infinity. More...
 
Result removeEmpty (SPxLP &lp)
 removed empty rows and empty columns. More...
 
Result removeRowSingleton (SPxLP &lp, const SVector &row, int &i)
 remove row singletons. More...
 
Result simplifyRows (SPxLP &lp, bool &again)
 performs simplification steps on the rows of the LP. More...
 
Result simplifyCols (SPxLP &lp, bool &again)
 performs simplification steps on the columns of the LP. More...
 
Result simplifyDual (SPxLP &lp, bool &again)
 performs simplification steps on the LP based on dual concepts. More...
 
Result duplicateRows (SPxLP &lp, bool &again)
 removes duplicate rows. More...
 
Result duplicateCols (SPxLP &lp, bool &again)
 removes duplicate columns More...
 
void fixColumn (SPxLP &lp, int i, bool correctIdx=true)
 handles the fixing of a variable. correctIdx is true iff the index mapping has to be updated. More...
 
void removeRow (SPxLP &lp, int i)
 removes a row in the LP. More...
 
void removeCol (SPxLP &lp, int j)
 removes a column in the LP. More...
 
int rIdx (int i) const
 returns for a given row index of the (reduced) LP the corresponding row index in the unsimplified LP. More...
 
int cIdx (int j) const
 returns for a given column index of the (reduced) LP the corresponding column index in the unsimplified LP. More...
 
Real epsZero () const
 
Real feastol () const
 
Real opttol () const
 

Private Attributes

DVector m_prim
 unsimplified primal solution vector. More...
 
DVector m_slack
 unsimplified slack vector. More...
 
DVector m_dual
 unsimplified dual solution vector. More...
 
DVector m_redCost
 unsimplified reduced cost vector. More...
 
DataArray< SPxSolver::VarStatusm_cBasisStat
 basis status of columns. More...
 
DataArray< SPxSolver::VarStatusm_rBasisStat
 basis status of rows. More...
 
DataArray< int > m_cIdx
 column index vector in original LP. More...
 
DataArray< int > m_rIdx
 row index vector in original LP. More...
 
DataArray< PostStep * > m_hist
 vector of presolve history. More...
 
Array< DSVectorm_classSetRows
 stores parallel classes with non-zero colum entry More...
 
Array< DSVectorm_classSetCols
 stores parallel classes with non-zero row entry More...
 
Array< DSVectorm_dupRows
 arrange duplicate rows using bucket sort w.r.t. their pClass values More...
 
Array< DSVectorm_dupCols
 arrange duplicate columns w.r.t. their pClass values More...
 
bool m_postsolved
 status of postsolving. More...
 
Real m_epsilon
 epsilon zero. More...
 
Real m_feastol
 primal feasibility tolerance. More...
 
Real m_opttol
 dual feasibility tolerance. More...
 
DataArray< int > m_stat
 preprocessing history. More...
 
SPxLP::SPxSense m_thesense
 optimization sense. More...
 
bool m_keepbounds
 keep some bounds (for boundflipping) More...
 
int m_addedcols
 columns added by handleRowObjectives() More...
 
Result m_result
 result of the simplification. More...
 

Friends

class FreeConstraintPS
 
class EmptyConstraintPS
 
class RowSingletonPS
 
class ForceConstraintPS
 
class FixVariablePS
 
class FixBoundsPS
 
class FreeZeroObjVariablePS
 
class ZeroObjColSingletonPS
 
class FreeColSingletonPS
 
class DoubletonEquationPS
 
class DuplicateRowsPS
 
class DuplicateColsPS
 

Additional Inherited Members

- Public Types inherited from SPxSimplifier
enum  Result {
  OKAY = 0, INFEASIBLE = 1, DUAL_INFEASIBLE = 2, UNBOUNDED = 3,
  VANISHED = 4
}
 Result of the simplification. More...
 
- Protected Attributes inherited from SPxSimplifier
const char * m_name
 name of the simplifier More...
 
Timerm_timeUsed
 user time used for simplification More...
 
Timer::TYPE m_timerType
 
int m_remRows
 number of removed rows More...
 
int m_remCols
 number of removed columns More...
 
int m_remNzos
 number of removed nonzero coefficients More...
 
int m_chgBnds
 number of changed bounds More...
 
int m_chgLRhs
 number of change right-hand sides More...
 
int m_keptBnds
 number of kept bounds More...
 
int m_keptLRhs
 number of kept left- and right-hand sides More...
 
Real m_objoffset
 objective offset More...
 
Real m_minReduction
 minimal reduction (sum of removed rows/cols) to continue simplification More...
 
SPxOutspxout
 message handler More...
 

Detailed Description

LP simplifier for removing uneccessary row/columns.

This SPxSimplifier is mainly based on the paper "Presolving in linear programming" by E. Andersen and K. Andersen (Mathematical Programming, 1995). It implements all proposed methods and some other preprocessing techniques for removing redundant rows and columns and bounds. Also infeasibility and unboundedness may be detected.

Removed are:

  • empty rows / columns
  • unconstraint rows
  • row singletons
  • forcing rows
  • zero objective column singletons
  • (implied) free column singletons
  • doubleton equations combined with a column singleton
  • (implicitly) fixed columns
  • redundant lhs / rhs
  • redundant variable bounds
  • variables that are free in one direction
  • (weakly) dominated columns
  • duplicate rows / columns

Definition at line 60 of file spxmainsm.h.

Member Enumeration Documentation

enum SimpleStep
private

Different simplification steps.

Enumerator
EMPTY_ROW 
FREE_ROW 
SINGLETON_ROW 
FORCE_ROW 
EMPTY_COL 
FIX_COL 
FREE_ZOBJ_COL 
ZOBJ_SINGLETON_COL 
DOUBLETON_ROW 
FREE_SINGLETON_COL 
DOMINATED_COL 
WEAKLY_DOMINATED_COL 
DUPLICATE_ROW 
FIX_DUPLICATE_COL 
SUB_DUPLICATE_COL 

Definition at line 1052 of file spxmainsm.h.

Constructor & Destructor Documentation

default constructor.

Definition at line 1179 of file spxmainsm.h.

Referenced by SPxMainSM::clone().

SPxMainSM ( const SPxMainSM old)

copy constructor.

Definition at line 1192 of file spxmainsm.h.

References DataArray< T >::append(), SPxMainSM::m_hist, and DataArray< T >::reSize().

virtual ~SPxMainSM ( )
virtual

destructor.

Definition at line 1267 of file spxmainsm.h.

References DataArray< T >::size(), and soplex::spx_free().

Member Function Documentation

int cIdx ( int  j) const
private

returns for a given column index of the (reduced) LP the corresponding column index in the unsimplified LP.

Definition at line 1152 of file spxmainsm.h.

Referenced by SPxMainSM::ForceConstraintPS::execute(), and SPxMainSM::DuplicateColsPS::execute().

virtual SPxSimplifier* clone ( ) const
virtual

clone function for polymorphism

Implements SPxSimplifier.

Definition at line 1280 of file spxmainsm.h.

References SPxMainSM::SPxMainSM().

virtual void getBasis ( SPxSolver::VarStatus  rows[],
SPxSolver::VarStatus  cols[],
const int  rowsSize = -1,
const int  colsSize = -1 
) const
virtual

get optimal basis.

Implements SPxSimplifier.

Definition at line 1349 of file spxmainsm.h.

References DataArray< T >::size().

virtual SPxSolver::VarStatus getBasisColStatus ( int  j) const
virtual

gets basis status for a single column.

Implements SPxSimplifier.

Definition at line 1343 of file spxmainsm.h.

virtual SPxSolver::VarStatus getBasisRowStatus ( int  i) const
virtual

gets basis status for a single row.

Implements SPxSimplifier.

Definition at line 1337 of file spxmainsm.h.

virtual bool isUnsimplified ( ) const
virtual

specifies whether an optimal solution has already been unsimplified.

Reimplemented from SPxSimplifier.

Definition at line 1308 of file spxmainsm.h.

References SPxMainSM::m_postsolved.

Real opttol ( ) const
private

Definition at line 1167 of file spxmainsm.h.

References SPxMainSM::m_opttol.

Referenced by SPxMainSM::simplifyDual().

void removeCol ( SPxLP lp,
int  j 
)
private

removes a column in the LP.

Definition at line 1141 of file spxmainsm.h.

References SPxLPBase< R >::nCols(), and SPxLPBase< R >::removeCol().

Referenced by SPxMainSM::removeEmpty(), SPxMainSM::simplifyCols(), and SPxMainSM::simplifyDual().

virtual Result result ( ) const
virtual

returns result status of the simplification

Implements SPxSimplifier.

Definition at line 1302 of file spxmainsm.h.

References SPxMainSM::m_result.

int rIdx ( int  i) const
private

returns for a given row index of the (reduced) LP the corresponding row index in the unsimplified LP.

Definition at line 1147 of file spxmainsm.h.

Referenced by SPxMainSM::FreeZeroObjVariablePS::execute(), and SPxMainSM::DuplicateRowsPS::execute().

virtual Result simplify ( SPxLP lp,
Real  eps,
Real  delta 
)
virtual

simplify SPxLP lp with identical primal and dual feasibility tolerance.

Implements SPxSimplifier.

Definition at line 1290 of file spxmainsm.h.

References SPxMainSM::PostStep::eps(), and SPxMainSM::unsimplify().

SPxSimplifier::Result simplify ( SPxLP lp,
Real  eps,
Real  ftol,
Real  otol,
bool  keepbounds = false 
)
virtual

simplify SPxLP lp with independent primal and dual feasibility tolerance.

Implements SPxSimplifier.

Definition at line 3767 of file spxmainsm.cpp.

References SPxMainSM::DOMINATED_COL, SPxMainSM::DOUBLETON_ROW, SPxMainSM::DUPLICATE_ROW, SPxMainSM::duplicateCols(), SPxMainSM::duplicateRows(), SPxMainSM::EMPTY_COL, SPxMainSM::EMPTY_ROW, SPxMainSM::PostStep::eps(), SPxMainSM::FIX_COL, SPxMainSM::FIX_DUPLICATE_COL, SPxMainSM::FORCE_ROW, SPxMainSM::FREE_ROW, SPxMainSM::FREE_SINGLETON_COL, SPxMainSM::FREE_ZOBJ_COL, SPxMainSM::handleExtremes(), SPxMainSM::handleRowObjectives(), soplex::infinity, SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), SPxMainSM::m_addedcols, SPxMainSM::m_cBasisStat, SPxSimplifier::m_chgBnds, SPxSimplifier::m_chgLRhs, SPxMainSM::m_cIdx, SPxMainSM::m_classSetCols, SPxMainSM::m_classSetRows, SPxMainSM::m_dual, SPxMainSM::m_dupCols, SPxMainSM::m_dupRows, SPxMainSM::m_epsilon, SPxMainSM::m_feastol, SPxMainSM::m_hist, SPxMainSM::m_keepbounds, SPxSimplifier::m_keptBnds, SPxSimplifier::m_keptLRhs, SPxSimplifier::m_objoffset, SPxMainSM::m_opttol, SPxMainSM::m_postsolved, SPxMainSM::m_prim, SPxMainSM::m_rBasisStat, SPxMainSM::m_redCost, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_result, SPxMainSM::m_rIdx, SPxMainSM::m_slack, SPxMainSM::m_stat, SPxMainSM::m_thesense, SPxSimplifier::m_timeUsed, MSG_INFO1, MSG_INFO2, SPxLPBase< R >::nCols(), SPxLPBase< R >::nNzos(), SPxLPBase< R >::nRows(), SPxSimplifier::OKAY, DVectorBase< R >::reDim(), Timer::reset(), DataArray< T >::reSize(), SPxLPBase< R >::rhs(), SPxMainSM::simplifyCols(), SPxMainSM::simplifyDual(), SPxMainSM::simplifyRows(), SPxMainSM::SINGLETON_ROW, DataArray< T >::size(), soplex::spx_free(), SPxSimplifier::spxout, SPxLPBase< R >::spxout, SPxLPBase< R >::spxSense(), Timer::start(), Timer::stop(), SPxMainSM::SUB_DUPLICATE_COL, SPxLPBase< R >::upper(), SPxSimplifier::VANISHED, SPxMainSM::WEAKLY_DOMINATED_COL, and SPxMainSM::ZOBJ_SINGLETON_COL.

SPxSimplifier::Result simplifyCols ( SPxLP lp,
bool &  again 
)
private

performs simplification steps on the columns of the LP.

Definition at line 2180 of file spxmainsm.cpp.

References ASSERT_WARN, SPxLPBase< R >::changeBounds(), SPxLPBase< R >::changeLower(), SPxLPBase< R >::changeObj(), SPxLPBase< R >::changeRange(), SPxLPBase< R >::changeUpper(), SPxLPBase< R >::colVector(), SPxMainSM::DOUBLETON_ROW, SPxMainSM::DoubletonEquationPS, SPxMainSM::EMPTY_COL, SPxMainSM::epsZero(), soplex::EQrel(), SPxMainSM::feastol(), SPxMainSM::FIX_COL, SPxMainSM::FixBoundsPS, SPxMainSM::fixColumn(), SPxMainSM::FixVariablePS, SPxMainSM::FREE_ROW, SPxMainSM::FREE_SINGLETON_COL, SPxMainSM::FREE_ZOBJ_COL, SPxMainSM::FreeColSingletonPS, SPxMainSM::FreeConstraintPS, SPxMainSM::FreeZeroObjVariablePS, soplex::GT(), soplex::GTrel(), SVectorBase< R >::index(), SPxSimplifier::INFEASIBLE, soplex::infinity, soplex::isNotZero(), soplex::isZero(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lower(), soplex::LT(), soplex::LTrel(), SPxSimplifier::m_chgBnds, SPxMainSM::m_hist, SPxSimplifier::m_minReduction, SPxSimplifier::m_remCols, SPxSimplifier::m_remNzos, SPxSimplifier::m_remRows, SPxMainSM::m_stat, soplex::maxAbs(), SPxLPBase< R >::maxObj(), MSG_INFO2, MSG_INFO3, SPxLPBase< R >::nCols(), soplex::NErel(), SPxLPBase< R >::nRows(), SPxLPBase< R >::obj(), SPxSimplifier::OKAY, SPxMainSM::removeCol(), SPxMainSM::removeRow(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spx_alloc(), SPxSimplifier::spxout, soplex::SPxQuicksort(), SPxSimplifier::UNBOUNDED, SPxLPBase< R >::upper(), SVectorBase< R >::value(), SPxMainSM::ZeroObjColSingletonPS, and SPxMainSM::ZOBJ_SINGLETON_COL.

Referenced by SPxMainSM::simplify().

virtual const Vector& unsimplifiedDual ( )
virtual

returns a reference to the unsimplified dual solution.

Implements SPxSimplifier.

Definition at line 1319 of file spxmainsm.h.

References SPxMainSM::m_dual.

virtual const Vector& unsimplifiedPrimal ( )
virtual

returns a reference to the unsimplified primal solution.

Implements SPxSimplifier.

Definition at line 1313 of file spxmainsm.h.

References SPxMainSM::m_prim.

virtual const Vector& unsimplifiedRedCost ( )
virtual

returns a reference to the unsimplified reduced costs.

Implements SPxSimplifier.

Definition at line 1331 of file spxmainsm.h.

References SPxMainSM::m_redCost.

virtual const Vector& unsimplifiedSlacks ( )
virtual

returns a reference to the unsimplified slack values.

Implements SPxSimplifier.

Definition at line 1325 of file spxmainsm.h.

References SPxMainSM::m_slack.

Friends And Related Function Documentation

friend class DoubletonEquationPS
friend

Definition at line 1043 of file spxmainsm.h.

Referenced by SPxMainSM::DoubletonEquationPS::clone(), and SPxMainSM::simplifyCols().

friend class DuplicateColsPS
friend

Definition at line 1045 of file spxmainsm.h.

Referenced by SPxMainSM::DuplicateColsPS::clone(), and SPxMainSM::duplicateCols().

friend class DuplicateRowsPS
friend

Definition at line 1044 of file spxmainsm.h.

Referenced by SPxMainSM::DuplicateRowsPS::clone(), and SPxMainSM::duplicateRows().

friend class ForceConstraintPS
friend

Definition at line 1037 of file spxmainsm.h.

Referenced by SPxMainSM::ForceConstraintPS::clone(), and SPxMainSM::simplifyRows().

friend class FreeColSingletonPS
friend

Definition at line 1042 of file spxmainsm.h.

Referenced by SPxMainSM::FreeColSingletonPS::clone(), and SPxMainSM::simplifyCols().

friend class FreeZeroObjVariablePS
friend
friend class RowSingletonPS
friend
friend class ZeroObjColSingletonPS
friend

Member Data Documentation

int m_addedcols
private
DataArray<SPxSolver::VarStatus> m_cBasisStat
private

basis status of columns.

Definition at line 1080 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().

DataArray<int> m_cIdx
private

column index vector in original LP.

Definition at line 1082 of file spxmainsm.h.

Referenced by SPxMainSM::duplicateCols(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().

Array<DSVector> m_classSetCols
private

stores parallel classes with non-zero row entry

Definition at line 1086 of file spxmainsm.h.

Referenced by SPxMainSM::duplicateCols(), and SPxMainSM::simplify().

Array<DSVector> m_classSetRows
private

stores parallel classes with non-zero colum entry

Definition at line 1085 of file spxmainsm.h.

Referenced by SPxMainSM::duplicateRows(), and SPxMainSM::simplify().

DVector m_dual
private

unsimplified dual solution vector.

Definition at line 1078 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedDual(), and SPxMainSM::unsimplify().

Array<DSVector> m_dupCols
private

arrange duplicate columns w.r.t. their pClass values

Definition at line 1088 of file spxmainsm.h.

Referenced by SPxMainSM::duplicateCols(), and SPxMainSM::simplify().

Array<DSVector> m_dupRows
private

arrange duplicate rows using bucket sort w.r.t. their pClass values

Definition at line 1087 of file spxmainsm.h.

Referenced by SPxMainSM::duplicateRows(), and SPxMainSM::simplify().

Real m_epsilon
private

epsilon zero.

Definition at line 1090 of file spxmainsm.h.

Referenced by SPxMainSM::epsZero(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().

Real m_feastol
private

primal feasibility tolerance.

Definition at line 1091 of file spxmainsm.h.

Referenced by SPxMainSM::feastol(), SPxMainSM::operator=(), and SPxMainSM::simplify().

bool m_keepbounds
private

keep some bounds (for boundflipping)

Definition at line 1095 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::simplifyRows().

Real m_opttol
private

dual feasibility tolerance.

Definition at line 1092 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::opttol(), and SPxMainSM::simplify().

bool m_postsolved
private

status of postsolving.

Definition at line 1089 of file spxmainsm.h.

Referenced by SPxMainSM::isUnsimplified(), SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().

DVector m_prim
private

unsimplified primal solution vector.

Definition at line 1076 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedPrimal(), and SPxMainSM::unsimplify().

DataArray<SPxSolver::VarStatus> m_rBasisStat
private

basis status of rows.

Definition at line 1081 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().

DVector m_redCost
private

unsimplified reduced cost vector.

Definition at line 1079 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedRedCost(), and SPxMainSM::unsimplify().

Result m_result
private

result of the simplification.

Definition at line 1097 of file spxmainsm.h.

Referenced by SPxMainSM::result(), and SPxMainSM::simplify().

DataArray<int> m_rIdx
private

row index vector in original LP.

Definition at line 1083 of file spxmainsm.h.

Referenced by SPxMainSM::duplicateRows(), SPxMainSM::operator=(), and SPxMainSM::simplify().

DVector m_slack
private

unsimplified slack vector.

Definition at line 1077 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), SPxMainSM::unsimplifiedSlacks(), and SPxMainSM::unsimplify().

SPxLP::SPxSense m_thesense
private

optimization sense.

Definition at line 1094 of file spxmainsm.h.

Referenced by SPxMainSM::operator=(), SPxMainSM::simplify(), and SPxMainSM::unsimplify().