|
Implementation of sparse LU factorization with Rational precision.This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting.
More...
#include <clufactor_rational.h>
|
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...
|
|
|
|
| CLUFactorRational () |
| default construtor.
|
|
|
void | solveLright (Rational *vec) |
|
int | solveRight4update (Rational *vec, int *nonz, Rational *rhs, Rational *forest, int *forestNum, int *forestIdx) |
|
void | solveRight (Rational *vec, Rational *rhs) |
|
int | solveRight2update (Rational *vec1, Rational *vec2, Rational *rhs1, Rational *rhs2, int *nonz, Rational *forest, int *forestNum, int *forestIdx) |
|
void | solveRight2 (Rational *vec1, Rational *vec2, Rational *rhs1, Rational *rhs2) |
|
void | solveLeft (Rational *vec, Rational *rhs) |
|
int | solveLeftEps (Rational *vec, Rational *rhs, int *nonz) |
|
int | solveLeft2 (Rational *vec1, int *nonz, Rational *vec2, Rational *rhs1, Rational *rhs2) |
|
int | vSolveRight4update (Rational *vec, int *idx, Rational *rhs, int *ridx, int rn, Rational *forest, int *forestNum, int *forestIdx) |
|
int | vSolveRight4update2 (Rational *vec, int *idx, Rational *rhs, int *ridx, int rn, Rational *vec2, Rational *rhs2, int *ridx2, int rn2, Rational *forest, int *forestNum, int *forestIdx) |
|
int | vSolveRight4update3 (Rational *vec, int *idx, Rational *rhs, int *ridx, int rn, Rational *vec2, Rational *rhs2, int *ridx2, int rn2, Rational *vec3, Rational *rhs3, int *ridx3, int rn3, Rational *forest, int *forestNum, int *forestIdx) |
|
void | vSolveRightNoNZ (Rational *vec2, Rational *rhs2, int *ridx2, int rn2) |
|
int | vSolveLeft (Rational *vec, int *idx, Rational *rhs, int *ridx, int rn) |
|
void | vSolveLeftNoNZ (Rational *vec, Rational *rhs, int *ridx, int rn) |
|
int | vSolveLeft2 (Rational *vec, int *idx, Rational *rhs, int *ridx, int rn, Rational *vec2, Rational *rhs2, int *ridx2, int rn2) |
|
int | vSolveLeft3 (Rational *vec, int *idx, Rational *rhs, int *ridx, int rn, Rational *vec2, Rational *rhs2, int *ridx2, int rn2, Rational *vec3, Rational *rhs3, int *ridx3, int rn3) |
|
void | forestUpdate (int col, Rational *work, int num, int *nonz) |
| Performs the Forrest-Tomlin update of the LU factorization.
|
|
void | update (int p_col, Rational *p_work, const int *p_idx, int num) |
|
void | updateNoClear (int p_col, const Rational *p_work, const int *p_idx, int num) |
|
void | factor (const SVectorRational **vec, const Rational &threshold) |
| pivoting threshold
|
|
|
void | dump () const |
|
bool | isConsistent () const |
|
|
|
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 (Rational *wrk, Rational *vec) |
|
int | solveUrightEps (Rational *vec, int *nonz, Rational *rhs) |
|
void | solveUright2 (Rational *work1, Rational *vec1, Rational *work2, Rational *vec2) |
|
int | solveUright2eps (Rational *work1, Rational *vec1, Rational *work2, Rational *vec2, int *nonz) |
|
void | solveLright2 (Rational *vec1, Rational *vec2) |
|
void | solveUpdateRight (Rational *vec) |
|
void | solveUpdateRight2 (Rational *vec1, Rational *vec2) |
|
void | solveUleft (Rational *work, Rational *vec) |
|
void | solveUleft2 (Rational *work1, Rational *vec1, Rational *work2, Rational *vec2) |
|
int | solveLleft2forest (Rational *vec1, int *, Rational *vec2) |
|
void | solveLleft2 (Rational *vec1, int *, Rational *vec2) |
|
int | solveLleftForest (Rational *vec, int *) |
|
void | solveLleft (Rational *vec) |
|
int | solveLleftEps (Rational *vec, int *nonz) |
|
void | solveUpdateLeft (Rational *vec) |
|
void | solveUpdateLeft2 (Rational *vec1, Rational *vec2) |
|
int | vSolveLright (Rational *vec, int *ridx, int rn) |
|
void | vSolveLright2 (Rational *vec, int *ridx, int *rnptr, Rational *vec2, int *ridx2, int *rn2ptr) |
|
void | vSolveLright3 (Rational *vec, int *ridx, int *rnptr, Rational *vec2, int *ridx2, int *rn2ptr, Rational *vec3, int *ridx3, int *rn3ptr) |
|
int | vSolveUright (Rational *vec, int *vidx, Rational *rhs, int *ridx, int rn) |
|
void | vSolveUrightNoNZ (Rational *vec, Rational *rhs, int *ridx, int rn) |
|
int | vSolveUright2 (Rational *vec, int *vidx, Rational *rhs, int *ridx, int rn, Rational *vec2, Rational *rhs2, int *ridx2, int rn2) |
|
int | vSolveUpdateRight (Rational *vec, int *ridx, int n) |
|
void | vSolveUpdateRightNoNZ (Rational *vec) |
|
int | solveUleft (Rational *vec, int *vecidx, Rational *rhs, int *rhsidx, int rhsn) |
|
void | solveUleftNoNZ (Rational *vec, Rational *rhs, int *rhsidx, int rhsn) |
|
int | solveLleftForest (Rational *vec, int *nonz, int n) |
|
void | solveLleftForestNoNZ (Rational *vec) |
|
int | solveLleft (Rational *vec, int *nonz, int rn) |
|
void | solveLleftNoNZ (Rational *vec) |
|
int | solveUpdateLeft (Rational *vec, int *nonz, int n) |
|
void | forestPackColumns () |
|
void | forestMinColMem (int size) |
|
void | forestReMaxCol (int col, int len) |
|
void | initPerm () |
|
void | initFactorMatrix (const SVectorRational **vec) |
|
void | minLMem (int size) |
|
void | setPivot (const int p_stage, const int p_col, const int p_row, const Rational &val) |
|
void | colSingletons () |
|
void | rowSingletons () |
|
void | initFactorRings () |
|
void | freeFactorRings () |
|
int | setupColVals () |
|
void | setupRowVals () |
|
void | eliminateRowSingletons () |
|
void | eliminateColSingletons () |
|
void | selectPivots (const Rational &threshold) |
|
int | updateRow (int r, int lv, int prow, int pcol, const Rational &pval) |
|
void | eliminatePivot (int prow, int pos) |
|
void | eliminateNucleus (const Rational &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) |
|
bool | timeLimitReached () |
|
|
| CLUFactorRational (const CLUFactorRational &) |
| copy construtor.
|
|
CLUFactorRational & | operator= (const CLUFactorRational &) |
| assignment operator.
|
|
Implementation of sparse LU factorization with Rational precision.
This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting.
Definition at line 39 of file clufactor_rational.h.
Definition at line 1592 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_mark, CLUFactorRational::setPivot(), SLinSolverRational::SINGULAR, CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::stat, CLUFactorRational::temp, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::factor().
Definition at line 2820 of file clufactor_rational.cpp.
References CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::L::firstUnused, CLUFactorRational::U::Row::idx, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::U::Row::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::U::row, CLUFactorRational::L::row, CLUFactorRational::row, CLUFactorRational::U::Row::start, CLUFactorRational::L::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Row::val, and CLUFactorRational::L::val.
Referenced by SLUFactorRational::dump().
void eliminateColSingletons |
( |
| ) |
|
|
private |
Definition at line 1975 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::Pring::idx, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, init2DR, initDR, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_col, CLUFactorRational::Temp::pivot_colNZ, CLUFactorRational::Temp::pivot_row, CLUFactorRational::Pring::prev, removeDR, CLUFactorRational::U::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::setPivot(), CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::temp, CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::eliminateNucleus().
void eliminateNucleus |
( |
const Rational & |
threshold | ) |
|
|
private |
Definition at line 2505 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::eliminateColSingletons(), CLUFactorRational::eliminatePivot(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::Pring::idx, initDR, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::Pring::mkwtz, CLUFactorRational::Pring::next, CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_colNZ, CLUFactorRational::Temp::pivot_rowNZ, CLUFactorRational::Temp::pivots, CLUFactorRational::Pring::pos, CLUFactorRational::U::row, CLUFactorRational::Temp::s_mark, CLUFactorRational::selectPivots(), CLUFactorRational::setPivot(), SLinSolverRational::SINGULAR, CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::stat, CLUFactorRational::temp, CLUFactorRational::thedim, CLUFactorRational::timeLimitReached(), CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::factor().
void eliminatePivot |
( |
int |
prow, |
|
|
int |
pos |
|
) |
| |
|
private |
- Todo:
- If this test failes, lv has no value. I suppose that in this case none of the loops below that uses lv is executed. But this is unproven.
Definition at line 2409 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, init2DR, initDR, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::makeLvec(), CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_col, CLUFactorRational::Temp::pivot_colNZ, removeDR, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_mark, CLUFactorRational::setPivot(), CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::temp, CLUFactorRational::u, CLUFactorRational::updateRow(), CLUFactorRational::U::Row::val, and CLUFactorRational::work.
Referenced by CLUFactorRational::eliminateNucleus().
void eliminateRowSingletons |
( |
| ) |
|
|
private |
Definition at line 1854 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::Pring::idx, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::L::idx, init2DR, initDR, CLUFactorRational::l, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::makeLvec(), CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_col, CLUFactorRational::Temp::pivot_row, CLUFactorRational::Temp::pivot_rowNZ, CLUFactorRational::Pring::prev, removeDR, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_max, CLUFactorRational::setPivot(), CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::temp, CLUFactorRational::u, CLUFactorRational::U::Row::val, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::eliminateNucleus().
pivoting threshold
- Parameters
-
vec | Array of column vector pointers |
threshold | pivoting threshold |
Definition at line 2752 of file clufactor_rational.cpp.
References CLUFactorRational::colSingletons(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::factorCount, CLUFactorRational::factorTime, CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::freeFactorRings(), CLUFactorRational::Temp::init(), CLUFactorRational::initFactorMatrix(), CLUFactorRational::initFactorRings(), CLUFactorRational::initPerm(), CLUFactorRational::l, MSG_DEBUG, CLUFactorRational::nzCnt, SLinSolverRational::OK, CLUFactorRational::rowSingletons(), CLUFactorRational::setupColVals(), CLUFactorRational::setupRowVals(), CLUFactorRational::Temp::stage, Timer::start(), CLUFactorRational::L::start, CLUFactorRational::stat, Timer::stop(), CLUFactorRational::temp, CLUFactorRational::thedim, and CLUFactorRational::timeLimitReached().
Referenced by SLUFactorRational::load().
void forestMinColMem |
( |
int |
size | ) |
|
|
private |
void forestPackColumns |
( |
| ) |
|
|
private |
Definition at line 345 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::Dring::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::U::Col::list, CLUFactorRational::U::Col::max, CLUFactorRational::Dring::next, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Col::used, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::forestReMaxCol().
void forestReMaxCol |
( |
int |
col, |
|
|
int |
len |
|
) |
| |
|
private |
Definition at line 595 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::colMemMult, CLUFactorRational::U::Col::elem, CLUFactorRational::forestMinColMem(), CLUFactorRational::forestPackColumns(), CLUFactorRational::Dring::idx, CLUFactorRational::U::Col::idx, init2DR, CLUFactorRational::U::Col::len, CLUFactorRational::U::Col::list, CLUFactorRational::U::Col::max, CLUFactorRational::Dring::next, CLUFactorRational::Dring::prev, removeDR, CLUFactorRational::U::Col::size, CLUFactorRational::U::Col::start, CLUFactorRational::u, CLUFactorRational::U::Col::used, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::forestUpdate().
void forestUpdate |
( |
int |
p_col, |
|
|
Rational * |
p_work, |
|
|
int |
num, |
|
|
int * |
nonz |
|
) |
| |
|
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.
- Parameters
-
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.
- Exceptions
-
- Todo:
- Use an extra member variable as a buffer for working with the dense row instead of misusing p_work. I think that should be as efficient and much cleaner.
The following assert is obviously violated if this method is called with nonzero==0.
- Todo:
- Use an extra member variable as a buffer for the heap instead of misusing nonz and num. The method enQueueMin() seems to sort the nonzeros or something, for which it only needs some empty vector of size num.
Definition at line 691 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, soplex::deQueueMin(), CLUFactorRational::diag, soplex::enQueueMin(), CLUFactorRational::L::firstUnused, CLUFactorRational::forestReMaxCol(), CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::L::idx, CLUFactorRational::isConsistent(), CLUFactorRational::l, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::makeLvec(), CLUFactorRational::U::Row::max, CLUFactorRational::U::Col::max, CLUFactorRational::maxabs, CLUFactorRational::nzCnt, SLinSolverRational::OK, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::remaxRow(), CLUFactorRational::U::row, CLUFactorRational::row, SLinSolverRational::SINGULAR, soplex::spxAbs(), CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::L::start, CLUFactorRational::stat, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Col::used, CLUFactorRational::U::Row::val, CLUFactorRational::U::Col::val, CLUFactorRational::L::val, and soplex::verySparseFactor.
Referenced by SLUFactorRational::change().
void freeFactorRings |
( |
void |
| ) |
|
|
private |
Definition at line 1364 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::colMemMult, CLUFactorRational::U::Row::elem, CLUFactorRational::U::Col::elem, CLUFactorRational::Dring::idx, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, SVectorBase< R >::index(), CLUFactorRational::initMaxabs, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::U::Row::list, CLUFactorRational::U::Col::list, CLUFactorRational::lMemMult, CLUFactorRational::U::Row::max, CLUFactorRational::U::Col::max, CLUFactorRational::minColMem(), CLUFactorRational::minLMem(), CLUFactorRational::minRowMem(), CLUFactorRational::Dring::next, CLUFactorRational::Perm::perm, CLUFactorRational::Dring::prev, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::rowMemMult, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_mark, CLUFactorRational::setPivot(), SLinSolverRational::SINGULAR, SVectorBase< R >::size(), soplex::spxAbs(), CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::stat, CLUFactorRational::temp, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Row::used, CLUFactorRational::U::Col::used, CLUFactorRational::U::Row::val, and SVectorBase< R >::value().
Referenced by CLUFactorRational::factor().
Definition at line 1780 of file clufactor_rational.cpp.
References CLUFactorRational::col, CLUFactorRational::Pring::idx, init2DR, initDR, CLUFactorRational::U::Row::len, CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_col, CLUFactorRational::Temp::pivot_colNZ, CLUFactorRational::Temp::pivot_row, CLUFactorRational::Temp::pivot_rowNZ, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_mark, CLUFactorRational::Temp::s_max, SLinSolverRational::SINGULAR, soplex::spx_alloc(), CLUFactorRational::Temp::stage, CLUFactorRational::stat, CLUFactorRational::temp, CLUFactorRational::thedim, and CLUFactorRational::u.
Referenced by CLUFactorRational::factor().
bool isConsistent |
( |
| ) |
const |
|
protected |
Definition at line 2941 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::Dring::idx, CLUFactorRational::Pring::idx, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::U::Row::list, CLUFactorRational::U::Col::list, CLUFactorRational::U::Row::max, CLUFactorRational::U::Col::max, CLUFactorRational::Dring::next, CLUFactorRational::Pring::next, CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_colNZ, CLUFactorRational::Temp::pivot_rowNZ, CLUFactorRational::Dring::prev, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::stat, CLUFactorRational::temp, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Row::used, and CLUFactorRational::U::Col::used.
Referenced by CLUFactorRational::forestUpdate(), and SLUFactorRational::isConsistent().
int makeLvec |
( |
int |
p_len, |
|
|
int |
p_row |
|
) |
| |
|
private |
Definition at line 2913 of file clufactor_rational.cpp.
References VectorBase< R >::dim(), CLUFactorRational::L::firstUnused, CLUFactorRational::l, CLUFactorRational::minLMem(), CLUFactorRational::L::row, soplex::spx_realloc(), CLUFactorRational::L::start, CLUFactorRational::L::startSize, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::eliminatePivot(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::forestUpdate(), CLUFactorRational::rowSingletons(), CLUFactorRational::update(), and CLUFactorRational::updateNoClear().
void minColMem |
( |
int |
size | ) |
|
|
private |
void minRowMem |
( |
int |
size | ) |
|
|
private |
Definition at line 475 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::Dring::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::U::Col::list, CLUFactorRational::U::Col::max, CLUFactorRational::Dring::next, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Col::used.
Referenced by CLUFactorRational::remaxCol().
Definition at line 287 of file clufactor_rational.cpp.
References CLUFactorRational::Dring::idx, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Row::len, CLUFactorRational::U::Row::list, CLUFactorRational::U::Row::max, CLUFactorRational::Dring::next, CLUFactorRational::U::row, CLUFactorRational::U::Row::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Row::used, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::remaxRow().
void remaxCol |
( |
int |
p_col, |
|
|
int |
len |
|
) |
| |
|
private |
Definition at line 526 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::colMemMult, CLUFactorRational::U::Col::elem, CLUFactorRational::Dring::idx, CLUFactorRational::U::Col::idx, init2DR, CLUFactorRational::U::Col::len, CLUFactorRational::U::Col::list, CLUFactorRational::U::Col::max, CLUFactorRational::minColMem(), CLUFactorRational::Dring::next, CLUFactorRational::packColumns(), CLUFactorRational::Dring::prev, removeDR, CLUFactorRational::U::Col::size, CLUFactorRational::U::Col::start, CLUFactorRational::u, and CLUFactorRational::U::Col::used.
Referenced by CLUFactorRational::updateRow().
void remaxRow |
( |
int |
p_row, |
|
|
int |
len |
|
) |
| |
|
private |
Definition at line 400 of file clufactor_rational.cpp.
References VectorBase< R >::dim(), CLUFactorRational::U::Row::elem, CLUFactorRational::Dring::idx, CLUFactorRational::U::Row::idx, init2DR, CLUFactorRational::U::Row::len, CLUFactorRational::U::Row::list, CLUFactorRational::U::Row::max, CLUFactorRational::minRowMem(), CLUFactorRational::Dring::next, CLUFactorRational::packRows(), CLUFactorRational::Dring::prev, removeDR, CLUFactorRational::U::row, CLUFactorRational::rowMemMult, CLUFactorRational::U::Row::start, CLUFactorRational::u, CLUFactorRational::U::Row::used, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::forestUpdate(), and CLUFactorRational::updateRow().
Definition at line 1685 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::makeLvec(), CLUFactorRational::Perm::perm, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_mark, CLUFactorRational::setPivot(), SLinSolverRational::SINGULAR, CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::stat, CLUFactorRational::temp, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Row::val, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::factor().
void selectPivots |
( |
const Rational & |
threshold | ) |
|
|
private |
Definition at line 2052 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::Pring::idx, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, init2DR, initDR, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::Pring::mkwtz, CLUFactorRational::Pring::next, CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_col, CLUFactorRational::Temp::pivot_colNZ, CLUFactorRational::Temp::pivot_row, CLUFactorRational::Temp::pivot_rowNZ, CLUFactorRational::Temp::pivots, CLUFactorRational::Pring::pos, CLUFactorRational::Pring::prev, removeDR, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_max, soplex::spxAbs(), CLUFactorRational::Temp::stage, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::temp, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::eliminateNucleus().
void setPivot |
( |
const int |
p_stage, |
|
|
const int |
p_col, |
|
|
const int |
p_row, |
|
|
const Rational & |
val |
|
) |
| |
|
private |
Definition at line 265 of file clufactor_rational.cpp.
References CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::maxabs, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::row, and soplex::spxAbs().
Referenced by CLUFactorRational::colSingletons(), CLUFactorRational::eliminateColSingletons(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::eliminatePivot(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::initFactorMatrix(), and CLUFactorRational::rowSingletons().
Definition at line 2593 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::U::Col::max, CLUFactorRational::maxabs, DVectorBase< R >::reDim(), CLUFactorRational::U::row, CLUFactorRational::U::Col::size, soplex::spxAbs(), CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Row::val, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::factor().
Definition at line 2644 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::L::rbeg, DVectorBase< R >::reDim(), CLUFactorRational::L::ridx, CLUFactorRational::L::rorig, CLUFactorRational::L::row, CLUFactorRational::row, CLUFactorRational::L::rperm, CLUFactorRational::L::rval, soplex::spx_alloc(), soplex::spx_free(), CLUFactorRational::L::start, CLUFactorRational::thedim, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::factor().
Definition at line 3923 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::rbeg, CLUFactorRational::L::ridx, CLUFactorRational::L::rorig, CLUFactorRational::L::row, CLUFactorRational::L::rperm, CLUFactorRational::L::rval, CLUFactorRational::L::start, CLUFactorRational::thedim, CLUFactorRational::timeLimitReached(), and CLUFactorRational::L::val.
Referenced by CLUFactorRational::solveLeft(), CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLeft2(), and CLUFactorRational::vSolveLeft3().
int solveLleft |
( |
Rational * |
vec, |
|
|
int * |
nonz, |
|
|
int |
rn |
|
) |
| |
|
private |
Definition at line 4461 of file clufactor_rational.cpp.
References soplex::deQueueMax(), soplex::enQueueMax(), CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::rbeg, CLUFactorRational::L::ridx, CLUFactorRational::L::rorig, CLUFactorRational::L::row, CLUFactorRational::L::rperm, CLUFactorRational::L::rval, CLUFactorRational::L::start, CLUFactorRational::thedim, and CLUFactorRational::L::val.
Definition at line 3791 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::Perm::perm, CLUFactorRational::L::rbeg, CLUFactorRational::L::ridx, CLUFactorRational::L::rorig, CLUFactorRational::L::row, CLUFactorRational::row, CLUFactorRational::L::rval, CLUFactorRational::L::start, CLUFactorRational::thedim, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::solveLeft2().
int solveLleftEps |
( |
Rational * |
vec, |
|
|
int * |
nonz |
|
) |
| |
|
private |
Definition at line 3975 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::Perm::perm, CLUFactorRational::L::rbeg, CLUFactorRational::L::ridx, CLUFactorRational::L::rorig, CLUFactorRational::L::row, CLUFactorRational::row, CLUFactorRational::L::rval, CLUFactorRational::L::start, CLUFactorRational::thedim, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::solveLeftEps().
int solveLleftForest |
( |
Rational * |
vec, |
|
|
int * |
|
|
) |
| |
|
private |
Definition at line 3890 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::row, CLUFactorRational::L::start, CLUFactorRational::timeLimitReached(), and CLUFactorRational::L::val.
Referenced by CLUFactorRational::solveLeft(), CLUFactorRational::solveLeftEps(), CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLeft2(), and CLUFactorRational::vSolveLeft3().
int solveLleftForest |
( |
Rational * |
vec, |
|
|
int * |
nonz, |
|
|
int |
n |
|
) |
| |
|
private |
void solveLleftForestNoNZ |
( |
Rational * |
vec | ) |
|
|
private |
Definition at line 4428 of file clufactor_rational.cpp.
References VectorBase< R >::dim(), CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::row, CLUFactorRational::L::start, CLUFactorRational::thedim, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::vSolveLeft2(), CLUFactorRational::vSolveLeft3(), and CLUFactorRational::vSolveLeftNoNZ().
Definition at line 4560 of file clufactor_rational.cpp.
References VectorBase< R >::dim(), CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::rbeg, CLUFactorRational::L::ridx, CLUFactorRational::L::rorig, CLUFactorRational::L::row, CLUFactorRational::L::rperm, CLUFactorRational::L::rval, CLUFactorRational::L::start, CLUFactorRational::thedim, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLeft2(), CLUFactorRational::vSolveLeft3(), and CLUFactorRational::vSolveLeftNoNZ().
Definition at line 3284 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, MSG_DEBUG, CLUFactorRational::L::row, CLUFactorRational::L::start, CLUFactorRational::timeLimitReached(), CLUFactorRational::L::updateType, and CLUFactorRational::L::val.
Referenced by SLUFactorRational::change(), CLUFactorRational::solveRight(), and CLUFactorRational::solveRight4update().
int solveRight4update |
( |
Rational * |
vec, |
|
|
int * |
nonz, |
|
|
Rational * |
rhs, |
|
|
Rational * |
forest, |
|
|
int * |
forestNum, |
|
|
int * |
forestIdx |
|
) |
| |
|
protected |
Definition at line 3610 of file clufactor_rational.cpp.
References CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Row::len, CLUFactorRational::Perm::orig, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::U::Row::start, CLUFactorRational::thedim, CLUFactorRational::timeLimitReached(), CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::solveLeft(), CLUFactorRational::solveLeftEps(), CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLeft2(), and CLUFactorRational::vSolveLeft3().
int solveUleft |
( |
Rational * |
vec, |
|
|
int * |
vecidx, |
|
|
Rational * |
rhs, |
|
|
int * |
rhsidx, |
|
|
int |
rhsn |
|
) |
| |
|
private |
Definition at line 4221 of file clufactor_rational.cpp.
References CLUFactorRational::col, soplex::deQueueMin(), CLUFactorRational::diag, VectorBase< R >::dim(), soplex::enQueueMin(), CLUFactorRational::U::Row::idx, CLUFactorRational::U::Row::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::U::Row::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Definition at line 3660 of file clufactor_rational.cpp.
References CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Row::len, CLUFactorRational::Perm::orig, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::U::Row::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::solveLeft2().
Definition at line 4301 of file clufactor_rational.cpp.
References CLUFactorRational::col, soplex::deQueueMin(), CLUFactorRational::diag, VectorBase< R >::dim(), soplex::enQueueMin(), CLUFactorRational::U::Row::idx, CLUFactorRational::U::Row::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::U::Row::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Row::val.
Referenced by CLUFactorRational::vSolveLeft2(), CLUFactorRational::vSolveLeft3(), and CLUFactorRational::vSolveLeftNoNZ().
Definition at line 4039 of file clufactor_rational.cpp.
References CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::row, CLUFactorRational::L::start, CLUFactorRational::L::updateType, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::solveLeft(), CLUFactorRational::solveLeftEps(), CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLeft2(), CLUFactorRational::vSolveLeft3(), and CLUFactorRational::vSolveLeftNoNZ().
int solveUpdateLeft |
( |
Rational * |
vec, |
|
|
int * |
nonz, |
|
|
int |
n |
|
) |
| |
|
private |
Definition at line 3079 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::timeLimitReached(), CLUFactorRational::u, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::solveRight(), and CLUFactorRational::solveRight4update().
Definition at line 3144 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::solveRight2(), and CLUFactorRational::solveRight2update().
Definition at line 3205 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::solveRight2update().
Definition at line 3102 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, CLUFactorRational::diag, CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, and CLUFactorRational::U::Col::val.
Referenced by CLUFactorRational::solveRight4update().
bool timeLimitReached |
( |
| ) |
|
|
private |
Definition at line 354 of file clufactor_rational.h.
References CLUFactorRational::factorTime, CLUFactorRational::stat, SLinSolverRational::TIME, Timer::time(), and CLUFactorRational::timeLimit.
Referenced by CLUFactorRational::eliminateNucleus(), CLUFactorRational::factor(), CLUFactorRational::solveLleft(), CLUFactorRational::solveLleftForest(), CLUFactorRational::solveLright(), CLUFactorRational::solveUleft(), and CLUFactorRational::solveUright().
void update |
( |
int |
p_col, |
|
|
Rational * |
p_work, |
|
|
const int * |
p_idx, |
|
|
int |
num |
|
) |
| |
|
protected |
void updateNoClear |
( |
int |
p_col, |
|
|
const Rational * |
p_work, |
|
|
const int * |
p_idx, |
|
|
int |
num |
|
) |
| |
|
protected |
int updateRow |
( |
int |
r, |
|
|
int |
lv, |
|
|
int |
prow, |
|
|
int |
pcol, |
|
|
const Rational & |
pval |
|
) |
| |
|
private |
Definition at line 2274 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::U::Row::idx, CLUFactorRational::U::Col::idx, CLUFactorRational::L::idx, init2DR, CLUFactorRational::l, CLUFactorRational::U::Row::len, CLUFactorRational::U::Col::len, CLUFactorRational::U::Row::max, CLUFactorRational::U::Col::max, CLUFactorRational::Perm::perm, CLUFactorRational::Temp::pivot_row, CLUFactorRational::Temp::pivot_rowNZ, CLUFactorRational::remaxCol(), CLUFactorRational::remaxRow(), removeDR, CLUFactorRational::U::row, CLUFactorRational::row, CLUFactorRational::Temp::s_cact, CLUFactorRational::Temp::s_mark, CLUFactorRational::Temp::s_max, CLUFactorRational::U::Row::start, CLUFactorRational::U::Col::start, CLUFactorRational::temp, CLUFactorRational::u, CLUFactorRational::U::Row::val, CLUFactorRational::L::val, and CLUFactorRational::work.
Referenced by CLUFactorRational::eliminatePivot().
int vSolveLeft |
( |
Rational * |
vec, |
|
|
int * |
idx, |
|
|
Rational * |
rhs, |
|
|
int * |
ridx, |
|
|
int |
rn |
|
) |
| |
|
protected |
int vSolveLeft3 |
( |
Rational * |
vec, |
|
|
int * |
idx, |
|
|
Rational * |
rhs, |
|
|
int * |
ridx, |
|
|
int |
rn, |
|
|
Rational * |
vec2, |
|
|
Rational * |
rhs2, |
|
|
int * |
ridx2, |
|
|
int |
rn2, |
|
|
Rational * |
vec3, |
|
|
Rational * |
rhs3, |
|
|
int * |
ridx3, |
|
|
int |
rn3 |
|
) |
| |
|
protected |
int vSolveLright |
( |
Rational * |
vec, |
|
|
int * |
ridx, |
|
|
int |
rn |
|
) |
| |
|
private |
void vSolveLright2 |
( |
Rational * |
vec, |
|
|
int * |
ridx, |
|
|
int * |
rnptr, |
|
|
Rational * |
vec2, |
|
|
int * |
ridx2, |
|
|
int * |
rn2ptr |
|
) |
| |
|
private |
void vSolveLright3 |
( |
Rational * |
vec, |
|
|
int * |
ridx, |
|
|
int * |
rnptr, |
|
|
Rational * |
vec2, |
|
|
int * |
ridx2, |
|
|
int * |
rn2ptr, |
|
|
Rational * |
vec3, |
|
|
int * |
ridx3, |
|
|
int * |
rn3ptr |
|
) |
| |
|
private |
int vSolveRight4update |
( |
Rational * |
vec, |
|
|
int * |
idx, |
|
|
Rational * |
rhs, |
|
|
int * |
ridx, |
|
|
int |
rn, |
|
|
Rational * |
forest, |
|
|
int * |
forestNum, |
|
|
int * |
forestIdx |
|
) |
| |
|
protected |
int vSolveRight4update2 |
( |
Rational * |
vec, |
|
|
int * |
idx, |
|
|
Rational * |
rhs, |
|
|
int * |
ridx, |
|
|
int |
rn, |
|
|
Rational * |
vec2, |
|
|
Rational * |
rhs2, |
|
|
int * |
ridx2, |
|
|
int |
rn2, |
|
|
Rational * |
forest, |
|
|
int * |
forestNum, |
|
|
int * |
forestIdx |
|
) |
| |
|
protected |
Definition at line 5629 of file clufactor_rational.cpp.
References soplex::enQueueMax(), CLUFactorRational::l, CLUFactorRational::Perm::perm, CLUFactorRational::row, CLUFactorRational::thedim, CLUFactorRational::L::updateType, soplex::verySparseFactor4right, CLUFactorRational::vSolveLright2(), CLUFactorRational::vSolveUpdateRight(), CLUFactorRational::vSolveUpdateRightNoNZ(), CLUFactorRational::vSolveUright(), and CLUFactorRational::vSolveUrightNoNZ().
Referenced by SLUFactorRational::solve2right4update().
int vSolveRight4update3 |
( |
Rational * |
vec, |
|
|
int * |
idx, |
|
|
Rational * |
rhs, |
|
|
int * |
ridx, |
|
|
int |
rn, |
|
|
Rational * |
vec2, |
|
|
Rational * |
rhs2, |
|
|
int * |
ridx2, |
|
|
int |
rn2, |
|
|
Rational * |
vec3, |
|
|
Rational * |
rhs3, |
|
|
int * |
ridx3, |
|
|
int |
rn3, |
|
|
Rational * |
forest, |
|
|
int * |
forestNum, |
|
|
int * |
forestIdx |
|
) |
| |
|
protected |
Definition at line 5740 of file clufactor_rational.cpp.
References soplex::enQueueMax(), CLUFactorRational::l, CLUFactorRational::Perm::perm, CLUFactorRational::row, CLUFactorRational::thedim, CLUFactorRational::L::updateType, soplex::verySparseFactor4right, CLUFactorRational::vSolveLright3(), CLUFactorRational::vSolveUpdateRight(), CLUFactorRational::vSolveUpdateRightNoNZ(), CLUFactorRational::vSolveUright(), and CLUFactorRational::vSolveUrightNoNZ().
Referenced by SLUFactorRational::solve3right4update().
int vSolveUpdateRight |
( |
Rational * |
vec, |
|
|
int * |
ridx, |
|
|
int |
n |
|
) |
| |
|
private |
Definition at line 5480 of file clufactor_rational.cpp.
References VectorBase< R >::dim(), CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::row, CLUFactorRational::L::start, CLUFactorRational::thedim, CLUFactorRational::L::updateType, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::vSolveRight4update(), CLUFactorRational::vSolveRight4update2(), and CLUFactorRational::vSolveRight4update3().
void vSolveUpdateRightNoNZ |
( |
Rational * |
vec | ) |
|
|
private |
Definition at line 5525 of file clufactor_rational.cpp.
References VectorBase< R >::dim(), CLUFactorRational::L::firstUnused, CLUFactorRational::L::firstUpdate, CLUFactorRational::L::idx, CLUFactorRational::l, CLUFactorRational::L::row, CLUFactorRational::L::start, CLUFactorRational::thedim, CLUFactorRational::L::updateType, and CLUFactorRational::L::val.
Referenced by CLUFactorRational::vSolveRight4update2(), CLUFactorRational::vSolveRight4update3(), and CLUFactorRational::vSolveRightNoNZ().
int vSolveUright |
( |
Rational * |
vec, |
|
|
int * |
vidx, |
|
|
Rational * |
rhs, |
|
|
int * |
ridx, |
|
|
int |
rn |
|
) |
| |
|
private |
Definition at line 5028 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, soplex::deQueueMax(), CLUFactorRational::diag, soplex::enQueueMax(), CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Col::val, and soplex::verySparseFactor4right.
Referenced by CLUFactorRational::vSolveRight4update(), CLUFactorRational::vSolveRight4update2(), and CLUFactorRational::vSolveRight4update3().
Definition at line 5235 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, soplex::deQueueMax(), CLUFactorRational::diag, soplex::enQueueMax(), CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Col::val, and soplex::verySparseFactor4right.
Definition at line 5134 of file clufactor_rational.cpp.
References CLUFactorRational::U::col, CLUFactorRational::col, soplex::deQueueMax(), CLUFactorRational::diag, soplex::enQueueMax(), CLUFactorRational::U::Col::idx, CLUFactorRational::U::Col::len, CLUFactorRational::Perm::orig, CLUFactorRational::Perm::perm, CLUFactorRational::row, CLUFactorRational::U::Col::start, CLUFactorRational::thedim, CLUFactorRational::u, CLUFactorRational::U::Col::val, and soplex::verySparseFactor4right.
Referenced by CLUFactorRational::vSolveRight4update2(), CLUFactorRational::vSolveRight4update3(), and CLUFactorRational::vSolveRightNoNZ().
column permutation matrices
Definition at line 197 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), CLUFactorRational::dump(), CLUFactorRational::eliminateColSingletons(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::eliminatePivot(), CLUFactorRational::forestUpdate(), SLUFactorRational::freeAll(), CLUFactorRational::initFactorRings(), CLUFactorRational::initPerm(), CLUFactorRational::isConsistent(), SLUFactorRational::load(), CLUFactorRational::selectPivots(), CLUFactorRational::setPivot(), SLUFactorRational::SLUFactorRational(), CLUFactorRational::solveUleft(), CLUFactorRational::solveUleft2(), CLUFactorRational::solveUleftNoNZ(), CLUFactorRational::solveUright(), CLUFactorRational::solveUright2(), CLUFactorRational::solveUright2eps(), CLUFactorRational::solveUrightEps(), CLUFactorRational::vSolveUright(), CLUFactorRational::vSolveUright2(), and CLUFactorRational::vSolveUrightNoNZ().
Array of pivot elements.
Definition at line 200 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), CLUFactorRational::dump(), CLUFactorRational::forestUpdate(), SLUFactorRational::freeAll(), SLUFactorRational::load(), CLUFactorRational::setPivot(), SLUFactorRational::SLUFactorRational(), CLUFactorRational::solveUleft(), CLUFactorRational::solveUleft2(), CLUFactorRational::solveUleftNoNZ(), CLUFactorRational::solveUright(), CLUFactorRational::solveUright2(), CLUFactorRational::solveUright2eps(), CLUFactorRational::solveUrightEps(), CLUFactorRational::vSolveUright(), CLUFactorRational::vSolveUright2(), and CLUFactorRational::vSolveUrightNoNZ().
L matrix.
Definition at line 199 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), SLUFactorRational::change(), SLUFactorRational::clear(), CLUFactorRational::dump(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::factor(), CLUFactorRational::forestUpdate(), SLUFactorRational::freeAll(), SLUFactorRational::load(), CLUFactorRational::makeLvec(), SLUFactorRational::memory(), CLUFactorRational::minLMem(), CLUFactorRational::rowSingletons(), CLUFactorRational::setupRowVals(), SLUFactorRational::SLUFactorRational(), SLUFactorRational::solve2right4update(), SLUFactorRational::solve3right4update(), CLUFactorRational::solveLeft(), CLUFactorRational::solveLeft2(), CLUFactorRational::solveLeftEps(), CLUFactorRational::solveLleft(), CLUFactorRational::solveLleft2(), CLUFactorRational::solveLleft2forest(), CLUFactorRational::solveLleftEps(), CLUFactorRational::solveLleftForest(), CLUFactorRational::solveLleftForestNoNZ(), CLUFactorRational::solveLleftNoNZ(), CLUFactorRational::solveLright(), CLUFactorRational::solveLright2(), CLUFactorRational::solveRight(), CLUFactorRational::solveRight2(), CLUFactorRational::solveRight2update(), SLUFactorRational::solveRight4update(), CLUFactorRational::solveRight4update(), CLUFactorRational::solveUpdateLeft(), CLUFactorRational::solveUpdateLeft2(), CLUFactorRational::solveUpdateRight(), CLUFactorRational::solveUpdateRight2(), CLUFactorRational::update(), CLUFactorRational::updateNoClear(), CLUFactorRational::updateRow(), CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLeft2(), CLUFactorRational::vSolveLeft3(), CLUFactorRational::vSolveLeftNoNZ(), CLUFactorRational::vSolveLright(), CLUFactorRational::vSolveLright2(), CLUFactorRational::vSolveLright3(), CLUFactorRational::vSolveRight4update(), CLUFactorRational::vSolveRight4update2(), CLUFactorRational::vSolveRight4update3(), CLUFactorRational::vSolveRightNoNZ(), CLUFactorRational::vSolveUpdateRight(), and CLUFactorRational::vSolveUpdateRightNoNZ().
row permutation matrices
Definition at line 196 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), CLUFactorRational::colSingletons(), CLUFactorRational::dump(), CLUFactorRational::eliminatePivot(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::forestUpdate(), SLUFactorRational::freeAll(), CLUFactorRational::initFactorMatrix(), CLUFactorRational::initFactorRings(), CLUFactorRational::initPerm(), CLUFactorRational::isConsistent(), SLUFactorRational::load(), CLUFactorRational::rowSingletons(), CLUFactorRational::selectPivots(), CLUFactorRational::setPivot(), CLUFactorRational::setupRowVals(), SLUFactorRational::SLUFactorRational(), CLUFactorRational::solveLleft2(), CLUFactorRational::solveLleftEps(), CLUFactorRational::solveUleft(), CLUFactorRational::solveUleft2(), CLUFactorRational::solveUleftNoNZ(), CLUFactorRational::solveUright(), CLUFactorRational::solveUright2(), CLUFactorRational::solveUright2eps(), CLUFactorRational::solveUrightEps(), CLUFactorRational::updateRow(), CLUFactorRational::vSolveRight4update(), CLUFactorRational::vSolveRight4update2(), CLUFactorRational::vSolveRight4update3(), CLUFactorRational::vSolveRightNoNZ(), CLUFactorRational::vSolveUright(), CLUFactorRational::vSolveUright2(), and CLUFactorRational::vSolveUrightNoNZ().
Status indicator.
Definition at line 185 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), SLUFactorRational::clear(), CLUFactorRational::colSingletons(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::factor(), CLUFactorRational::forestUpdate(), CLUFactorRational::initFactorMatrix(), CLUFactorRational::initFactorRings(), CLUFactorRational::isConsistent(), SLUFactorRational::load(), CLUFactorRational::rowSingletons(), SLUFactorRational::status(), CLUFactorRational::timeLimitReached(), CLUFactorRational::update(), and CLUFactorRational::updateNoClear().
Temporary storage.
Definition at line 215 of file clufactor_rational.h.
Referenced by CLUFactorRational::colSingletons(), CLUFactorRational::eliminateColSingletons(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::eliminatePivot(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::factor(), CLUFactorRational::freeFactorRings(), CLUFactorRational::initFactorMatrix(), CLUFactorRational::initFactorRings(), CLUFactorRational::isConsistent(), CLUFactorRational::rowSingletons(), CLUFactorRational::selectPivots(), and CLUFactorRational::updateRow().
dimension of factorized matrix
Definition at line 187 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), SLUFactorRational::clear(), CLUFactorRational::colSingletons(), SLUFactorRational::dim(), CLUFactorRational::dump(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::factor(), CLUFactorRational::forestPackColumns(), CLUFactorRational::forestUpdate(), CLUFactorRational::initFactorMatrix(), CLUFactorRational::initFactorRings(), CLUFactorRational::initPerm(), CLUFactorRational::isConsistent(), SLUFactorRational::load(), CLUFactorRational::packColumns(), CLUFactorRational::packRows(), CLUFactorRational::rowSingletons(), CLUFactorRational::selectPivots(), CLUFactorRational::setupColVals(), CLUFactorRational::setupRowVals(), SLUFactorRational::SLUFactorRational(), CLUFactorRational::solveLleft(), CLUFactorRational::solveLleft2(), CLUFactorRational::solveLleftEps(), CLUFactorRational::solveLleftForest(), CLUFactorRational::solveLleftForestNoNZ(), CLUFactorRational::solveLleftNoNZ(), CLUFactorRational::solveRight2update(), CLUFactorRational::solveRight4update(), CLUFactorRational::solveUleft(), CLUFactorRational::solveUleft2(), CLUFactorRational::solveUleftNoNZ(), CLUFactorRational::solveUpdateLeft(), CLUFactorRational::solveUright(), CLUFactorRational::solveUright2(), CLUFactorRational::solveUright2eps(), CLUFactorRational::solveUrightEps(), CLUFactorRational::vSolveLeft(), CLUFactorRational::vSolveLright(), CLUFactorRational::vSolveLright2(), CLUFactorRational::vSolveLright3(), CLUFactorRational::vSolveRight4update(), CLUFactorRational::vSolveRight4update2(), CLUFactorRational::vSolveRight4update3(), CLUFactorRational::vSolveRightNoNZ(), CLUFactorRational::vSolveUpdateRight(), CLUFactorRational::vSolveUpdateRightNoNZ(), CLUFactorRational::vSolveUright(), CLUFactorRational::vSolveUright2(), and CLUFactorRational::vSolveUrightNoNZ().
U matrix.
Definition at line 201 of file clufactor_rational.h.
Referenced by SLUFactorRational::assign(), SLUFactorRational::clear(), CLUFactorRational::colSingletons(), CLUFactorRational::dump(), CLUFactorRational::eliminateColSingletons(), CLUFactorRational::eliminateNucleus(), CLUFactorRational::eliminatePivot(), CLUFactorRational::eliminateRowSingletons(), CLUFactorRational::forestMinColMem(), CLUFactorRational::forestPackColumns(), CLUFactorRational::forestReMaxCol(), CLUFactorRational::forestUpdate(), SLUFactorRational::freeAll(), CLUFactorRational::initFactorMatrix(), CLUFactorRational::initFactorRings(), CLUFactorRational::isConsistent(), SLUFactorRational::load(), CLUFactorRational::minColMem(), CLUFactorRational::minRowMem(), CLUFactorRational::packColumns(), CLUFactorRational::packRows(), CLUFactorRational::remaxCol(), CLUFactorRational::remaxRow(), CLUFactorRational::rowSingletons(), CLUFactorRational::selectPivots(), CLUFactorRational::setupColVals(), SLUFactorRational::SLUFactorRational(), CLUFactorRational::solveUleft(), CLUFactorRational::solveUleft2(), CLUFactorRational::solveUleftNoNZ(), CLUFactorRational::solveUright(), CLUFactorRational::solveUright2(), CLUFactorRational::solveUright2eps(), CLUFactorRational::solveUrightEps(), CLUFactorRational::updateRow(), CLUFactorRational::vSolveUright(), CLUFactorRational::vSolveUright2(), and CLUFactorRational::vSolveUrightNoNZ().
|