Description
Currently, there is the following line in the sparse matmult code:
I am assuming that this means we want to have the more general A_mul_B*!(α,A,B,β,C) = αAB + βC
methods which overwrite C
(the BLAS gemm
API) for dense arrays. Is that still the case? (It also seems possible to keep both APIs, i.e. keep the A_mul_B*!(C,A,B)
methods, which would simply be defined as A_mul_B*!(C,A,B) = A_mul_B*!(1,A,B,0,C)
.)
I would personally like to have the gemm
API defined for all array types (this has been expressed elsewhere). Implementing these methods for dense arrays seems fairly simple, since they would just directly call gemm
et al. The sparse case is already implemented. The only real modification would be to the pure julia generic matmult, which does not accept α
and β
arguments.
This would lead to generic code that works with any type of array/number. I currently have a simple implementation of expm (after having done the modification to _generic_matmatmult!
) which works with bigfloats and sparse arrays.
Activity