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
dotfor now) -
axpyoperationy = a * x + ywhere(x, y)areStencilVectorobjects andais scalar; methodmul_iaddis added to classStencilVector, which calls methodaxpyof classStencilVectorSpace - 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.