10 #ifndef EIGEN_BASIC_PRECONDITIONERS_H 11 #define EIGEN_BASIC_PRECONDITIONERS_H 35 template <
typename _Scalar>
49 template<
typename MatType>
58 template<
typename MatType>
64 template<
typename MatType>
68 for(
int j=0;
j<mat.outerSize(); ++
j)
70 typename MatType::InnerIterator it(mat,
j);
71 while(it && it.index()!=
j) ++it;
72 if(it && it.index()==
j && it.value()!=
Scalar(0))
81 template<
typename MatType>
88 template<
typename Rhs,
typename Dest>
99 &&
"DiagonalPreconditioner::solve(): invalid number of rows of the right hand side matrix b");
127 template <
typename _Scalar>
133 using Base::m_invdiag;
138 template<
typename MatType>
144 template<
typename MatType>
150 template<
typename MatType>
155 if(MatType::IsRowMajor)
158 for(
Index j=0;
j<mat.outerSize(); ++
j)
160 for(
typename MatType::InnerIterator it(mat,
j); it; ++it)
169 for(
Index j=0;
j<mat.outerSize(); ++
j)
171 RealScalar sum = mat.col(
j).squaredNorm();
178 Base::m_isInitialized =
true;
182 template<
typename MatType>
206 template<
typename MatrixType>
209 template<
typename MatrixType>
212 template<
typename MatrixType>
215 template<
typename MatrixType>
218 template<
typename Rhs>
226 #endif // EIGEN_BASIC_PRECONDITIONERS_H A preconditioner based on the digonal entries.
EIGEN_DEVICE_FUNC Derived & setZero(Index size)
LeastSquareDiagonalPreconditioner()
LeastSquareDiagonalPreconditioner(const MatType &mat)
LeastSquareDiagonalPreconditioner & compute(const MatType &mat)
Namespace containing all symbols from the Eigen library.
NumTraits< Scalar >::Real RealScalar
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
IdentityPreconditioner & analyzePattern(const MatrixType &)
LeastSquareDiagonalPreconditioner & factorize(const MatType &mat)
DiagonalPreconditioner< _Scalar > Base
Jacobi preconditioner for LeastSquaresConjugateGradient.
DiagonalPreconditioner & factorize(const MatType &mat)
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void resize(Index rows, Index cols)
DiagonalPreconditioner & compute(const MatType &mat)
const Solve< DiagonalPreconditioner, Rhs > solve(const MatrixBase< Rhs > &b) const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
LeastSquareDiagonalPreconditioner & analyzePattern(const MatType &)
DiagonalPreconditioner & analyzePattern(const MatType &)
NumTraits< Scalar >::Real RealScalar
void _solve_impl(const Rhs &b, Dest &x) const
const Rhs & solve(const Rhs &b) const
IdentityPreconditioner & compute(const MatrixType &)
Matrix< Scalar, Dynamic, 1 > Vector
DiagonalPreconditioner(const MatType &mat)
A naive preconditioner which approximates any matrix as the identity matrix.
Vector::StorageIndex StorageIndex
Pseudo expression representing a solving operation.
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
IdentityPreconditioner & factorize(const MatrixType &)
EIGEN_DEVICE_FUNC bool abs2(bool x)
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Base class for all dense matrices, vectors, and expressions.
IdentityPreconditioner(const MatrixType &)