diff options
Diffstat (limited to 'Eigen/src/SparseCore/SparseRedux.h')
-rw-r--r-- | Eigen/src/SparseCore/SparseRedux.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Eigen/src/SparseCore/SparseRedux.h b/Eigen/src/SparseCore/SparseRedux.h index 2a9718cfb..458774962 100644 --- a/Eigen/src/SparseCore/SparseRedux.h +++ b/Eigen/src/SparseCore/SparseRedux.h @@ -30,7 +30,10 @@ typename internal::traits<SparseMatrix<_Scalar,_Options,_Index> >::Scalar SparseMatrix<_Scalar,_Options,_Index>::sum() const { eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); - return Matrix<Scalar,1,Dynamic>::Map(m_data.valuePtr(), m_data.size()).sum(); + if(this->isCompressed()) + return Matrix<Scalar,1,Dynamic>::Map(m_data.valuePtr(), m_data.size()).sum(); + else + return Base::sum(); } template<typename _Scalar, int _Options, typename _Index> |