# ANN: SugarBLAS.jl

**URL:** <https://discourse.julialang.org/t/ann-sugarblas-jl/2426>\
**Category:** Community\
**Tags:** package, announcement\
**Created:** [March 3, 2017, 3:00pm UTC](https://discourse.julialang.org/t/ann-sugarblas-jl/2426 "2017-03-03T15:00:47Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![lopezm94](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@lopezm94](https://discourse.julialang.org/u/lopezm94)\
**Post date:** [March 3, 2017, 3:00pm UTC](https://discourse.julialang.org/t/ann-sugarblas-jl/2426/1 "2017-03-03T15:00:47Z")

</div>

[SugarBLAS.jl](https://github.com/lopezm94/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
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.

---

<div class="post-metadata">

**Author:** ![pkofod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pkofod/32/2179_2.png) [@pkofod](https://discourse.julialang.org/u/pkofod)\
**Post date:** [March 3, 2017, 7:57pm UTC](https://discourse.julialang.org/t/ann-sugarblas-jl/2426/2 "2017-03-03T19:57:23Z")

</div>

Looks cool! “Raw” blas is horrible, so I will certainly try this out.

---

<div class="post-metadata">

**Author:** ![gasagna](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gasagna/32/1275_2.png) [@gasagna](https://discourse.julialang.org/u/gasagna)\
**Post date:** [March 3, 2017, 10:00pm UTC](https://discourse.julialang.org/t/ann-sugarblas-jl/2426/3 "2017-03-03T22:00:18Z")

</div>

This should be in Base!

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 3, 2017, 10:07pm UTC](https://discourse.julialang.org/t/ann-sugarblas-jl/2426/4 "2017-03-03T22:07:26Z")

</div>

> [@gasagna](#):
>
> This should be in Base!

I think it works just fine as a package. Simple and does the job well. I know it’s used internally in IterativeSolvers.jl. Nice work.
