ScaleAndAddTo in Eige GMEV - PullRequest
       26

ScaleAndAddTo in Eige GMEV

0 голосов
/ 09 июля 2019

Чтобы обеспечить матричное умножение вектора, Eigen реализует операцию scaleAndAddTo, которая может быть специализированной для типа матрицы пользователя.

Согласно https://eigen.tuxfamily.org/dox/group__MatrixfreeSolverExample.html пользователь должен предоставить специализацию для scaleAndAddTo, которая вычисляет dst += alpha * lhs * rhs.

Я слежу за стеком вызовов, пока он не будет вызван, и Eigen делает следующее:

  static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void evalTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
  { dst.setZero(); scaleAndAddTo(dst, lhs, rhs, Scalar(1)); }

Поскольку dst установлен на ноль, я не могу понятьпочему мы должны предоставить scaleAndAddTo вместо чего-то вроде масштаба напрямую.

Почему требуется добавить деталь?

...