11#ifndef EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
12#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
32template <
typename _Scalar,
typename _StorageIndex>
157 template<
typename Dest>
159 template<
bool Conjugate,
typename Dest>
184template<
typename Scalar,
typename StorageIndex>
193 m_startidval(m_idval),
204 inline Scalar value()
const {
return m_matrix.valuePtr()[m_idval]; }
208 inline Index index()
const {
return m_matrix.rowIndex()[m_idrow]; }
216 return ( (m_idval < m_endidval) && (m_idval >= m_startidval)
217 && (m_idrow < m_endidrow) );
235template<
typename Scalar,
typename Index_>
236template<
typename Dest>
247 for (
Index k = 0; k <= nsuper(); k ++)
282 work.topRows(
nrow).noalias() =
A *
U;
300template<
typename Scalar,
typename Index_>
301template<
bool Conjugate,
typename Dest>
310 for (
Index k = nsuper(); k >= 0; k--)
354 U =
U -
A.adjoint() * work.topRows(
nrow);
356 U =
U -
A.transpose() * work.topRows(
nrow);
Matrix3f m
Definition AngleAxis_mimic_euler.cpp:1
int n
Definition BiCGSTAB_simple.cpp:1
int i
Definition BiCGSTAB_step_by_step.cpp:9
MatrixXf mat
Definition Tutorial_AdvancedInitialization_CommaTemporary.cpp:1
SCALAR Scalar
Definition bench_gemm.cpp:46
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition bench_gemm.cpp:48
Definition ForwardDeclarations.h:87
An InnerIterator allows to loop over the element of any matrix expression.
Definition CoreIterators.h:34
A matrix or vector expression mapping an existing array of data.
Definition Map.h:96
InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L.
Definition SparseLU_SupernodalMatrix.h:186
Index m_idval
Definition SparseLU_SupernodalMatrix.h:224
const Index m_startidval
Definition SparseLU_SupernodalMatrix.h:225
Index m_endidrow
Definition SparseLU_SupernodalMatrix.h:228
Scalar value() const
Definition SparseLU_SupernodalMatrix.h:204
InnerIterator(const MappedSuperNodalMatrix &mat, Index outer)
Definition SparseLU_SupernodalMatrix.h:188
const Index m_endidval
Definition SparseLU_SupernodalMatrix.h:226
Scalar & valueRef()
Definition SparseLU_SupernodalMatrix.h:206
Index supIndex() const
Definition SparseLU_SupernodalMatrix.h:212
InnerIterator & operator++()
Definition SparseLU_SupernodalMatrix.h:198
Index m_idrow
Definition SparseLU_SupernodalMatrix.h:227
Index col() const
Definition SparseLU_SupernodalMatrix.h:210
const MappedSuperNodalMatrix & m_matrix
Definition SparseLU_SupernodalMatrix.h:221
Index index() const
Definition SparseLU_SupernodalMatrix.h:208
const Index m_outer
Definition SparseLU_SupernodalMatrix.h:222
const Index m_supno
Definition SparseLU_SupernodalMatrix.h:223
Index row() const
Definition SparseLU_SupernodalMatrix.h:209
a class to manipulate the L supernodal factor from the SparseLU factorization
Definition SparseLU_SupernodalMatrix.h:34
StorageIndex * supToCol()
Definition SparseLU_SupernodalMatrix.h:141
const StorageIndex * colToSup() const
Definition SparseLU_SupernodalMatrix.h:134
StorageIndex * rowIndex()
Definition SparseLU_SupernodalMatrix.h:112
_Scalar Scalar
Definition SparseLU_SupernodalMatrix.h:36
Index m_nsuper
Definition SparseLU_SupernodalMatrix.h:169
StorageIndex * rowIndexPtr()
Definition SparseLU_SupernodalMatrix.h:122
MappedSuperNodalMatrix(Index m, Index n, ScalarVector &nzval, IndexVector &nzval_colptr, IndexVector &rowind, IndexVector &rowind_colptr, IndexVector &col_to_sup, IndexVector &sup_to_col)
Definition SparseLU_SupernodalMatrix.h:45
Scalar * m_nzval
Definition SparseLU_SupernodalMatrix.h:170
const Scalar * valuePtr() const
Definition SparseLU_SupernodalMatrix.h:92
StorageIndex * colToSup()
Definition SparseLU_SupernodalMatrix.h:132
StorageIndex * m_sup_to_col
Definition SparseLU_SupernodalMatrix.h:175
StorageIndex * m_col_to_sup
Definition SparseLU_SupernodalMatrix.h:174
const StorageIndex * rowIndexPtr() const
Definition SparseLU_SupernodalMatrix.h:124
Matrix< StorageIndex, Dynamic, 1 > IndexVector
Definition SparseLU_SupernodalMatrix.h:38
_StorageIndex StorageIndex
Definition SparseLU_SupernodalMatrix.h:37
StorageIndex * m_rowind
Definition SparseLU_SupernodalMatrix.h:172
void solveTransposedInPlace(MatrixBase< Dest > &X) const
Definition SparseLU_SupernodalMatrix.h:302
StorageIndex * colIndexPtr()
Definition SparseLU_SupernodalMatrix.h:99
Index nsuper() const
Definition SparseLU_SupernodalMatrix.h:151
const StorageIndex * rowIndex() const
Definition SparseLU_SupernodalMatrix.h:114
StorageIndex * m_nzval_colptr
Definition SparseLU_SupernodalMatrix.h:171
Index rows() const
Definition SparseLU_SupernodalMatrix.h:78
const StorageIndex * colIndexPtr() const
Definition SparseLU_SupernodalMatrix.h:104
Matrix< Scalar, Dynamic, 1 > ScalarVector
Definition SparseLU_SupernodalMatrix.h:39
void solveInPlace(MatrixBase< Dest > &X) const
Solve with the supernode triangular matrix.
Definition SparseLU_SupernodalMatrix.h:237
Index m_col
Definition SparseLU_SupernodalMatrix.h:168
MappedSuperNodalMatrix()
Definition SparseLU_SupernodalMatrix.h:41
Scalar * valuePtr()
Definition SparseLU_SupernodalMatrix.h:90
const StorageIndex * supToCol() const
Definition SparseLU_SupernodalMatrix.h:143
Index m_row
Definition SparseLU_SupernodalMatrix.h:167
StorageIndex * m_rowind_colptr
Definition SparseLU_SupernodalMatrix.h:173
Index cols() const
Definition SparseLU_SupernodalMatrix.h:83
void setInfos(Index m, Index n, ScalarVector &nzval, IndexVector &nzval_colptr, IndexVector &rowind, IndexVector &rowind_colptr, IndexVector &col_to_sup, IndexVector &sup_to_col)
Definition SparseLU_SupernodalMatrix.h:61
~MappedSuperNodalMatrix()
Definition SparseLU_SupernodalMatrix.h:51
* lda
Definition eigenvalues.cpp:59
#define X
Definition icosphere.cpp:20
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
const AutoDiffScalar< DerType > & conj(const AutoDiffScalar< DerType > &x)
Definition AutoDiffScalar.h:574
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
Definition BandTriangularSolver.h:13
Definition ForwardDeclarations.h:17
std::ptrdiff_t j
Definition tut_arithmetic_redux_minmax.cpp:2