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 1616 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 2827 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 1999 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 2528 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 2432 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 1878 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 2770 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 2898 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 356 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 609 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 708 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 1857 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 1388 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 1804 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 255 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 2949 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 2921 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 2888 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 2909 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 2873 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 489 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 298 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 540 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 411 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 2076 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 264 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 2604 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 2659 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 4155 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 4190 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleft2(), CLUFactor::solveLleft2forest(), CLUFactor::solveUleft2(), CLUFactor::solveUpdateLeft2(), and CLUFactor::L::updateType.
Definition at line 4173 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLleftEps(), CLUFactor::solveLleftForest(), CLUFactor::solveUleft(), CLUFactor::solveUpdateLeft(), and CLUFactor::L::updateType.
|
private |
Definition at line 3922 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 4455 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 3789 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 3722 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 3968 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 3892 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 4369 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 4422 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 4553 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 3294 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 3353 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 3556 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 3601 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright2(), CLUFactor::solveUpdateRight2(), CLUFactor::solveUright2(), and CLUFactor::L::updateType.
|
protected |
Definition at line 3565 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 3527 of file clufactor.cpp.
References CLUFactor::l, CLUFactor::solveLright(), CLUFactor::solveUpdateRight(), CLUFactor::solveUright(), CLUFactor::solveUrightEps(), CLUFactor::thedim, and CLUFactor::L::updateType.
Definition at line 3619 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 4215 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 3653 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 4295 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 4032 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 4100 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 4063 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 3434 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 3466 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 3086 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 3149 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 3212 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 3106 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 1274 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 1318 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 2296 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 4618 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 4635 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 4701 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 4805 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 5506 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 5574 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 5695 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 5775 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 5925 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 6021 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 5424 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 5468 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 4969 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 5179 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 5076 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().