Add kernels for various linear algebra operations

Created by: vcarlier

Add kernels for:

  • inner product of two StencilVector objects belonging to the same space (still called dot for now)
  • axpy operation y = a * x + y where (x, y) are StencilVector objects and a is scalar; method mul_iadd is added to class StencilVector, which calls method axpy of class StencilVectorSpace
  • Matrix-vector product of StencilMatrix

Further details

Added 3 kernels for the different possible inner product (1/2/3 d) Updated the call in stencil according to this changes Beware, the complex conjugate is on the first variable as this was the case in the previous implementation and swapping that would break a lot of other things. This will need to be updated when everything is changed to use conjugate on the first variable.

Added 3 kernels for the Matrix vector dot product and updated the call in stencil matrix according to this changes. Some parameters were added in the self._arg for the dot product in the init but the unnecessary arguments are removed in set_backend.

Merge request reports

Loading