Implementation of sparse LU factorization.This class implements a sparse LU factorization with either FOREST-TOMLIN or ETA updates, using dynamic Markowitz pivoting.
More...
|
|
void | solveLright (R *vec) |
|
int | solveRight4update (R *vec, int *nonz, R eps, R *rhs, R *forest, int *forestNum, int *forestIdx) |
|
void | solveRight (R *vec, R *rhs) |
|
int | solveRight2update (R *vec1, R *vec2, R *rhs1, R *rhs2, int *nonz, R eps, R *forest, int *forestNum, int *forestIdx) |
|
void | solveRight2 (R *vec1, R *vec2, R *rhs1, R *rhs2) |
|
void | solveLeft (R *vec, R *rhs) |
|
int | solveLeftEps (R *vec, R *rhs, int *nonz, R eps) |
|
int | solveLeft2 (R *vec1, int *nonz, R *vec2, R eps, R *rhs1, R *rhs2) |
|
int | vSolveRight4update (R eps, R *vec, int *idx, R *rhs, int *ridx, int rn, R *forest, int *forestNum, int *forestIdx) |
|
int | vSolveRight4update2 (R eps, R *vec, int *idx, R *rhs, int *ridx, int rn, R *vec2, R eps2, R *rhs2, int *ridx2, int rn2, R *forest, int *forestNum, int *forestIdx) |
|
void | vSolveRight4update2sparse (R eps, R *vec, int *idx, R *rhs, int *ridx, int &rn, R eps2, R *vec2, int *idx2, R *rhs2, int *ridx2, int &rn2, R *forest, int *forestNum, int *forestIdx) |
| sparse version of above method More...
|
|
int | vSolveRight4update3 (R eps, R *vec, int *idx, R *rhs, int *ridx, int rn, R *vec2, R eps2, R *rhs2, int *ridx2, int rn2, R *vec3, R eps3, R *rhs3, int *ridx3, int rn3, R *forest, int *forestNum, int *forestIdx) |
|
void | vSolveRight4update3sparse (R eps, R *vec, int *idx, R *rhs, int *ridx, int &rn, R eps2, R *vec2, int *idx2, R *rhs2, int *ridx2, int &rn2, R eps3, R *vec3, int *idx3, R *rhs3, int *ridx3, int &rn3, R *forest, int *forestNum, int *forestIdx) |
| sparse version of above method More...
|
|
void | vSolveRightNoNZ (R *vec, R eps, R *rhs, int *ridx, int rn) |
|
int | vSolveLeft (R eps, R *vec, int *idx, R *rhs, int *ridx, int rn) |
|
void | vSolveLeftNoNZ (R eps, R *vec, R *rhs, int *ridx, int rn) |
|
int | vSolveLeft2 (R eps, R *vec, int *idx, R *rhs, int *ridx, int rn, R *vec2, R *rhs2, int *ridx2, int rn2) |
|
void | vSolveLeft2sparse (R eps, R *vec, int *idx, R *rhs, int *ridx, int &rn, R *vec2, int *idx2, R *rhs2, int *ridx2, int &rn2) |
| sparse version of solving 2 systems of equations More...
|
|
int | vSolveLeft3 (R eps, R *vec, int *idx, R *rhs, int *ridx, int rn, R *vec2, R *rhs2, int *ridx2, int rn2, R *vec3, R *rhs3, int *ridx3, int rn3) |
|
void | vSolveLeft3sparse (R eps, R *vec, int *idx, R *rhs, int *ridx, int &rn, R *vec2, int *idx2, R *rhs2, int *ridx2, int &rn2, R *vec3, int *idx3, R *rhs3, int *ridx3, int &rn3) |
| sparse version of solving 3 systems of equations More...
|
|
void | forestUpdate (int col, R *work, int num, int *nonz) |
|
void | update (int p_col, R *p_work, const int *p_idx, int num) |
|
void | updateNoClear (int p_col, const R *p_work, const int *p_idx, int num) |
|
void | factor (const SVectorBase< R > **vec, R threshold, R eps) |
| epsilon for zero detection More...
|
|
|
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 (R *wrk, R *vec) const |
|
int | solveUrightEps (R *vec, int *nonz, R eps, R *rhs) |
|
void | solveUright2 (R *work1, R *vec1, R *work2, R *vec2) |
|
int | solveUright2eps (R *work1, R *vec1, R *work2, R *vec2, int *nonz, R eps) |
|
void | solveLright2 (R *vec1, R *vec2) |
|
void | solveUpdateRight (R *vec) |
|
void | solveUpdateRight2 (R *vec1, R *vec2) |
|
void | solveUleft (R *work, R *vec) |
|
void | solveUleft2 (R *work1, R *vec1, R *work2, R *vec2) |
|
int | solveLleft2forest (R *vec1, int *, R *vec2, R) |
|
void | solveLleft2 (R *vec1, int *, R *vec2, R) |
|
int | solveLleftForest (R *vec, int *, R) |
|
void | solveLleft (R *vec) const |
|
int | solveLleftEps (R *vec, int *nonz, R eps) |
|
void | solveUpdateLeft (R *vec) |
|
void | solveUpdateLeft2 (R *vec1, R *vec2) |
|
void | updateSolutionVectorLright (R change, int j, R &vec, int *idx, int &nnz) |
|
void | vSolveLright (R *vec, int *ridx, int &rn, R eps) |
|
void | vSolveLright2 (R *vec, int *ridx, int &rn, R eps, R *vec2, int *ridx2, int &rn2, R eps2) |
|
void | vSolveLright3 (R *vec, int *ridx, int &rn, R eps, R *vec2, int *ridx2, int &rn2, R eps2, R *vec3, int *ridx3, int &rn3, R eps3) |
|
int | vSolveUright (R *vec, int *vidx, R *rhs, int *ridx, int rn, R eps) |
|
void | vSolveUrightNoNZ (R *vec, R *rhs, int *ridx, int rn, R eps) |
|
int | vSolveUright2 (R *vec, int *vidx, R *rhs, int *ridx, int rn, R eps, R *vec2, R *rhs2, int *ridx2, int rn2, R eps2) |
|
int | vSolveUpdateRight (R *vec, int *ridx, int n, R eps) |
|
void | vSolveUpdateRightNoNZ (R *vec, R) |
|
int | solveUleft (R eps, R *vec, int *vecidx, R *rhs, int *rhsidx, int rhsn) |
|
void | solveUleftNoNZ (R eps, R *vec, R *rhs, int *rhsidx, int rhsn) |
|
int | solveLleftForest (R eps, R *vec, int *nonz, int n) |
|
void | solveLleftForestNoNZ (R *vec) |
|
int | solveLleft (R eps, R *vec, int *nonz, int rn) |
|
void | solveLleftNoNZ (R *vec) |
|
int | solveUpdateLeft (R eps, R *vec, int *nonz, int n) |
|
void | forestPackColumns () |
|
void | forestMinColMem (int size) |
|
void | forestReMaxCol (int col, int len) |
|
void | initPerm () |
|
void | initFactorMatrix (const SVectorBase< R > **vec, const R eps) |
|
void | minLMem (int size) |
|
void | setPivot (const int p_stage, const int p_col, const int p_row, const R val) |
|
void | colSingletons () |
|
void | rowSingletons () |
|
void | initFactorRings () |
|
void | freeFactorRings () |
|
int | setupColVals () |
|
void | setupRowVals () |
|
void | eliminateRowSingletons () |
|
void | eliminateColSingletons () |
|
void | selectPivots (R threshold) |
|
int | updateRow (int r, int lv, int prow, int pcol, R pval, R eps) |
|
void | eliminatePivot (int prow, int pos, R eps) |
|
void | eliminateNucleus (const R eps, const R 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) |
|
template<class R>
class soplex::CLUFactor< R >
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 40 of file clufactor.h.