SugarBLAS.jl lets you write BLAS functions in a more aesthetic form. This way anytime someone reads a BLAS call they don’t have to look up for the order of the positional arguments to understand what it does.
julia> macroexpand(:(@blas! Y += X)) :(Base.LinAlg.axpy!(1.0,X,Y)) julia> macroexpand(:(@blas! X = (a+c)*X)) :(scale!(a + c,X)) julia> macroexpand(:(SugarBLAS.@gemm! C -= alpha*A*B)) :(Base.LinAlg.BLAS.gemm!('N','N',-alpha,A,B,1.0,C))
The package only uses
Base definitions so you can extend each function however you want.