| 14 | |
| 15 | template<typename Derived> |
| 16 | typename internal::traits<Derived>::Scalar |
| 17 | SparseMatrixBase<Derived>::sum() const |
| 18 | { |
| 19 | eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix"); |
| 20 | Scalar res(0); |
| 21 | internal::evaluator<Derived> thisEval(derived()); |
| 22 | for (Index j=0; j<outerSize(); ++j) |
| 23 | for (typename internal::evaluator<Derived>::InnerIterator iter(thisEval,j); iter; ++iter) |
| 24 | res += iter.value(); |
| 25 | return res; |
| 26 | } |
| 27 | |
| 28 | template<typename _Scalar, int _Options, typename _Index> |
| 29 | typename internal::traits<SparseMatrix<_Scalar,_Options,_Index> >::Scalar |