|
SoPlex Doxygen Documentation
|
Implementation of Sparse Linear Solver.This class implements a SLinSolver interface by using the sparse LU factorization implementet in CLUFactor.
More...
#include <slufactor.h>
|
|
UpdateType | utype () const |
| returns the current update type uptype.
|
|
void | setUtype (UpdateType tp) |
| sets update type.
|
|
|
See documentation of SLinSolver for a documentation of these methods.
|
void | clear () |
|
int | dim () const |
|
int | memory () const |
|
const char * | getName () const |
|
Status | status () const |
|
Real | stability () const |
|
std::string | statistics () const |
|
Status | load (const SVector *vec[], int dim) |
|
|
void | solveRight (Vector &x, const Vector &b) |
| Solves .
|
|
void | solveRight (SSVector &x, const SVector &b) |
| Solves .
|
|
void | solveRight4update (SSVector &x, const SVector &b) |
| Solves .
|
|
void | solve2right4update (SSVector &x, Vector &y, const SVector &b, SSVector &d) |
| Solves and .
|
|
void | solve3right4update (SSVector &x, Vector &y, Vector &z, const SVector &b, SSVector &d, SSVector &e) |
| Solves , and .
|
|
void | solveLeft (Vector &x, const Vector &b) |
| Solves .
|
|
void | solveLeft (SSVector &x, const SVector &b) |
| Solves .
|
|
void | solveLeft (SSVector &x, Vector &y, const SVector &b, SSVector &d) |
| Solves and .
|
|
Status | change (int idx, const SVector &subst, const SSVector *eta=0) |
|
|
Real | getFactorTime () const |
| time spent in factorizations
|
|
int | getFactorCount () const |
| number of factorizations performed
|
|
Real | getSolveTime () const |
| time spent in solves
|
|
int | getSolveCount () const |
| number of solves performed
|
|
void | dump () const |
| prints the LU factorization to stdout.
|
|
bool | isConsistent () const |
| consistency check.
|
|
|
| SLUFactor () |
| default constructor.
|
|
SLUFactor & | operator= (const SLUFactor &old) |
| assignment operator.
|
|
| SLUFactor (const SLUFactor &old) |
| copy constructor.
|
|
virtual | ~SLUFactor () |
| destructor.
|
|
virtual SLinSolver * | clone () const |
| clone function for polymorphism
|
|
| SLinSolver () |
| default constructor
|
|
virtual | ~SLinSolver () |
| destructor
|
|
|
|
void | assign (const SLUFactor &old) |
| used to implement the assignment operator
|
|
Implementation of Sparse Linear Solver.
This class implements a SLinSolver interface by using the sparse LU factorization implementet in CLUFactor.
Definition at line 40 of file slufactor.h.
Specifies how to perform change method.
Enumerator |
---|
ETA |
|
FOREST_TOMLIN |
|
Definition at line 48 of file slufactor.h.
default constructor.
Definition at line 701 of file slufactor.cpp.
References SLUFactor::clear(), CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::elem, CLUFactor::U::Col::elem, CLUFactor::factorCount, CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, SLUFactor::freeAll(), Vector::get_ptr(), CLUFactor::Dring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, SLUFactor::isConsistent(), CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Row::list, CLUFactor::U::Col::list, CLUFactor::U::Row::max, CLUFactor::U::Col::max, METHOD, CLUFactor::nzCnt, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::U::row, CLUFactor::L::row, CLUFactor::row, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::U::Row::size, CLUFactor::U::Col::size, CLUFactor::L::size, SLUFactor::solveCount, soplex::spx_alloc(), CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::L::start, CLUFactor::L::startSize, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::used, CLUFactor::U::Col::used, CLUFactor::U::Row::val, CLUFactor::U::Col::val, CLUFactor::L::val, SLUFactor::vec, and CLUFactor::work.
Referenced by SLUFactor::clone().
copy constructor.
Definition at line 834 of file slufactor.cpp.
References SLUFactor::assign(), CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::elem, CLUFactor::U::Col::elem, SLUFactor::freeAll(), CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, SLUFactor::isConsistent(), CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Row::max, CLUFactor::U::Col::max, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::U::row, CLUFactor::L::row, CLUFactor::row, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::L::start, CLUFactor::u, CLUFactor::U::Row::val, CLUFactor::U::Col::val, and CLUFactor::L::val.
used to implement the assignment operator
assignment used to implement operator=() and copy constructor. If this is initialised, freeAll() has to be called before. Class objects from SLUFactor are not copied here.
Definition at line 479 of file slufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::colMemMult, CLUFactor::diag, CLUFactor::U::Row::elem, CLUFactor::U::Col::elem, SLUFactor::epsilon, CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, Vector::get_ptr(), CLUFactor::Dring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, CLUFactor::initMaxabs, CLUFactor::l, SLUFactor::lastThreshold, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Row::list, CLUFactor::U::Col::list, CLUFactor::lMemMult, CLUFactor::U::Row::max, CLUFactor::U::Col::max, CLUFactor::maxabs, METHOD, SLUFactor::minStability, SLUFactor::minThreshold, CLUFactor::Dring::next, CLUFactor::nzCnt, SLinSolver::OK, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::Dring::prev, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::U::row, CLUFactor::L::row, CLUFactor::row, CLUFactor::rowMemMult, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::U::Row::size, CLUFactor::U::Col::size, CLUFactor::L::size, soplex::spx_alloc(), CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::L::start, CLUFactor::L::startSize, CLUFactor::stat, CLUFactor::thedim, CLUFactor::u, CLUFactor::L::updateType, SLUFactor::uptype, CLUFactor::U::Row::used, CLUFactor::U::Col::used, CLUFactor::U::Row::val, CLUFactor::U::Col::val, CLUFactor::L::val, SLUFactor::vec, and CLUFactor::work.
Referenced by SLUFactor::operator=(), and SLUFactor::SLUFactor().
Implements SLinSolver.
Definition at line 334 of file slufactor.cpp.
References SSVector::altIndexMem(), SSVector::altValues(), SLUFactor::changeEta(), SSVector::clear(), SLUFactor::ETA, SLUFactor::eta, SSVector::forceSetup(), SLUFactor::forest, SLUFactor::FOREST_TOMLIN, CLUFactor::forestUpdate(), Vector::get_ptr(), SSVector::indexMem(), CLUFactor::l, METHOD, MSG_DEBUG, SSVector::setSize(), SSVector::size(), CLUFactor::solveLright(), CLUFactor::solveRight(), soplex::spxout, SLUFactor::stability(), SLUFactor::status(), CLUFactor::updateNoClear(), CLUFactor::L::updateType, SLUFactor::uptype, SLUFactor::usetup, SSVector::values(), and SLUFactor::vec.
void changeEta |
( |
int |
idx, |
|
|
SSVector & |
eta |
|
) |
| |
|
protected |
Implements SLinSolver.
Definition at line 398 of file slufactor.cpp.
References Vector::clear(), SSVector::clear(), CLUFactor::U::col, CLUFactor::colMemMult, SLUFactor::epsilon, Param::epsilonFactorization(), SLUFactor::eta, CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, SLUFactor::forest, SLUFactor::freeAll(), CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, CLUFactor::initMaxabs, CLUFactor::l, SLUFactor::lastThreshold, CLUFactor::lMemMult, CLUFactor::maxabs, METHOD, MINSTABILITY, SLUFactor::minStability, SLUFactor::minThreshold, CLUFactor::L::rbeg, REAL, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::U::row, CLUFactor::L::row, CLUFactor::rowMemMult, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::U::Row::size, CLUFactor::U::Col::size, CLUFactor::L::size, soplex::spx_alloc(), soplex::spx_free(), SLUFactor::ssvec, CLUFactor::L::start, CLUFactor::L::startSize, CLUFactor::stat, CLUFactor::thedim, CLUFactor::u, SLinSolver::UNLOADED, SLUFactor::usetup, CLUFactor::U::Row::val, CLUFactor::L::val, and SLUFactor::vec.
Referenced by SLUFactor::load(), and SLUFactor::SLUFactor().
Definition at line 881 of file slufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::elem, CLUFactor::U::Col::elem, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Row::max, CLUFactor::U::Col::max, METHOD, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::U::row, CLUFactor::L::row, CLUFactor::row, CLUFactor::L::rperm, CLUFactor::L::rval, soplex::spx_free(), CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::L::start, CLUFactor::u, CLUFactor::U::Row::val, CLUFactor::U::Col::val, and CLUFactor::L::val.
Referenced by SLUFactor::clear(), SLUFactor::operator=(), SLUFactor::SLUFactor(), and SLUFactor::~SLUFactor().
int getFactorCount |
( |
| ) |
const |
Real getFactorTime |
( |
| ) |
const |
const char* getName |
( |
| ) |
const |
|
virtual |
int getSolveCount |
( |
| ) |
const |
Real getSolveTime |
( |
| ) |
const |
bool isConsistent |
( |
| ) |
const |
|
virtual |
Implements SLinSolver.
Definition at line 939 of file slufactor.cpp.
References soplex::betterThreshold(), SLUFactor::clear(), CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, SLUFactor::dim(), SLUFactor::dump(), CLUFactor::U::Row::elem, CLUFactor::U::Col::elem, SLUFactor::epsilon, soplex::EQ(), SLUFactor::eta, CLUFactor::factor(), CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, SLUFactor::forest, Vector::get_ptr(), CLUFactor::Dring::idx, initDR, SLUFactor::isConsistent(), CLUFactor::l, SLUFactor::lastThreshold, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Row::list, CLUFactor::U::Col::list, CLUFactor::U::Row::max, CLUFactor::U::Col::max, MAXUPDATES, METHOD, MINSTABILITY, SLUFactor::minStability, SLUFactor::minThreshold, MSG_DEBUG, MSG_INFO3, SLinSolver::OK, CLUFactor::Perm::orig, CLUFactor::Perm::perm, DVector::reDim(), SSVector::reDim(), CLUFactor::U::row, CLUFactor::L::row, CLUFactor::row, SVector::size(), soplex::spx_realloc(), soplex::spxout, SLUFactor::ssvec, SLUFactor::stability(), CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::L::start, CLUFactor::L::startSize, CLUFactor::stat, CLUFactor::thedim, CLUFactor::u, CLUFactor::L::updateType, SLUFactor::uptype, SLUFactor::usetup, SVector::value(), SLUFactor::vec, and CLUFactor::work.
Solves and .
Implements SLinSolver.
Definition at line 109 of file slufactor.cpp.
References SSVector::altIndexMem(), SSVector::altValues(), Vector::clear(), SSVector::clear(), SLUFactor::ETA, SLUFactor::eta, SSVector::forceSetup(), SLUFactor::forest, SSVector::get_ptr(), Vector::get_ptr(), SSVector::getEpsilon(), CLUFactor::l, METHOD, SSVector::setSize(), SSVector::setup_and_assign(), SSVector::size(), SLUFactor::solveCount, SLUFactor::solveTime, SLUFactor::ssvec, Timer::start(), Timer::stop(), SSVector::unSetup(), CLUFactor::L::updateType, SLUFactor::usetup, and CLUFactor::vSolveRight4update2().
Solves , and .
Implements SLinSolver.
Definition at line 159 of file slufactor.cpp.
References SSVector::altIndexMem(), SSVector::altValues(), Vector::clear(), SSVector::clear(), SLUFactor::ETA, SLUFactor::eta, SSVector::forceSetup(), SLUFactor::forest, SSVector::get_ptr(), Vector::get_ptr(), SSVector::getEpsilon(), CLUFactor::l, METHOD, SSVector::setSize(), SSVector::setup_and_assign(), SSVector::size(), SLUFactor::solveCount, SLUFactor::solveTime, SLUFactor::ssvec, Timer::start(), Timer::stop(), SSVector::unSetup(), CLUFactor::L::updateType, SLUFactor::usetup, and CLUFactor::vSolveRight4update3().
Solves .
Implements SLinSolver.
Definition at line 232 of file slufactor.cpp.
References SSVector::altIndexMem(), SSVector::altValues(), SSVector::assign(), SSVector::clear(), SSVector::forceSetup(), SSVector::getEpsilon(), METHOD, SSVector::setSize(), SSVector::size(), SLUFactor::solveCount, SLUFactor::solveTime, SLUFactor::ssvec, Timer::start(), Timer::stop(), SSVector::unSetup(), and CLUFactor::vSolveLeft().
Solves and .
Implements SLinSolver.
Definition at line 260 of file slufactor.cpp.
References SSVector::altIndexMem(), SSVector::altValues(), SSVector::assign(), Vector::clear(), SSVector::clear(), SSVector::forceSetup(), Vector::get_ptr(), SSVector::getEpsilon(), METHOD, SSVector::setSize(), SSVector::size(), SLUFactor::solveCount, SLUFactor::solveTime, SLUFactor::ssvec, Timer::start(), Timer::stop(), SSVector::unSetup(), and CLUFactor::vSolveLeft2().
Solves .
Implements SLinSolver.
Definition at line 56 of file slufactor.cpp.
References SSVector::altValues(), Vector::assign(), SSVector::clear(), Vector::get_ptr(), METHOD, SLUFactor::solveCount, CLUFactor::solveRight(), SLUFactor::solveTime, Timer::start(), Timer::stop(), and SLUFactor::vec.
Solves .
Implements SLinSolver.
Definition at line 70 of file slufactor.cpp.
References SSVector::altIndexMem(), SSVector::altValues(), SSVector::clear(), SLUFactor::ETA, SLUFactor::eta, SSVector::forceSetup(), SLUFactor::forest, SSVector::getEpsilon(), CLUFactor::l, METHOD, SSVector::setSize(), SSVector::setup_and_assign(), SSVector::size(), SLUFactor::solveCount, SLUFactor::solveTime, SLUFactor::ssvec, Timer::start(), Timer::stop(), SSVector::unSetup(), CLUFactor::L::updateType, SLUFactor::usetup, and CLUFactor::vSolveRight4update().
std::string statistics |
( |
| ) |
const |
|
virtual |
|