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 | |
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) |
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.
|
private |
Definition at line 1617 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 2824 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 SLUFactor::dump().
|
private |
Definition at line 1998 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 2526 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 2430 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 1877 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 2767 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 SLUFactor::load().
|
private |
Definition at line 2895 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 360 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 613 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 712 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().
|
private |
Definition at line 1856 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 1391 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 1803 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 258 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 2946 of file clufactor.cpp.
References CLUFactor::U::col, CLUFactor::col, CLUFactor::Dring::idx, CLUFactor::Pring::idx, CLUFactor::U::Row::idx, CLUFactor::U::Col::idx, 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::U::row, CLUFactor::row, 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::forestUpdate(), and SLUFactor::isConsistent().
|
private |
Definition at line 2918 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 2885 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 2906 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 2870 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().
|
private |
Definition at line 493 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 302 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 544 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 415 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 1709 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 2075 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 267 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 2601 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 2656 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 4143 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by SLUFactor::solveLeft().
|
protected |
Definition at line 4178 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft2(), CLUFactor::solveLleft2forest(), CLUFactor::solveUleft2(), CLUFactor::solveUpdateLeft2(), and CLUFactor::L::updateType.
Definition at line 4161 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleftEps(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
|
private |
Definition at line 3910 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 4443 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 3778 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 3712 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 3957 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 3880 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 4357 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 4410 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 4542 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 3288 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::solveRight(), and CLUFactor::solveRight4update().
Definition at line 3349 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 3548 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright(), CLUFactor::solveUpdateRight(), CLUFactor::solveUright(), and CLUFactor::L::updateType.
Referenced by SLUFactor::change(), and SLUFactor::solveRight().
Definition at line 3593 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright2(), CLUFactor::solveUpdateRight2(), CLUFactor::solveUright2(), and CLUFactor::L::updateType.
|
protected |
Definition at line 3557 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright2(), CLUFactor::solveUpdateRight2(), CLUFactor::solveUright2(), CLUFactor::solveUright2eps(), CLUFactor::thedim, and CLUFactor::L::updateType.
|
protected |
Definition at line 3519 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright(), CLUFactor::solveUpdateRight(), CLUFactor::solveUright(), CLUFactor::solveUrightEps(), CLUFactor::thedim, and CLUFactor::L::updateType.
Definition at line 3611 of file clufactor.cpp.
References ASSERT_WARN, CLUFactor::col, CLUFactor::diag, CLUFactor::U::Row::idx, 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::vSolveLeft(), CLUFactor::vSolveLeft2(), CLUFactor::vSolveLeft2sparse(), CLUFactor::vSolveLeft3(), and CLUFactor::vSolveLeft3sparse().
Definition at line 4203 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 3645 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 4283 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 4022 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 4088 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 4052 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 3428 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 3460 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 3084 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 3147 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 3208 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 3104 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 1277 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().
|
protected |
Definition at line 1321 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().
Definition at line 2294 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 4608 of file clufactor.cpp.
References SOPLEX_FACTOR_MARKER, and CLUFactor::thedim.
Referenced by CLUFactor::vSolveLright(), CLUFactor::vSolveLright2(), and CLUFactor::vSolveLright3().
Definition at line 6074 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 SLUFactor::solveLeft().
|
protected |
Definition at line 6102 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 SLUFactor::solveLeft().
|
protected |
sparse version of solving 2 systems of equations
Definition at line 6131 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by SLUFactor::solveLeft().
|
protected |
Definition at line 6158 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 SLUFactor::solveLeft().
|
protected |
sparse version of solving 3 systems of equations
Definition at line 6194 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Referenced by SLUFactor::solveLeft().
Definition at line 6227 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleftForestNoNZ(), CLUFactor::solveLleftNoNZ(), CLUFactor::solveUleftNoNZ(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
Definition at line 4627 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 4695 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 4804 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 5510 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 SLUFactor::solveRight4update().
|
protected |
Definition at line 5578 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 SLUFactor::solve2right4update().
|
protected |
sparse version of above method
Definition at line 5698 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 SLUFactor::solve2right4update().
|
protected |
Definition at line 5778 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 SLUFactor::solve3right4update().
|
protected |
sparse version of above method
Definition at line 5926 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 SLUFactor::solve3right4update().
Definition at line 6022 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().
Definition at line 5428 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 5472 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 4975 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 5187 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 5083 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::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::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(), 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::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::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::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().