Browse Source

Math: do Matrix::trace() using diagonal() and Vector::sum().

Use (future) SIMD optimizations in Vector::sum() instead of doing it all
over again.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
baeda307c1
  1. 7
      src/Math/Matrix.h

7
src/Math/Matrix.h

@ -100,12 +100,7 @@ template<std::size_t size, class T> class Matrix: public RectangularMatrix<size,
* @f]
*/
T trace() const {
T out(0);
for(std::size_t i = 0; i != size; ++i)
out += (*this)[i][i];
return out;
return this->diagonal().sum();
}
/** @brief %Matrix without given column and row */

Loading…
Cancel
Save