diff options
author | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2013-01-25 20:38:26 +0100 |
---|---|---|
committer | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2013-01-25 20:38:26 +0100 |
commit | 7f0f7ab5b4a0c13c0d4aba6ab6469d3e9a2f8868 (patch) | |
tree | 0f53746ee6ae52da75523064266a5c1be3aa6695 /Eigen/src/SparseLU/SparseLU_panel_dfs.h | |
parent | d58056bde4c1bd80497af4448a8ace0508e1bb76 (diff) |
Add additional methods in SparseLU and Improve the naming conventions
Diffstat (limited to 'Eigen/src/SparseLU/SparseLU_panel_dfs.h')
-rw-r--r-- | Eigen/src/SparseLU/SparseLU_panel_dfs.h | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/Eigen/src/SparseLU/SparseLU_panel_dfs.h index 16e04423b..b3d9775fa 100644 --- a/Eigen/src/SparseLU/SparseLU_panel_dfs.h +++ b/Eigen/src/SparseLU/SparseLU_panel_dfs.h @@ -35,10 +35,10 @@ namespace Eigen { namespace internal { template<typename IndexVector> -struct LU_panel_dfs_traits +struct panel_dfs_traits { typedef typename IndexVector::Scalar Index; - LU_panel_dfs_traits(Index jcol, Index* marker) + panel_dfs_traits(Index jcol, Index* marker) : m_jcol(jcol), m_marker(marker) {} bool update_segrep(Index krep, Index jj) @@ -56,11 +56,10 @@ struct LU_panel_dfs_traits Index* m_marker; }; -} // end namespace internal template <typename Scalar, typename Index> template <typename Traits> -void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r, +void SparseLUImpl<Scalar,Index>::dfs_kernel(const int jj, IndexVector& perm_r, int& nseg, IndexVector& panel_lsub, IndexVector& segrep, Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu, @@ -73,7 +72,7 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r // For each unmarked krow of jj marker(krow) = jj; int kperm = perm_r(krow); - if (kperm == IND_EMPTY ) { + if (kperm == emptyIdxLU ) { // krow is in L : place it in structure of L(*, jj) panel_lsub(nextl_col++) = krow; // krow is indexed into A @@ -88,7 +87,7 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r // First nonzero element in the current column: int myfnz = repfnz_col(krep); - if (myfnz != IND_EMPTY ) + if (myfnz != emptyIdxLU ) { // Representative visited before if (myfnz > kperm ) repfnz_col(krep) = kperm; @@ -97,7 +96,7 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r else { // Otherwise, perform dfs starting at krep - int oldrep = IND_EMPTY; + int oldrep = emptyIdxLU; parent(krep) = oldrep; repfnz_col(krep) = kperm; int xdfs = glu.xlsub(krep); @@ -118,7 +117,7 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r marker(kchild) = jj; int chperm = perm_r(kchild); - if (chperm == IND_EMPTY) + if (chperm == emptyIdxLU) { // case kchild is in L: place it in L(*, j) panel_lsub(nextl_col++) = kchild; @@ -132,7 +131,7 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r int chrep = glu.xsup(glu.supno(chperm)+1) - 1; myfnz = repfnz_col(chrep); - if (myfnz != IND_EMPTY) + if (myfnz != emptyIdxLU) { // Visited before if (myfnz > chperm) repfnz_col(chrep) = chperm; @@ -167,13 +166,13 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r } kpar = parent(krep); // Pop recursion, mimic recursion - if (kpar == IND_EMPTY) + if (kpar == emptyIdxLU) break; // dfs done krep = kpar; xdfs = xplore(krep); maxdfs = xprune(krep); - } while (kpar != IND_EMPTY); // Do until empty stack + } while (kpar != emptyIdxLU); // Do until empty stack } // end if (myfnz = -1) @@ -217,7 +216,7 @@ void SparseLUBase<Scalar,Index>::LU_dfs_kernel(const int jj, IndexVector& perm_r */ template <typename Scalar, typename Index> -void SparseLUBase<Scalar,Index>::LU_panel_dfs(const int m, const int w, const int jcol, MatrixType& A, IndexVector& perm_r, int& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu) +void SparseLUImpl<Scalar,Index>::panel_dfs(const int m, const int w, const int jcol, MatrixType& A, IndexVector& perm_r, int& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu) { int nextl_col; // Next available position in panel_lsub[*,jj] @@ -225,7 +224,7 @@ void SparseLUBase<Scalar,Index>::LU_panel_dfs(const int m, const int w, const in VectorBlock<IndexVector> marker1(marker, m, m); nseg = 0; - internal::LU_panel_dfs_traits<IndexVector> traits(jcol, marker1.data()); + panel_dfs_traits<IndexVector> traits(jcol, marker1.data()); // For each column in the panel for (int jj = jcol; jj < jcol + w; jj++) @@ -246,13 +245,14 @@ void SparseLUBase<Scalar,Index>::LU_panel_dfs(const int m, const int w, const in if (kmark == jj) continue; // krow visited before, go to the next nonzero - LU_dfs_kernel(jj, perm_r, nseg, panel_lsub, segrep, repfnz_col, xprune, marker, parent, + dfs_kernel(jj, perm_r, nseg, panel_lsub, segrep, repfnz_col, xprune, marker, parent, xplore, glu, nextl_col, krow, traits); }// end for nonzeros in column jj } // end for column jj } +} // end namespace internal } // end namespace Eigen #endif // SPARSELU_PANEL_DFS_H |