# Why doesn't \`mul!\` have a GEMV style interface?

**URL:** <https://discourse.julialang.org/t/why-doesnt-mul-have-a-gemv-style-interface/12136>\
**Category:** Internals & Design\
**Created:** [July 3, 2018, 3:33pm UTC](https://discourse.julialang.org/t/why-doesnt-mul-have-a-gemv-style-interface/12136 "2018-07-03T15:33:31Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sean\_McBane](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sean_mcbane/32/4580_2.png) [@Sean\_McBane](https://discourse.julialang.org/u/Sean_McBane)\
**Post date:** [July 3, 2018, 3:33pm UTC](https://discourse.julialang.org/t/why-doesnt-mul-have-a-gemv-style-interface/12136/1 "2018-07-03T15:33:31Z")

</div>

For `A::SparseMatrixCSC`, there is a GEMV style interface `A_mul_B!(α, A, x, β, y)` (in 0.6) or `mul!(C, A, B, α, β)` (in 0.7 and beyond). These interfaces do not exist for other matrix types, and it seems like they should; if not a common operation, it’s still something I’d expect to be available so that I can write generic code rather than calling `BLAS.gemv!`. I found it especially surprising that the interface does not exist given that the method _is_ defined for sparse matrices. Is there a rationale for why we don’t have methods for other array types, or is it simply an oversight / lack of implementers with time?

---

<div class="post-metadata">

**Author:** ![jebej](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jebej/32/1784_2.png) [@jebej](https://discourse.julialang.org/u/jebej)\
**Post date:** [July 3, 2018, 7:17pm UTC](https://discourse.julialang.org/t/why-doesnt-mul-have-a-gemv-style-interface/12136/2 "2018-07-03T19:17:25Z")

</div>

It hasn’t been implemented yet. Here is the issue for it, though it predates the change to `mul!`:

[https://github.com/JuliaLang/julia/issues/23919](https://github.com/JuliaLang/julia/issues/23919)
