19 #ifndef _SLUFACTOR_RATIONAL_H_ 20 #define _SLUFACTOR_RATIONAL_H_ 33 #define MAXUPDATES 1000 132 lastThreshold = 0.01;
137 lastThreshold = 0.99;
246 return solveTime->
time();
286 , timerType(
Timer::USER_TIME)
323 work = vec.get_ptr();
443 , timerType(old.timerType)
504 #include "slufactor_rational.hpp" 505 #endif // _SLUFACTOR_RATIONAL_H_ VectorRational val
hold nonzero values
int * start
starting positions in val and idx
int firstUpdate
number of first update L vector
int * ridx
indices of rows of L
void resetSolveTime()
reset SolveTime
VectorRational vec
Temporary vector.
int used
used entries of array idx
int * max
maximum available nonzeros per colunn: start[i] + max[i] == start[elem[i].next->idx] len[i] <= max[i]...
number< gmp_rational, et_off > Rational
Implementation of Sparse Linear Solver with Rational precision.This class implements a SLinSolverRati...
Rational * work
Working array: must always be left as 0!
int * max
maximum available nonzeros per row: start[i] + max[i] == start[elem[i].next->idx] len[i] <= max[i]...
Dring list
Double linked ringlist of vector indices in the order they appear in the column file.
int firstUnused
number of first unused L vector
struct soplex::CLUFactorRational::U::Col col
VectorRational diag
Array of pivot elements.
Implementation of sparse LU factorization with Rational precision.
void changeEta(int idx, SSVectorRational &eta)
int thedim
dimension of factorized matrix
Rational stability() const
int getFactorCount() const
number of factorizations performed
int * row
column indices of L vectors
VectorRational val
hold nonzero values: this is only initialized in the end of the factorization with DEFAULT updates...
UpdateType utype() const
returns the current update type uptype.
int getSolveCount() const
number of solves performed
VectorRational val
values of L vectors
int used
used entries of arrays idx and val
SLUFactorRational()
default constructor.
Real timeLimit
Time limit on factorization or solves.
Sparse Linear Solver virtual base class with Rational precision.
SSVectorRational ssvec
Temporary semi-sparse vector.
UpdateType uptype
the current UpdateType.
void setMarkowitz(const Rational &m)
sets minimum Markowitz threshold.
void assign(const SLUFactorRational &old)
used to implement the assignment operator
Status change(int idx, const SVectorRational &subst, const SSVectorRational *eta=0)
Exception class for out of memory exceptions.This class is derived from the SoPlex exception base cla...
void spx_alloc(T &p, int n=1)
Allocate memory.
Sparse Linear Solver virtual base class with Rational precision.Class SLinSolverRational provides a c...
Rational minStability
minimum stability to achieve by setting threshold.
SLinSolverRational::Status Status
for convenience
int * start
starting positions in val and idx
Rational minThreshold
minimum threshold to use.
Real getSolveTime() const
time spent in solves
virtual SLinSolverRational * clone() const
clone function for polymorphism
void setTimeLimit(const Real limit)
set time limit on factorization
void setUtype(UpdateType tp)
sets update type.
Rational lastThreshold
pivoting threshold of last factorization
void solveRight(VectorRational &x, const VectorRational &b)
Solves .
Dring list
Double linked ringlist of vector indices in the order they appear in the row file.
void solveRight4update(SSVectorRational &x, const SVectorRational &b)
Solves .
Perm row
row permutation matrices
void clear()
Clears vector.
int * rorig
original row permutation
int solveCount
Number of solves.
SSVectorRational forest
? Update vector set up by solveRight4update() and solve2right4update()
int size
size of array idx
SLUFactorRational(const SLUFactorRational &old)
copy constructor.
virtual ~SLUFactorRational()
destructor.
virtual Real time() const =0
static Timer * createTimer(Timer::TYPE ttype)
create timers and allocate memory for them
Timer * factorTime
Time spent in factorizations.
bool isConsistent() const
consistency check.
const char * getName() const
bool usetup
TRUE iff update vector has been setup.
Debugging, floating point type and parameter definitions.
void dump() const
prints the LU factorization to stdout.
int * idx
array of size val.dim() storing indices of L vectors
Real getFactorTime() const
time spent in factorizations
int dim() const
Dimension of vector.
Implementation of sparse LU factorization with Rational precision.This class implements a sparse LU f...
Everything should be within this namespace.
struct soplex::CLUFactorRational::U::Row row
SLUFactorRational & operator=(const SLUFactorRational &old)
assignment operator.
int * perm
perm[i] permuted index from i
void clear()
Remove all indices.
Timer * solveTime
Time spent in solves.
int * len
used nonzeros per column vector
int * len
used nonzeros per row vectors
std::string statistics() const
int * idx
hold row indices of nonzeros
int * start
starting positions in val and idx
Dring * elem
Array of ring elements.
UpdateType
Specifies how to perform change method.
void reDim(int newdim, const bool setZero=true)
Resets VectorBase's dimension to newdim.
int factorCount
Number of factorizations.
int startSize
size of array start
void solve3right4update(SSVectorRational &x, VectorRational &y, VectorRational &z, const SVectorRational &b, SSVectorRational &d, SSVectorRational &e)
Solves , and .
Status load(const SVectorRational *vec[], int dim)
Perm col
column permutation matrices
VectorRational rval
values of rows of L
int * rperm
original row permutation
int * rbeg
start of rows in rval and ridx
void resetFactorTime()
reset FactorTime
virtual void reset()=0
initialize timer, set timing accounts to zero.
Rational markowitz()
returns Markowitz threshold.
Dring * elem
Array of ring elements.
int * idx
array of length val.dim() to hold column indices of nonzeros in val
void solveLeft(VectorRational &x, const VectorRational &b)
Solves .
Status
status flags of the SLinSolverRational class.
void resetCounters()
reset timers and counters
Wrapper for the system time query methods.
int * orig
orig[p] original index from p
int nzCnt
number of nonzeros in U
void solve2right4update(SSVectorRational &x, VectorRational &y, const SVectorRational &b, SSVectorRational &d)
Solves and .
SLinSolverRational::Status stat
Status indicator.