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