41#define SOPLEX_MAXUPDATES 1000
310 this->
forest.setTolerances(tolerances);
346#include "slufactor.hpp"
Implementation of sparse LU factorization.
const std::shared_ptr< Tolerances > tolerances() const
get tolerances
int factorCount
Number of factorizations.
std::shared_ptr< Tolerances > _tolerances
Tolerances for the factorization.
Timer * factorTime
Time spent in factorizations.
int hugeValues
number of times huge values occurred during solve (only used in debug mode)
SLinSolver< R >::Status stat
Status indicator.
int thedim
dimension of factorized matrix
int nzCnt
number of nonzeros in U
Implementation of Sparse Linear Solver.
UpdateType
Specifies how to perform change method.
virtual ~SLUFactor()
destructor.
Timer * solveTime
Time spent in solves.
void changeEta(int idx, SSVectorBase< R > &eta)
void solveLeft(SSVectorBase< R > &x, SSVectorBase< R > &two, const SVectorBase< R > &b, SSVectorBase< R > &rhs2)
sparse version of solving two systems of equations with transposed basis matrix
R minStability
minimum stability to achieve by setting threshold.
Real getFactorTime() const
time spent in factorizations
bool isConsistent() const
consistency check.
void solve2right4update(SSVectorBase< R > &x, SSVectorBase< R > &y, const SVectorBase< R > &b, SSVectorBase< R > &d)
Sparse version of solving two systems of equations.
SLUFactor< R > & operator=(const SLUFactor< R > &old)
assignment operator.
void resetSolveTime()
reset SolveTime
void resetFactorTime()
reset FactorTime
UpdateType utype() const
returns the current update type uptype.
void solveLeft(SSVectorBase< R > &x, SSVectorBase< R > &y, SSVectorBase< R > &z, const SVectorBase< R > &b, SSVectorBase< R > &d, SSVectorBase< R > &e)
sparse version of solving three systems of equations with transposed basis matrix
SSVectorBase< R > forest
? Update VectorBase<R> set up by solveRight4update() and solve2right4update()
void setUtype(UpdateType tp)
sets update type.
void resetCounters()
reset timers and counters
UpdateType uptype
the current UpdateType.
void solveLeft(SSVectorBase< R > &x, const SSVectorBase< R > &b)
int solveCount
Number of solves.
Status change(int idx, const SVectorBase< R > &subst, const SSVectorBase< R > *eta=0)
const char * getName() const
void solveLeft(SSVectorBase< R > &x, const SVectorBase< R > &b)
Solves .
bool usetup
TRUE iff update vector has been setup.
R minThreshold
minimum threshold to use.
void solve2right4update(SSVectorBase< R > &x, VectorBase< R > &y, const SVectorBase< R > &b, SSVectorBase< R > &d)
Solves and .
virtual SLinSolver< R > * clone() const
clone function for polymorphism
void setMarkowitz(R m)
sets minimum Markowitz threshold.
void solveRight(SSVectorBase< R > &x, const SSVectorBase< R > &b)
void solveLeft(SSVectorBase< R > &x, VectorBase< R > &y, VectorBase< R > &z, const SVectorBase< R > &b, SSVectorBase< R > &d, SSVectorBase< R > &e)
Solves , and .
void assign(const SLUFactor< R > &old)
used to implement the assignment operator
void solveRight4update(SSVectorBase< R > &x, const SVectorBase< R > &b)
Solves .
typename SLinSolver< R >::Status Status
for convenience
void solveRight(VectorBase< R > &x, const VectorBase< R > &b)
Solves .
SLUFactor()
default constructor.
virtual void setTolerances(std::shared_ptr< Tolerances > tolerances)
set tolerances
SSVectorBase< R > ssvec
Temporary semi-sparse VectorBase<R>
SLUFactor(const SLUFactor< R > &old)
copy constructor.
int getSolveCount() const
number of solves performed
void solveLeft(VectorBase< R > &x, const VectorBase< R > &b)
sparse version of solving one system of equations with transposed basis matrix
int getFactorCount() const
number of factorizations performed
R lastThreshold
pivoting threshold of last factorization
void solveLeft(SSVectorBase< R > &x, VectorBase< R > &y, const SVectorBase< R > &b, SSVectorBase< R > &d)
Solves and .
std::string statistics() const
void changeTimer(const Timer::TYPE ttype)
void solve3right4update(SSVectorBase< R > &x, VectorBase< R > &y, VectorBase< R > &z, const SVectorBase< R > &b, SSVectorBase< R > &d, SSVectorBase< R > &e)
Solves , and .
void solve3right4update(SSVectorBase< R > &x, SSVectorBase< R > &y, SSVectorBase< R > &z, const SVectorBase< R > &b, SSVectorBase< R > &d, SSVectorBase< R > &e)
sparse version of solving three systems of equations
Real getSolveTime() const
time spent in solves
VectorBase< R > vec
Temporary VectorBase<R>
R matrixMetric(int type=0) const
void dump() const
prints the LU factorization to stdout.
Status load(const SVectorBase< R > *vec[], int dim)
void solveRight(SSVectorBase< R > &x, const SVectorBase< R > &b)
Solves .
R markowitz()
returns Markowitz threshold.
Sparse Linear Solver virtual base class.
Status
status flags of the SLinSolver class.
virtual void setTolerances(std::shared_ptr< Tolerances > newTolerances)
set the _tolerances member variable
void unSetup()
Makes SSVectorBase not setup.
static Timer * switchTimer(Timer *timer, Timer::TYPE ttype)
Wrapper for the system time query methods.
virtual void reset()=0
initialize timer, set timing accounts to zero.
virtual Real time() const =0
Implementation of sparse LU factorization.
Everything should be within this namespace.
Sparse Linear Solver virtual base class.
Debugging, floating point type and parameter definitions.
int * start
starting positions in val and idx
int firstUnused
number of first unused L vector