|
typedef Matrix< Scalar, Dynamic, 1 > | ScalarVector |
|
typedef Matrix< StorageIndex, Dynamic, 1 > | IndexVector |
|
typedef Matrix< Scalar, Dynamic, Dynamic, ColMajor > | ScalarMatrix |
|
typedef Map< ScalarMatrix, 0, OuterStride<> > | MappedMatrixBlock |
|
typedef ScalarVector::RealScalar | RealScalar |
|
typedef Ref< Matrix< Scalar, Dynamic, 1 > > | BlockScalarVector |
|
typedef Ref< Matrix< StorageIndex, Dynamic, 1 > > | BlockIndexVector |
|
typedef LU_GlobalLU_t< IndexVector, ScalarVector > | GlobalLU_t |
|
typedef SparseMatrix< Scalar, ColMajor, StorageIndex > | MatrixType |
|
|
template<typename VectorType > |
Index | expand (VectorType &vec, Index &length, Index nbElts, Index keep_prev, Index &num_expansions) |
| Expand the existing storage to accomodate more fill-ins.
|
|
Index | memInit (Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size, GlobalLU_t &glu) |
| Allocate various working space for the numerical factorization phase.
|
|
template<typename VectorType > |
Index | memXpand (VectorType &vec, Index &maxlen, Index nbElts, MemType memtype, Index &num_expansions) |
| Expand the existing storage.
|
|
void | heap_relax_snode (const Index n, IndexVector &et, const Index relax_columns, IndexVector &descendants, IndexVector &relax_end) |
| Identify the initial relaxed supernodes.
|
|
void | relax_snode (const Index n, IndexVector &et, const Index relax_columns, IndexVector &descendants, IndexVector &relax_end) |
| Identify the initial relaxed supernodes.
|
|
Index | snode_dfs (const Index jcol, const Index kcol, const MatrixType &mat, IndexVector &xprune, IndexVector &marker, GlobalLU_t &glu) |
|
Index | snode_bmod (const Index jcol, const Index fsupc, ScalarVector &dense, GlobalLU_t &glu) |
|
Index | pivotL (const Index jcol, const RealScalar &diagpivotthresh, IndexVector &perm_r, IndexVector &iperm_c, Index &pivrow, GlobalLU_t &glu) |
| Performs the numerical pivotin on the current column of L, and the CDIV operation.
|
|
template<typename Traits > |
void | dfs_kernel (const StorageIndex jj, IndexVector &perm_r, Index &nseg, IndexVector &panel_lsub, IndexVector &segrep, Ref< IndexVector > repfnz_col, IndexVector &xprune, Ref< IndexVector > marker, IndexVector &parent, IndexVector &xplore, GlobalLU_t &glu, Index &nextl_col, Index krow, Traits &traits) |
|
void | panel_dfs (const Index m, const Index w, const Index jcol, MatrixType &A, IndexVector &perm_r, Index &nseg, ScalarVector &dense, IndexVector &panel_lsub, IndexVector &segrep, IndexVector &repfnz, IndexVector &xprune, IndexVector &marker, IndexVector &parent, IndexVector &xplore, GlobalLU_t &glu) |
| Performs a symbolic factorization on a panel of columns [jcol, jcol+w)
|
|
void | panel_bmod (const Index m, const Index w, const Index jcol, const Index nseg, ScalarVector &dense, ScalarVector &tempv, IndexVector &segrep, IndexVector &repfnz, GlobalLU_t &glu) |
| Performs numeric block updates (sup-panel) in topological order.
|
|
Index | column_dfs (const Index m, const Index jcol, IndexVector &perm_r, Index maxsuper, Index &nseg, BlockIndexVector lsub_col, IndexVector &segrep, BlockIndexVector repfnz, IndexVector &xprune, IndexVector &marker, IndexVector &parent, IndexVector &xplore, GlobalLU_t &glu) |
| Performs a symbolic factorization on column jcol and decide the supernode boundary.
|
|
Index | column_bmod (const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector &tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t &glu) |
| Performs numeric block updates (sup-col) in topological order.
|
|
Index | copy_to_ucol (const Index jcol, const Index nseg, IndexVector &segrep, BlockIndexVector repfnz, IndexVector &perm_r, BlockScalarVector dense, GlobalLU_t &glu) |
| Performs numeric block updates (sup-col) in topological order.
|
|
void | pruneL (const Index jcol, const IndexVector &perm_r, const Index pivrow, const Index nseg, const IndexVector &segrep, BlockIndexVector repfnz, IndexVector &xprune, GlobalLU_t &glu) |
| Prunes the L-structure.
|
|
void | countnz (const Index n, Index &nnzL, Index &nnzU, GlobalLU_t &glu) |
| Count Nonzero elements in the factors.
|
|
void | fixupL (const Index n, const IndexVector &perm_r, GlobalLU_t &glu) |
| Fix up the data storage lsub for L-subscripts.
|
|
template<
typename Scalar,
typename StorageIndex>
class Eigen::internal::SparseLUImpl< Scalar, StorageIndex >
Base class for sparseLU.
void SparseLUImpl< Scalar, StorageIndex >::panel_dfs |
( |
const Index |
m, |
|
|
const Index |
w, |
|
|
const Index |
jcol, |
|
|
MatrixType & |
A, |
|
|
IndexVector & |
perm_r, |
|
|
Index & |
nseg, |
|
|
ScalarVector & |
dense, |
|
|
IndexVector & |
panel_lsub, |
|
|
IndexVector & |
segrep, |
|
|
IndexVector & |
repfnz, |
|
|
IndexVector & |
xprune, |
|
|
IndexVector & |
marker, |
|
|
IndexVector & |
parent, |
|
|
IndexVector & |
xplore, |
|
|
GlobalLU_t & |
glu |
|
) |
| |
|
protected |
Performs a symbolic factorization on a panel of columns [jcol, jcol+w)
A supernode representative is the last column of a supernode. The nonzeros in U[*,j] are segments that end at supernodes representatives
The routine returns a list of the supernodal representatives in topological order of the dfs that generates them. This list is a superset of the topological order of each individual column within the panel. The location of the first nonzero in each supernodal segment (supernodal entry location) is also returned. Each column has a separate list for this purpose.
Two markers arrays are used for dfs : marker[i] == jj, if i was visited during dfs of current column jj; marker1[i] >= jcol, if i was visited by earlier columns in this panel;
- Parameters
-
[in] | m | number of rows in the matrix |
[in] | w | Panel size |
[in] | jcol | Starting column of the panel |
[in] | A | Input matrix in column-major storage |
[in] | perm_r | Row permutation |
[out] | nseg | Number of U segments |
[out] | dense | Accumulate the column vectors of the panel |
[out] | panel_lsub | Subscripts of the row in the panel |
[out] | segrep | Segment representative i.e first nonzero row of each segment |
[out] | repfnz | First nonzero location in each row |
[out] | xprune | The pruned elimination tree |
[out] | marker | work vector |
| parent | The elimination tree |
| xplore | work vector |
| glu | The global data structure |