aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-03-09 21:31:03 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-03-09 21:31:03 +0100
commitfd788748889f50536f590b68dfa98db0044e5115 (patch)
tree7264d9e8aa141daa4a57bf78c175fd1ad1e8376d /Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
parentd4317a85e8266fd9f840986821a2ca1cf673262b (diff)
Fix compilation of iterative solvers with dense matrices
Diffstat (limited to 'Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h')
-rw-r--r--Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
index 46bc0ac78..6477b9de2 100644
--- a/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+++ b/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
@@ -52,9 +52,9 @@ public:
* this class becomes invalid. Call compute() to update it with the new
* matrix A, or modify a copy of A.
*/
- template<typename SparseMatrixDerived>
- explicit IterativeSolverBase(const SparseMatrixBase<SparseMatrixDerived>& A)
- : mp_matrix(A)
+ template<typename MatrixDerived>
+ explicit IterativeSolverBase(const EigenBase<MatrixDerived>& A)
+ : mp_matrix(A.derived())
{
init();
compute(mp_matrix);
@@ -67,8 +67,8 @@ public:
* Currently, this function mostly calls analyzePattern on the preconditioner. In the future
* we might, for instance, implement column reordering for faster matrix vector products.
*/
- template<typename SparseMatrixDerived>
- Derived& analyzePattern(const SparseMatrixBase<SparseMatrixDerived>& A)
+ template<typename MatrixDerived>
+ Derived& analyzePattern(const EigenBase<MatrixDerived>& A)
{
grab(A.derived());
m_preconditioner.analyzePattern(mp_matrix);
@@ -87,8 +87,8 @@ public:
* this class becomes invalid. Call compute() to update it with the new
* matrix A, or modify a copy of A.
*/
- template<typename SparseMatrixDerived>
- Derived& factorize(const SparseMatrixBase<SparseMatrixDerived>& A)
+ template<typename MatrixDerived>
+ Derived& factorize(const EigenBase<MatrixDerived>& A)
{
eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
grab(A.derived());
@@ -108,8 +108,8 @@ public:
* this class becomes invalid. Call compute() to update it with the new
* matrix A, or modify a copy of A.
*/
- template<typename SparseMatrixDerived>
- Derived& compute(const SparseMatrixBase<SparseMatrixDerived>& A)
+ template<typename MatrixDerived>
+ Derived& compute(const EigenBase<MatrixDerived>& A)
{
grab(A.derived());
m_preconditioner.compute(mp_matrix);
@@ -223,11 +223,11 @@ protected:
m_tolerance = NumTraits<Scalar>::epsilon();
}
- template<typename SparseMatrixDerived>
- void grab(const SparseMatrixBase<SparseMatrixDerived> &A)
+ template<typename MatrixDerived>
+ void grab(const EigenBase<MatrixDerived> &A)
{
mp_matrix.~Ref<const MatrixType>();
- ::new (&mp_matrix) Ref<const MatrixType>(A);
+ ::new (&mp_matrix) Ref<const MatrixType>(A.derived());
}
void grab(const Ref<const MatrixType> &A)