Implementation of sparse LU factorization.This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting. More...
#include <clufactor.h>
Classes | |
struct | Dring |
struct | L |
Data structures for saving the working matrix and L factor. More... | |
struct | Perm |
Data structures for saving the row and column permutations. More... | |
class | Pring |
Pivot Ring. More... | |
class | Temp |
Temporary data structures. More... | |
struct | U |
Data structures for saving the working matrix and U factor. More... | |
Protected Member Functions | |
Construction / destruction | |
CLUFactor () | |
default construtor. More... | |
Solver methods | |
void | solveLright (Real *vec) |
int | solveRight4update (Real *vec, int *nonz, Real eps, Real *rhs, Real *forest, int *forestNum, int *forestIdx) |
void | solveRight (Real *vec, Real *rhs) |
int | solveRight2update (Real *vec1, Real *vec2, Real *rhs1, Real *rhs2, int *nonz, Real eps, Real *forest, int *forestNum, int *forestIdx) |
void | solveRight2 (Real *vec1, Real *vec2, Real *rhs1, Real *rhs2) |
void | solveLeft (Real *vec, Real *rhs) |
int | solveLeftEps (Real *vec, Real *rhs, int *nonz, Real eps) |
int | solveLeft2 (Real *vec1, int *nonz, Real *vec2, Real eps, Real *rhs1, Real *rhs2) |
int | vSolveRight4update (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int rn, Real *forest, int *forestNum, int *forestIdx) |
int | vSolveRight4update2 (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int rn, Real *vec2, Real eps2, Real *rhs2, int *ridx2, int rn2, Real *forest, int *forestNum, int *forestIdx) |
void | vSolveRight4update2sparse (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int &rn, Real eps2, Real *vec2, int *idx2, Real *rhs2, int *ridx2, int &rn2, Real *forest, int *forestNum, int *forestIdx) |
sparse version of above method More... | |
int | vSolveRight4update3 (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int rn, Real *vec2, Real eps2, Real *rhs2, int *ridx2, int rn2, Real *vec3, Real eps3, Real *rhs3, int *ridx3, int rn3, Real *forest, int *forestNum, int *forestIdx) |
void | vSolveRight4update3sparse (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int &rn, Real eps2, Real *vec2, int *idx2, Real *rhs2, int *ridx2, int &rn2, Real eps3, Real *vec3, int *idx3, Real *rhs3, int *ridx3, int &rn3, Real *forest, int *forestNum, int *forestIdx) |
sparse version of above method More... | |
void | vSolveRightNoNZ (Real *vec, Real eps, Real *rhs, int *ridx, int rn) |
int | vSolveLeft (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int rn) |
void | vSolveLeftNoNZ (Real eps, Real *vec, Real *rhs, int *ridx, int rn) |
int | vSolveLeft2 (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int rn, Real *vec2, Real *rhs2, int *ridx2, int rn2) |
void | vSolveLeft2sparse (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int &rn, Real *vec2, int *idx2, Real *rhs2, int *ridx2, int &rn2) |
sparse version of solving 2 systems of equations More... | |
int | vSolveLeft3 (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int rn, Real *vec2, Real *rhs2, int *ridx2, int rn2, Real *vec3, Real *rhs3, int *ridx3, int rn3) |
void | vSolveLeft3sparse (Real eps, Real *vec, int *idx, Real *rhs, int *ridx, int &rn, Real *vec2, int *idx2, Real *rhs2, int *ridx2, int &rn2, Real *vec3, int *idx3, Real *rhs3, int *ridx3, int &rn3) |
sparse version of solving 3 systems of equations More... | |
void | forestUpdate (int col, Real *work, int num, int *nonz) |
Performs the Forrest-Tomlin update of the LU factorization. More... | |
void | update (int p_col, Real *p_work, const int *p_idx, int num) |
void | updateNoClear (int p_col, const Real *p_work, const int *p_idx, int num) |
void | factor (const SVector **vec, Real threshold, Real eps) |
epsilon for zero detection More... | |
Debugging | |
void | dump () const |
bool | isConsistent () const |
Protected Attributes | |
Protected data | |
SLinSolver::Status | stat |
Status indicator. More... | |
int | thedim |
dimension of factorized matrix More... | |
int | nzCnt |
number of nonzeros in U More... | |
Real | initMaxabs |
maximum abs number in initail Matrix More... | |
Real | maxabs |
maximum abs number in L and U More... | |
Real | rowMemMult |
factor of minimum Memory * number of nonzeros More... | |
Real | colMemMult |
factor of minimum Memory * number of nonzeros More... | |
Real | lMemMult |
factor of minimum Memory * number of nonzeros More... | |
Perm | row |
row permutation matrices More... | |
Perm | col |
column permutation matrices More... | |
L | l |
L matrix. More... | |
Real * | diag |
Array of pivot elements. More... | |
U | u |
U matrix. More... | |
Real * | work |
Working array: must always be left as 0! More... | |
Timer * | factorTime |
Time spent in factorizations. More... | |
int | factorCount |
Number of factorizations. More... | |
Private Member Functions | |
Solving | |
These helper methods are used during the factorization process. The solve*-methods solve lower and upper triangular systems from the left or from the right, respectively The methods with '2' in the end solve two systems at the same time. The methods with "Eps" in the end consider elements smaller then the passed epsilon as zero. | |
void | solveUright (Real *wrk, Real *vec) const |
int | solveUrightEps (Real *vec, int *nonz, Real eps, Real *rhs) |
void | solveUright2 (Real *work1, Real *vec1, Real *work2, Real *vec2) |
int | solveUright2eps (Real *work1, Real *vec1, Real *work2, Real *vec2, int *nonz, Real eps) |
void | solveLright2 (Real *vec1, Real *vec2) |
void | solveUpdateRight (Real *vec) |
void | solveUpdateRight2 (Real *vec1, Real *vec2) |
void | solveUleft (Real *work, Real *vec) |
void | solveUleft2 (Real *work1, Real *vec1, Real *work2, Real *vec2) |
int | solveLleft2forest (Real *vec1, int *, Real *vec2, Real) |
void | solveLleft2 (Real *vec1, int *, Real *vec2, Real) |
int | solveLleftForest (Real *vec, int *, Real) |
void | solveLleft (Real *vec) const |
int | solveLleftEps (Real *vec, int *nonz, Real eps) |
void | solveUpdateLeft (Real *vec) |
void | solveUpdateLeft2 (Real *vec1, Real *vec2) |
void | updateSolutionVectorLright (Real change, int j, Real &vec, int *idx, int &nnz) |
void | vSolveLright (Real *vec, int *ridx, int &rn, Real eps) |
void | vSolveLright2 (Real *vec, int *ridx, int &rn, Real eps, Real *vec2, int *ridx2, int &rn2, Real eps2) |
void | vSolveLright3 (Real *vec, int *ridx, int &rn, Real eps, Real *vec2, int *ridx2, int &rn2, Real eps2, Real *vec3, int *ridx3, int &rn3, Real eps3) |
int | vSolveUright (Real *vec, int *vidx, Real *rhs, int *ridx, int rn, Real eps) |
void | vSolveUrightNoNZ (Real *vec, Real *rhs, int *ridx, int rn, Real eps) |
int | vSolveUright2 (Real *vec, int *vidx, Real *rhs, int *ridx, int rn, Real eps, Real *vec2, Real *rhs2, int *ridx2, int rn2, Real eps2) |
int | vSolveUpdateRight (Real *vec, int *ridx, int n, Real eps) |
void | vSolveUpdateRightNoNZ (Real *vec, Real) |
int | solveUleft (Real eps, Real *vec, int *vecidx, Real *rhs, int *rhsidx, int rhsn) |
void | solveUleftNoNZ (Real eps, Real *vec, Real *rhs, int *rhsidx, int rhsn) |
int | solveLleftForest (Real eps, Real *vec, int *nonz, int n) |
void | solveLleftForestNoNZ (Real *vec) |
int | solveLleft (Real eps, Real *vec, int *nonz, int rn) |
void | solveLleftNoNZ (Real *vec) |
int | solveUpdateLeft (Real eps, Real *vec, int *nonz, int n) |
void | forestPackColumns () |
void | forestMinColMem (int size) |
void | forestReMaxCol (int col, int len) |
void | initPerm () |
void | initFactorMatrix (const SVector **vec, const Real eps) |
void | minLMem (int size) |
void | setPivot (const int p_stage, const int p_col, const int p_row, const Real val) |
void | colSingletons () |
void | rowSingletons () |
void | initFactorRings () |
void | freeFactorRings () |
int | setupColVals () |
void | setupRowVals () |
void | eliminateRowSingletons () |
void | eliminateColSingletons () |
void | selectPivots (Real threshold) |
int | updateRow (int r, int lv, int prow, int pcol, Real pval, Real eps) |
void | eliminatePivot (int prow, int pos, Real eps) |
void | eliminateNucleus (const Real eps, const Real threshold) |
void | minRowMem (int size) |
void | minColMem (int size) |
void | remaxCol (int p_col, int len) |
void | packRows () |
void | packColumns () |
void | remaxRow (int p_row, int len) |
int | makeLvec (int p_len, int p_row) |
Blocked | |
CLUFactor (const CLUFactor &) | |
copy construtor. More... | |
CLUFactor & | operator= (const CLUFactor &) |
assignment operator. More... | |
Private Attributes | |
Private data | |
Temp | temp |
Temporary storage. More... | |
Implementation of sparse LU factorization.
This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting.
Definition at line 37 of file clufactor.h.
|
protected |
default construtor.
Since there is no sense in constructing a CLUFactor object per se, this is protected.
Definition at line 373 of file clufactor.h.
References CLUFactor::dump(), CLUFactor::factor(), CLUFactor::forestUpdate(), CLUFactor::Dring::idx, CLUFactor::isConsistent(), CLUFactor::solveLeft(), CLUFactor::solveLeft2(), CLUFactor::solveLeftEps(), CLUFactor::solveLright(), CLUFactor::solveRight(), CLUFactor::solveRight2(), CLUFactor::solveRight2update(), CLUFactor::solveRight4update(), CLUFactor::update(), CLUFactor::updateNoClear(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), CLUFactor::vSolveLeft3sparse(), CLUFactor::vSolveLeftNoNZ(), CLUFactor::vSolveRight4update(), CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update2sparse(), CLUFactor::vSolveRight4update3(), CLUFactor::vSolveRight4update3sparse(), and CLUFactor::vSolveRightNoNZ().
|
private |
Definition at line 1618 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_mark, CLUFactor::setPivot(), SLinSolver::SINGULAR, CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::stat, CLUFactor::temp, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::factor().
|
protected |
Definition at line 2829 of file clufactor.cpp.
References CLUFactor::col, CLUFactor::diag, CLUFactor::L::firstUnused, CLUFactor::U::Row::idx, CLUFactor::L::idx, CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::U::row, CLUFactor::L::row, CLUFactor::row, CLUFactor::U::Row::start, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::val, and CLUFactor::L::val.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::dump().
|
private |
Definition at line 2001 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::Pring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, init2DR, initDR, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::Perm::perm, CLUFactor::Temp::pivot_col, CLUFactor::Temp::pivot_colNZ, CLUFactor::Temp::pivot_row, CLUFactor::Pring::prev, removeDR, CLUFactor::U::row, CLUFactor::Temp::s_cact, CLUFactor::setPivot(), CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::temp, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::eliminateNucleus().
Definition at line 2530 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::eliminateColSingletons(), CLUFactor::eliminatePivot(), CLUFactor::eliminateRowSingletons(), CLUFactor::Pring::idx, initDR, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::Pring::mkwtz, CLUFactor::Pring::next, CLUFactor::Perm::perm, CLUFactor::Temp::pivot_colNZ, CLUFactor::Temp::pivot_rowNZ, CLUFactor::Temp::pivots, CLUFactor::Pring::pos, CLUFactor::U::row, CLUFactor::Temp::s_mark, CLUFactor::selectPivots(), CLUFactor::setPivot(), SLinSolver::SINGULAR, CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::stat, CLUFactor::temp, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::factor().
|
private |
Definition at line 2434 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, init2DR, initDR, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::makeLvec(), CLUFactor::Perm::perm, CLUFactor::Temp::pivot_col, CLUFactor::Temp::pivot_colNZ, removeDR, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_mark, CLUFactor::setPivot(), CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::temp, CLUFactor::u, CLUFactor::updateRow(), CLUFactor::U::Row::val, and CLUFactor::work.
Referenced by CLUFactor::eliminateNucleus().
|
private |
Definition at line 1880 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::Pring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, init2DR, initDR, CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::makeLvec(), CLUFactor::Perm::perm, CLUFactor::Temp::pivot_col, CLUFactor::Temp::pivot_row, CLUFactor::Temp::pivot_rowNZ, CLUFactor::Pring::prev, removeDR, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_max, CLUFactor::setPivot(), CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::temp, CLUFactor::u, CLUFactor::U::Row::val, and CLUFactor::L::val.
Referenced by CLUFactor::eliminateNucleus().
epsilon for zero detection
vec | Array of column vector pointers |
threshold | pivoting threshold |
eps | epsilon for zero detection |
Definition at line 2772 of file clufactor.cpp.
References CLUFactor::colSingletons(), CLUFactor::eliminateNucleus(), CLUFactor::factorCount, CLUFactor::factorTime, CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::freeFactorRings(), CLUFactor::Temp::init(), CLUFactor::initFactorMatrix(), CLUFactor::initFactorRings(), CLUFactor::initPerm(), CLUFactor::l, CLUFactor::nzCnt, SLinSolver::OK, CLUFactor::rowSingletons(), CLUFactor::setupColVals(), CLUFactor::setupRowVals(), CLUFactor::Temp::stage, Timer::start(), CLUFactor::L::start, CLUFactor::stat, Timer::stop(), CLUFactor::temp, and CLUFactor::thedim.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::load().
|
private |
Definition at line 2900 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::U::Col::idx, CLUFactor::U::Col::size, soplex::spx_realloc(), CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::forestReMaxCol().
|
private |
Definition at line 358 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::Dring::idx, CLUFactor::U::Col::idx, CLUFactor::U::Col::len, CLUFactor::U::Col::list, CLUFactor::U::Col::max, CLUFactor::Dring::next, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Col::used, and CLUFactor::U::Col::val.
Referenced by CLUFactor::forestReMaxCol().
|
private |
Definition at line 611 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::colMemMult, CLUFactor::U::Col::elem, CLUFactor::forestMinColMem(), CLUFactor::forestPackColumns(), CLUFactor::Dring::idx, CLUFactor::U::Col::idx, init2DR, CLUFactor::U::Col::len, CLUFactor::U::Col::list, CLUFactor::U::Col::max, CLUFactor::Dring::next, CLUFactor::Dring::prev, removeDR, CLUFactor::U::Col::size, CLUFactor::U::Col::start, CLUFactor::u, CLUFactor::U::Col::used, and CLUFactor::U::Col::val.
Referenced by CLUFactor::forestUpdate().
|
protected |
Performs the Forrest-Tomlin update of the LU factorization.
BH: I suppose this is implemented as described in UH Suhl, LM Suhl: A fast LU update for linear programming, Annals of OR 43, p. 33-47, 1993.
p_col | Index of basis column to replace. |
p_work | Dense vector to substitute in the basis. |
num | Number of nonzeros in vector represented by p_work. |
nonz | Indices of nonzero elements in vector p_work. |
The parameters num and nonz are used for the following optimization: If both are nonzero, indices of the nonzero elements provided in nonz (num giving their number) allow to access only those nonzero entries. Otherwise we have to go through the entire dense vector element by element.
After copying p_work into U, p_work is used to expand the row r, which is needed to restore the triangular structure of U.
Also num and nonz are used to maintain a heap if there are only very few nonzeros to be eliminated. This is plainly wrong if the method is called with nonz==0, see todo at the corresponding place below.
SPxStatusException | if the loaded matrix is singular |
The following assert is obviously violated if this method is called with nonzero==0.
Definition at line 710 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, soplex::deQueueMin(), CLUFactor::diag, soplex::enQueueMin(), Param::epsilonUpdate(), CLUFactor::L::firstUnused, CLUFactor::forestReMaxCol(), CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, CLUFactor::isConsistent(), soplex::isNotZero(), CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::makeLvec(), CLUFactor::U::Row::max, CLUFactor::U::Col::max, CLUFactor::maxabs, CLUFactor::nzCnt, SLinSolver::OK, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::remaxRow(), CLUFactor::U::row, CLUFactor::row, SLinSolver::SINGULAR, SOPLEX_FACTOR_MARKER, soplex::spxAbs(), CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::L::start, CLUFactor::stat, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Col::used, CLUFactor::U::Row::val, CLUFactor::U::Col::val, and CLUFactor::L::val.
Referenced by SLUFactor::change(), and CLUFactor::CLUFactor().
|
private |
Definition at line 1859 of file clufactor.cpp.
References CLUFactor::Temp::pivot_col, CLUFactor::Temp::pivot_colNZ, CLUFactor::Temp::pivot_row, CLUFactor::Temp::pivot_rowNZ, soplex::spx_free(), and CLUFactor::temp.
Referenced by CLUFactor::factor().
Definition at line 1390 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::colMemMult, CLUFactor::U::Row::elem, CLUFactor::U::Col::elem, CLUFactor::Dring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, SVectorBase< R >::index(), CLUFactor::initMaxabs, soplex::isNotZero(), soplex::isZero(), 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::minColMem(), CLUFactor::minLMem(), CLUFactor::minRowMem(), CLUFactor::Dring::next, CLUFactor::Perm::perm, CLUFactor::Dring::prev, CLUFactor::U::row, CLUFactor::row, CLUFactor::rowMemMult, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_mark, CLUFactor::setPivot(), SLinSolver::SINGULAR, SVectorBase< R >::size(), soplex::spxAbs(), CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::stat, CLUFactor::temp, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::used, CLUFactor::U::Col::used, CLUFactor::U::Row::val, and SVectorBase< R >::value().
Referenced by CLUFactor::factor().
|
private |
Definition at line 1806 of file clufactor.cpp.
References CLUFactor::col, CLUFactor::Pring::idx, init2DR, initDR, CLUFactor::U::Row::len, CLUFactor::Perm::perm, CLUFactor::Temp::pivot_col, CLUFactor::Temp::pivot_colNZ, CLUFactor::Temp::pivot_row, CLUFactor::Temp::pivot_rowNZ, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_mark, CLUFactor::Temp::s_max, SLinSolver::SINGULAR, soplex::spx_alloc(), CLUFactor::Temp::stage, CLUFactor::stat, CLUFactor::temp, CLUFactor::thedim, and CLUFactor::u.
Referenced by CLUFactor::factor().
|
private |
Definition at line 257 of file clufactor.cpp.
References CLUFactor::col, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::row, and CLUFactor::thedim.
Referenced by CLUFactor::factor().
|
protected |
Definition at line 2951 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::Dring::idx, CLUFactor::Pring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, 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, CLUFactor::Dring::next, CLUFactor::Pring::next, CLUFactor::Perm::perm, CLUFactor::Temp::pivot_colNZ, CLUFactor::Temp::pivot_rowNZ, CLUFactor::Dring::prev, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::U::row, CLUFactor::row, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::stat, CLUFactor::temp, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::used, and CLUFactor::U::Col::used.
Referenced by CLUFactor::CLUFactor(), CLUFactor::forestUpdate(), and SLUFactor::isConsistent().
|
private |
Definition at line 2923 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::l, CLUFactor::minLMem(), CLUFactor::L::row, CLUFactor::L::size, soplex::spx_realloc(), CLUFactor::L::start, and CLUFactor::L::startSize.
Referenced by CLUFactor::eliminatePivot(), CLUFactor::eliminateRowSingletons(), CLUFactor::forestUpdate(), CLUFactor::rowSingletons(), CLUFactor::update(), and CLUFactor::updateNoClear().
|
private |
Definition at line 2890 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::U::Col::idx, CLUFactor::U::Col::size, soplex::spx_realloc(), and CLUFactor::u.
Referenced by CLUFactor::initFactorMatrix(), and CLUFactor::remaxCol().
|
private |
Definition at line 2911 of file clufactor.cpp.
References CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::size, soplex::spx_realloc(), and CLUFactor::L::val.
Referenced by CLUFactor::initFactorMatrix(), and CLUFactor::makeLvec().
|
private |
Definition at line 2875 of file clufactor.cpp.
References CLUFactor::U::Row::idx, CLUFactor::U::row, CLUFactor::U::Row::size, soplex::spx_realloc(), CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::initFactorMatrix(), and CLUFactor::remaxRow().
assignment operator.
Referenced by CLUFactor::Pring::Pring().
|
private |
Definition at line 491 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::Dring::idx, CLUFactor::U::Col::idx, CLUFactor::U::Col::len, CLUFactor::U::Col::list, CLUFactor::U::Col::max, CLUFactor::Dring::next, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::used.
Referenced by CLUFactor::remaxCol().
|
private |
Definition at line 300 of file clufactor.cpp.
References CLUFactor::Dring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Row::len, CLUFactor::U::Row::list, CLUFactor::U::Row::max, CLUFactor::Dring::next, CLUFactor::U::row, CLUFactor::U::Row::start, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::used, and CLUFactor::U::Row::val.
Referenced by CLUFactor::remaxRow().
|
private |
Definition at line 542 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::colMemMult, CLUFactor::U::Col::elem, CLUFactor::Dring::idx, CLUFactor::U::Col::idx, init2DR, CLUFactor::U::Col::len, CLUFactor::U::Col::list, CLUFactor::U::Col::max, CLUFactor::minColMem(), CLUFactor::Dring::next, CLUFactor::packColumns(), CLUFactor::Dring::prev, removeDR, CLUFactor::U::Col::size, CLUFactor::U::Col::start, CLUFactor::u, and CLUFactor::U::Col::used.
Referenced by CLUFactor::updateRow().
|
private |
Definition at line 413 of file clufactor.cpp.
References CLUFactor::U::Row::elem, CLUFactor::Dring::idx, CLUFactor::U::Row::idx, init2DR, CLUFactor::U::Row::len, CLUFactor::U::Row::list, CLUFactor::U::Row::max, CLUFactor::minRowMem(), CLUFactor::Dring::next, CLUFactor::packRows(), CLUFactor::Dring::prev, removeDR, CLUFactor::U::row, CLUFactor::rowMemMult, CLUFactor::U::Row::size, CLUFactor::U::Row::start, CLUFactor::u, CLUFactor::U::Row::used, and CLUFactor::U::Row::val.
Referenced by CLUFactor::forestUpdate(), and CLUFactor::updateRow().
|
private |
Definition at line 1711 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::makeLvec(), CLUFactor::Perm::perm, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_mark, CLUFactor::setPivot(), SLinSolver::SINGULAR, CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::stat, CLUFactor::temp, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::val, and CLUFactor::L::val.
Referenced by CLUFactor::factor().
|
private |
Definition at line 2078 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::Pring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, init2DR, initDR, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::Pring::mkwtz, CLUFactor::Pring::next, CLUFactor::Perm::perm, CLUFactor::Temp::pivot_col, CLUFactor::Temp::pivot_colNZ, CLUFactor::Temp::pivot_row, CLUFactor::Temp::pivot_rowNZ, CLUFactor::Temp::pivots, CLUFactor::Pring::pos, CLUFactor::Pring::prev, REAL, removeDR, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_max, soplex::spxAbs(), CLUFactor::Temp::stage, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::temp, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::eliminateNucleus().
|
private |
Definition at line 266 of file clufactor.cpp.
References CLUFactor::col, CLUFactor::diag, Param::epsilonPivot(), CLUFactor::maxabs, MSG_ERROR, CLUFactor::Perm::orig, CLUFactor::Perm::perm, REAL, CLUFactor::row, SLinSolver::SINGULAR, soplex::spxAbs(), and CLUFactor::stat.
Referenced by CLUFactor::colSingletons(), CLUFactor::eliminateColSingletons(), CLUFactor::eliminateNucleus(), CLUFactor::eliminatePivot(), CLUFactor::eliminateRowSingletons(), CLUFactor::initFactorMatrix(), and CLUFactor::rowSingletons().
|
private |
Definition at line 2606 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Col::max, CLUFactor::maxabs, REAL, CLUFactor::U::row, CLUFactor::U::Col::size, soplex::spx_alloc(), soplex::spx_free(), soplex::spxAbs(), CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, CLUFactor::U::Row::val, and CLUFactor::U::Col::val.
Referenced by CLUFactor::factor().
|
private |
Definition at line 2661 of file clufactor.cpp.
References CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::L::row, CLUFactor::row, CLUFactor::L::rperm, CLUFactor::L::rval, soplex::spx_alloc(), soplex::spx_free(), CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Referenced by CLUFactor::factor().
Definition at line 4248 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveLeft().
|
protected |
Definition at line 4283 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft2(), CLUFactor::solveLleft2forest(), CLUFactor::solveUleft2(), CLUFactor::solveUpdateLeft2(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor().
Definition at line 4266 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleftEps(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor().
|
private |
Definition at line 4015 of file clufactor.cpp.
References CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::L::row, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeft(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeft3sparse().
Definition at line 4548 of file clufactor.cpp.
References soplex::deQueueMax(), soplex::enQueueMax(), CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::L::row, CLUFactor::L::rperm, CLUFactor::L::rval, SOPLEX_FACTOR_MARKER, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Definition at line 3882 of file clufactor.cpp.
References CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::L::row, CLUFactor::row, CLUFactor::L::rval, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeft2().
Definition at line 3815 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeft2().
Definition at line 4061 of file clufactor.cpp.
References CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::L::row, CLUFactor::row, CLUFactor::L::rval, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeftEps().
Definition at line 3985 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeft(), CLUFactor::solveLeftEps(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeft3sparse().
Definition at line 4462 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::row, CLUFactor::L::size, SOPLEX_FACTOR_MARKER, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
|
private |
Definition at line 4515 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::size, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeftNoNZ().
|
private |
Definition at line 4646 of file clufactor.cpp.
References CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::rbeg, CLUFactor::L::ridx, CLUFactor::L::rorig, CLUFactor::L::row, CLUFactor::L::rperm, CLUFactor::L::rval, CLUFactor::L::size, CLUFactor::L::start, CLUFactor::thedim, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeftNoNZ().
|
protected |
Definition at line 3319 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, MSG_DEBUG, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by SLUFactor::change(), CLUFactor::CLUFactor(), CLUFactor::solveRight(), and CLUFactor::solveRight4update().
Definition at line 3378 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::solveRight2(), and CLUFactor::solveRight2update().
Definition at line 3581 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright(), CLUFactor::solveUpdateRight(), CLUFactor::solveUright(), and CLUFactor::L::updateType.
Referenced by SLUFactor::change(), CLUFactor::CLUFactor(), and SLUFactor::solveRight().
Definition at line 3626 of file clufactor.cpp.
References CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::idx, CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::Perm::orig, CLUFactor::U::row, CLUFactor::row, CLUFactor::solveLright2(), CLUFactor::solveUleft(), CLUFactor::solveUpdateRight2(), CLUFactor::solveUright2(), CLUFactor::U::Row::start, CLUFactor::thedim, CLUFactor::u, CLUFactor::L::updateType, and CLUFactor::U::Row::val.
Referenced by CLUFactor::CLUFactor().
|
protected |
Definition at line 3590 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright2(), CLUFactor::solveUpdateRight2(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::thedim, and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor().
|
protected |
Definition at line 3552 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright(), CLUFactor::solveUpdateRight(), CLUFactor::solveUright(), CLUFactor::solveUrightEps(), CLUFactor::thedim, and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor().
Definition at line 3683 of file clufactor.cpp.
References ASSERT_WARN, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::idx, soplex::infinity, CLUFactor::U::Row::len, CLUFactor::Perm::orig, CLUFactor::U::row, CLUFactor::row, soplex::spxAbs(), CLUFactor::U::Row::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::solveLeft(), CLUFactor::solveLeftEps(), CLUFactor::solveRight2(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeft3sparse().
Definition at line 4308 of file clufactor.cpp.
References CLUFactor::col, soplex::deQueueMin(), CLUFactor::diag, soplex::enQueueMin(), CLUFactor::U::Row::idx, soplex::isNotZero(), CLUFactor::U::Row::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::U::row, CLUFactor::row, CLUFactor::U::Row::size, SOPLEX_FACTOR_MARKER, CLUFactor::U::Row::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Definition at line 3746 of file clufactor.cpp.
References CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::idx, CLUFactor::U::Row::len, CLUFactor::Perm::orig, CLUFactor::U::row, CLUFactor::row, CLUFactor::U::Row::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::solveLeft2().
Definition at line 4388 of file clufactor.cpp.
References CLUFactor::col, soplex::deQueueMin(), CLUFactor::diag, soplex::enQueueMin(), CLUFactor::U::Row::idx, soplex::isNotZero(), CLUFactor::U::Row::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::U::row, CLUFactor::row, CLUFactor::U::Row::size, SOPLEX_FACTOR_MARKER, CLUFactor::U::Row::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Row::val.
Referenced by CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeftNoNZ().
|
private |
Definition at line 4125 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeft(), CLUFactor::solveLeftEps(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), CLUFactor::vSolveLeft3sparse(), and CLUFactor::vSolveLeftNoNZ().
Definition at line 4193 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::row, CLUFactor::L::size, SOPLEX_FACTOR_MARKER, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::L::updateType, and CLUFactor::L::val.
Definition at line 4156 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::solveLeft2().
|
private |
Definition at line 3459 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::solveRight(), and CLUFactor::solveRight4update().
Definition at line 3491 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::solveRight2(), and CLUFactor::solveRight2update().
Definition at line 3111 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Col::idx, CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::row, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::solveRight(), and CLUFactor::solveRight4update().
Definition at line 3174 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Col::idx, CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::row, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::solveRight2(), and CLUFactor::solveRight2update().
|
private |
Definition at line 3237 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Col::idx, soplex::isNotZero(), CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::row, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::solveRight2update().
Definition at line 3131 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Col::idx, soplex::isNotZero(), CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::row, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::solveRight4update().
|
protected |
Definition at line 1276 of file clufactor.cpp.
References CLUFactor::L::idx, CLUFactor::l, CLUFactor::makeLvec(), CLUFactor::maxabs, SLinSolver::OK, soplex::spxAbs(), CLUFactor::stat, and CLUFactor::L::val.
Referenced by SLUFactor::changeEta(), and CLUFactor::CLUFactor().
|
protected |
Definition at line 1320 of file clufactor.cpp.
References CLUFactor::L::idx, CLUFactor::l, CLUFactor::makeLvec(), CLUFactor::maxabs, SLinSolver::OK, soplex::spxAbs(), CLUFactor::stat, and CLUFactor::L::val.
Referenced by SLUFactor::change(), and CLUFactor::CLUFactor().
Definition at line 2298 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, CLUFactor::L::idx, init2DR, soplex::isNotZero(), soplex::isZero(), CLUFactor::l, CLUFactor::U::Row::len, CLUFactor::U::Col::len, CLUFactor::U::Row::max, CLUFactor::U::Col::max, CLUFactor::Perm::perm, CLUFactor::Temp::pivot_row, CLUFactor::Temp::pivot_rowNZ, CLUFactor::remaxCol(), CLUFactor::remaxRow(), removeDR, CLUFactor::U::row, CLUFactor::row, CLUFactor::Temp::s_cact, CLUFactor::Temp::s_mark, CLUFactor::Temp::s_max, CLUFactor::U::Row::start, CLUFactor::U::Col::start, CLUFactor::temp, CLUFactor::u, CLUFactor::U::Row::val, CLUFactor::L::val, and CLUFactor::work.
Referenced by CLUFactor::eliminatePivot().
Definition at line 4711 of file clufactor.cpp.
References SOPLEX_FACTOR_MARKER, and CLUFactor::thedim.
Referenced by CLUFactor::vSolveLright(), CLUFactor::vSolveLright2(), and CLUFactor::vSolveLright3().
Definition at line 6167 of file clufactor.cpp.
References CLUFactor::L::firstUpdate, CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), CLUFactor::thedim, and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveLeft().
|
protected |
Definition at line 6195 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveLleftForestNoNZ(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveUleft(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveLeft().
|
protected |
sparse version of solving 2 systems of equations
Definition at line 6224 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveLeft().
|
protected |
Definition at line 6251 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveLleftForestNoNZ(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveUleft(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveLeft().
|
protected |
sparse version of solving 3 systems of equations
Definition at line 6287 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveLeft().
Definition at line 6320 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleftForestNoNZ(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by CLUFactor::CLUFactor().
Definition at line 4728 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::updateSolutionVectorLright(), CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveRight4update(), and CLUFactor::vSolveRightNoNZ().
|
private |
Definition at line 4794 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::updateSolutionVectorLright(), CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveRight4update2(), and CLUFactor::vSolveRight4update2sparse().
|
private |
Definition at line 4898 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::row, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::updateSolutionVectorLright(), CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveRight4update3(), and CLUFactor::vSolveRight4update3sparse().
|
protected |
Definition at line 5599 of file clufactor.cpp.
References soplex::enQueueMax(), soplex::isNotZero(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::row, CLUFactor::thedim, CLUFactor::L::updateType, CLUFactor::vSolveLright(), CLUFactor::vSolveUpdateRight(), and CLUFactor::vSolveUright().
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solveRight4update().
|
protected |
Definition at line 5667 of file clufactor.cpp.
References soplex::enQueueMax(), soplex::isNotZero(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::row, CLUFactor::thedim, CLUFactor::L::updateType, CLUFactor::vSolveLright2(), CLUFactor::vSolveUpdateRight(), CLUFactor::vSolveUpdateRightNoNZ(), CLUFactor::vSolveUright(), and CLUFactor::vSolveUrightNoNZ().
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solve2right4update().
|
protected |
sparse version of above method
Definition at line 5788 of file clufactor.cpp.
References soplex::enQueueMax(), soplex::isNotZero(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::row, CLUFactor::thedim, CLUFactor::L::updateType, CLUFactor::vSolveLright2(), CLUFactor::vSolveUpdateRight(), and CLUFactor::vSolveUright().
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solve2right4update().
|
protected |
Definition at line 5868 of file clufactor.cpp.
References soplex::enQueueMax(), soplex::isNotZero(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::row, CLUFactor::thedim, CLUFactor::L::updateType, CLUFactor::vSolveLright3(), CLUFactor::vSolveUpdateRight(), CLUFactor::vSolveUpdateRightNoNZ(), CLUFactor::vSolveUright(), and CLUFactor::vSolveUrightNoNZ().
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solve3right4update().
|
protected |
sparse version of above method
Definition at line 6018 of file clufactor.cpp.
References soplex::enQueueMax(), soplex::isNotZero(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::row, CLUFactor::thedim, CLUFactor::L::updateType, CLUFactor::vSolveLright3(), CLUFactor::vSolveUpdateRight(), and CLUFactor::vSolveUright().
Referenced by CLUFactor::CLUFactor(), and SLUFactor::solve3right4update().
Definition at line 6114 of file clufactor.cpp.
References soplex::enQueueMax(), CLUFactor::l, CLUFactor::Perm::perm, CLUFactor::row, CLUFactor::thedim, CLUFactor::L::updateType, CLUFactor::vSolveLright(), CLUFactor::vSolveUpdateRightNoNZ(), and CLUFactor::vSolveUrightNoNZ().
Referenced by CLUFactor::CLUFactor().
Definition at line 5517 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, soplex::isNotZero(), CLUFactor::l, CLUFactor::L::row, CLUFactor::L::size, SOPLEX_FACTOR_MARKER, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveRight4update(), CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update2sparse(), CLUFactor::vSolveRight4update3(), and CLUFactor::vSolveRight4update3sparse().
Definition at line 5561 of file clufactor.cpp.
References CLUFactor::L::firstUnused, CLUFactor::L::firstUpdate, CLUFactor::L::idx, CLUFactor::l, CLUFactor::L::row, CLUFactor::L::size, CLUFactor::L::start, CLUFactor::thedim, CLUFactor::L::updateType, and CLUFactor::L::val.
Referenced by CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update3(), and CLUFactor::vSolveRightNoNZ().
Definition at line 5062 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, soplex::deQueueMax(), CLUFactor::diag, soplex::enQueueMax(), CLUFactor::U::Col::idx, soplex::isNotZero(), CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::row, SOPLEX_FACTOR_MARKER, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::vSolveRight4update(), CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update2sparse(), CLUFactor::vSolveRight4update3(), and CLUFactor::vSolveRight4update3sparse().
|
private |
Definition at line 5272 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, soplex::deQueueMax(), CLUFactor::diag, soplex::enQueueMax(), CLUFactor::U::Col::idx, soplex::isNotZero(), CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::row, SOPLEX_FACTOR_MARKER, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Definition at line 5169 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, soplex::deQueueMax(), CLUFactor::diag, soplex::enQueueMax(), CLUFactor::U::Col::idx, soplex::isNotZero(), CLUFactor::U::Col::len, CLUFactor::Perm::orig, CLUFactor::Perm::perm, CLUFactor::row, SOPLEX_FACTOR_MARKER, CLUFactor::U::Col::start, CLUFactor::thedim, CLUFactor::u, and CLUFactor::U::Col::val.
Referenced by CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update3(), and CLUFactor::vSolveRightNoNZ().
|
protected |
column permutation matrices
Definition at line 196 of file clufactor.h.
Referenced by SLUFactor::assign(), CLUFactor::dump(), CLUFactor::eliminateColSingletons(), CLUFactor::eliminateNucleus(), CLUFactor::eliminatePivot(), CLUFactor::forestUpdate(), SLUFactor::freeAll(), CLUFactor::initFactorRings(), CLUFactor::initPerm(), CLUFactor::isConsistent(), SLUFactor::load(), CLUFactor::selectPivots(), CLUFactor::setPivot(), SLUFactor::SLUFactor(), CLUFactor::solveRight2(), CLUFactor::solveUleft(), CLUFactor::solveUleft2(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUright(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::solveUrightEps(), CLUFactor::vSolveUright(), CLUFactor::vSolveUright2(), and CLUFactor::vSolveUrightNoNZ().
|
protected |
factor of minimum Memory * number of nonzeros
Definition at line 192 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::forestReMaxCol(), CLUFactor::initFactorMatrix(), and CLUFactor::remaxCol().
|
protected |
Array of pivot elements.
Definition at line 199 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::conditionEstimate(), CLUFactor::dump(), CLUFactor::forestUpdate(), SLUFactor::freeAll(), SLUFactor::load(), CLUFactor::setPivot(), SLUFactor::SLUFactor(), CLUFactor::solveRight2(), CLUFactor::solveUleft(), CLUFactor::solveUleft2(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUright(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::solveUrightEps(), CLUFactor::vSolveUright(), CLUFactor::vSolveUright2(), and CLUFactor::vSolveUrightNoNZ().
|
protected |
Number of factorizations.
Definition at line 205 of file clufactor.h.
Referenced by CLUFactor::factor(), SLUFactor::getFactorCount(), SLUFactor::resetCounters(), and SLUFactor::SLUFactor().
|
protected |
Time spent in factorizations.
Definition at line 204 of file clufactor.h.
Referenced by SLUFactor::assign(), CLUFactor::factor(), SLUFactor::getFactorTime(), SLUFactor::resetCounters(), SLUFactor::resetFactorTime(), SLUFactor::SLUFactor(), and SLUFactor::~SLUFactor().
|
protected |
maximum abs number in initail Matrix
Definition at line 188 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::initFactorMatrix(), and SLUFactor::stability().
|
protected |
L matrix.
Definition at line 198 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::change(), SLUFactor::clear(), CLUFactor::dump(), CLUFactor::eliminateRowSingletons(), CLUFactor::factor(), CLUFactor::forestUpdate(), SLUFactor::freeAll(), CLUFactor::isConsistent(), SLUFactor::load(), CLUFactor::makeLvec(), SLUFactor::memory(), CLUFactor::minLMem(), CLUFactor::rowSingletons(), CLUFactor::setupRowVals(), SLUFactor::SLUFactor(), SLUFactor::solve2right4update(), SLUFactor::solve3right4update(), CLUFactor::solveLeft(), CLUFactor::solveLeft2(), CLUFactor::solveLeftEps(), CLUFactor::solveLleft(), CLUFactor::solveLleft2(), CLUFactor::solveLleft2forest(), CLUFactor::solveLleftEps(), CLUFactor::solveLleftForest(), CLUFactor::solveLleftForestNoNZ(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveLright(), CLUFactor::solveLright2(), CLUFactor::solveRight(), CLUFactor::solveRight2(), CLUFactor::solveRight2update(), SLUFactor::solveRight4update(), CLUFactor::solveRight4update(), CLUFactor::solveUpdateLeft(), CLUFactor::solveUpdateLeft2(), CLUFactor::solveUpdateRight(), CLUFactor::solveUpdateRight2(), CLUFactor::update(), CLUFactor::updateNoClear(), CLUFactor::updateRow(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), CLUFactor::vSolveLeft3sparse(), CLUFactor::vSolveLeftNoNZ(), CLUFactor::vSolveLright(), CLUFactor::vSolveLright2(), CLUFactor::vSolveLright3(), CLUFactor::vSolveRight4update(), CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update2sparse(), CLUFactor::vSolveRight4update3(), CLUFactor::vSolveRight4update3sparse(), CLUFactor::vSolveRightNoNZ(), CLUFactor::vSolveUpdateRight(), and CLUFactor::vSolveUpdateRightNoNZ().
|
protected |
factor of minimum Memory * number of nonzeros
Definition at line 193 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), and CLUFactor::initFactorMatrix().
|
protected |
Definition at line 189 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::forestUpdate(), CLUFactor::setPivot(), CLUFactor::setupColVals(), SLUFactor::stability(), CLUFactor::update(), and CLUFactor::updateNoClear().
|
protected |
number of nonzeros in U
Definition at line 187 of file clufactor.h.
Referenced by SLUFactor::assign(), CLUFactor::factor(), CLUFactor::forestUpdate(), SLUFactor::memory(), and SLUFactor::SLUFactor().
|
protected |
row permutation matrices
Definition at line 195 of file clufactor.h.
Referenced by SLUFactor::assign(), CLUFactor::colSingletons(), CLUFactor::dump(), CLUFactor::eliminatePivot(), CLUFactor::eliminateRowSingletons(), CLUFactor::forestUpdate(), SLUFactor::freeAll(), CLUFactor::initFactorMatrix(), CLUFactor::initFactorRings(), CLUFactor::initPerm(), CLUFactor::isConsistent(), SLUFactor::load(), CLUFactor::rowSingletons(), CLUFactor::selectPivots(), CLUFactor::setPivot(), CLUFactor::setupRowVals(), SLUFactor::SLUFactor(), CLUFactor::solveLleft2(), CLUFactor::solveLleftEps(), CLUFactor::solveRight2(), CLUFactor::solveUleft(), CLUFactor::solveUleft2(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUright(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::solveUrightEps(), CLUFactor::updateRow(), CLUFactor::vSolveRight4update(), CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update2sparse(), CLUFactor::vSolveRight4update3(), CLUFactor::vSolveRight4update3sparse(), CLUFactor::vSolveRightNoNZ(), CLUFactor::vSolveUright(), CLUFactor::vSolveUright2(), and CLUFactor::vSolveUrightNoNZ().
|
protected |
factor of minimum Memory * number of nonzeros
Definition at line 191 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::initFactorMatrix(), and CLUFactor::remaxRow().
|
protected |
Status indicator.
Definition at line 184 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::colSingletons(), CLUFactor::eliminateNucleus(), CLUFactor::factor(), CLUFactor::forestUpdate(), CLUFactor::initFactorMatrix(), CLUFactor::initFactorRings(), CLUFactor::isConsistent(), SLUFactor::load(), CLUFactor::rowSingletons(), CLUFactor::setPivot(), SLUFactor::status(), CLUFactor::update(), and CLUFactor::updateNoClear().
|
private |
Temporary storage.
Definition at line 213 of file clufactor.h.
Referenced by CLUFactor::colSingletons(), CLUFactor::eliminateColSingletons(), CLUFactor::eliminateNucleus(), CLUFactor::eliminatePivot(), CLUFactor::eliminateRowSingletons(), CLUFactor::factor(), CLUFactor::freeFactorRings(), CLUFactor::initFactorMatrix(), CLUFactor::initFactorRings(), CLUFactor::isConsistent(), CLUFactor::rowSingletons(), CLUFactor::selectPivots(), and CLUFactor::updateRow().
|
protected |
dimension of factorized matrix
Definition at line 186 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::colSingletons(), SLUFactor::dim(), CLUFactor::dump(), CLUFactor::eliminateNucleus(), CLUFactor::factor(), CLUFactor::forestPackColumns(), CLUFactor::forestUpdate(), CLUFactor::initFactorMatrix(), CLUFactor::initFactorRings(), CLUFactor::initPerm(), CLUFactor::isConsistent(), SLUFactor::load(), CLUFactor::packColumns(), CLUFactor::packRows(), CLUFactor::rowSingletons(), CLUFactor::selectPivots(), CLUFactor::setupColVals(), CLUFactor::setupRowVals(), SLUFactor::SLUFactor(), CLUFactor::solveLleft(), CLUFactor::solveLleft2(), CLUFactor::solveLleftEps(), CLUFactor::solveLleftForest(), CLUFactor::solveLleftForestNoNZ(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveRight2(), CLUFactor::solveRight2update(), CLUFactor::solveRight4update(), CLUFactor::solveUleft(), CLUFactor::solveUleft2(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUpdateLeft(), CLUFactor::solveUright(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::solveUrightEps(), CLUFactor::updateSolutionVectorLright(), CLUFactor::vSolveLeft(), CLUFactor::vSolveLright(), CLUFactor::vSolveLright2(), CLUFactor::vSolveLright3(), CLUFactor::vSolveRight4update(), CLUFactor::vSolveRight4update2(), CLUFactor::vSolveRight4update2sparse(), CLUFactor::vSolveRight4update3(), CLUFactor::vSolveRight4update3sparse(), CLUFactor::vSolveRightNoNZ(), CLUFactor::vSolveUpdateRight(), CLUFactor::vSolveUpdateRightNoNZ(), CLUFactor::vSolveUright(), CLUFactor::vSolveUright2(), and CLUFactor::vSolveUrightNoNZ().
|
protected |
U matrix.
Definition at line 200 of file clufactor.h.
Referenced by SLUFactor::assign(), SLUFactor::clear(), CLUFactor::colSingletons(), CLUFactor::dump(), CLUFactor::eliminateColSingletons(), CLUFactor::eliminateNucleus(), CLUFactor::eliminatePivot(), CLUFactor::eliminateRowSingletons(), CLUFactor::forestMinColMem(), CLUFactor::forestPackColumns(), CLUFactor::forestReMaxCol(), CLUFactor::forestUpdate(), SLUFactor::freeAll(), CLUFactor::initFactorMatrix(), CLUFactor::initFactorRings(), CLUFactor::isConsistent(), SLUFactor::load(), CLUFactor::minColMem(), CLUFactor::minRowMem(), CLUFactor::packColumns(), CLUFactor::packRows(), CLUFactor::remaxCol(), CLUFactor::remaxRow(), CLUFactor::rowSingletons(), CLUFactor::selectPivots(), CLUFactor::setupColVals(), SLUFactor::SLUFactor(), CLUFactor::solveRight2(), CLUFactor::solveUleft(), CLUFactor::solveUleft2(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUright(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::solveUrightEps(), CLUFactor::updateRow(), CLUFactor::vSolveUright(), CLUFactor::vSolveUright2(), and CLUFactor::vSolveUrightNoNZ().
|
protected |
Working array: must always be left as 0!
Definition at line 202 of file clufactor.h.
Referenced by SLUFactor::assign(), CLUFactor::eliminatePivot(), SLUFactor::load(), SLUFactor::SLUFactor(), and CLUFactor::updateRow().