# Why do \`A\_mul\_Bc\` and \`A\_mul\_Bt\` belong to \`Base\`, while \`A\_mul\_B!\` lives in Base.LinAlg?

**URL:** <https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [December 14, 2017, 5:43am UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757 "2017-12-14T05:43:27Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![chobbes](https://avatars.discourse-cdn.com/v4/letter/c/848f3c/32.png) [@chobbes](https://discourse.julialang.org/u/chobbes)\
**Post date:** [December 14, 2017, 5:43am UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/1 "2017-12-14T05:43:28Z")

</div>

Searching `A_mul_B` in Julia Doc gives me the following results:

```julia
Base.A_mul_Bc(Function)
Base.A_mul_Bt(Function)
Base.LinAlg.A_mul_B!(Function)
...

```

So I wonder why `A_mul_Bc` and `A_mul_Bt` belong to `Base`, while `A_mul_B!` lives in Base.LinAlg? Thanks!

---

<div class="post-metadata">

**Author:** ![mauro3](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mauro3/32/292_2.png) [@mauro3](https://discourse.julialang.org/u/mauro3)\
**Post date:** [December 14, 2017, 10:56am UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/2 "2017-12-14T10:56:40Z")

</div>

I don’t know the reason for that. But there is a big change of these things in 0.7: [https://github.com/JuliaLang/julia/pull/24969](https://github.com/JuliaLang/julia/pull/24969)

---

<div class="post-metadata">

**Author:** ![chobbes](https://avatars.discourse-cdn.com/v4/letter/c/848f3c/32.png) [@chobbes](https://discourse.julialang.org/u/chobbes)\
**Post date:** [December 14, 2017, 12:45pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/3 "2017-12-14T12:45:12Z")

</div>

> [@mauro3](#):
>
> I don’t know the reason for that. But there is a big change of these things in 0.7: [lazier, less-jazzy linalg internals by Sacha0 · Pull Request #24969 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/pull/24969)

Thanks for the pointer. I also quickly read the [rationale](https://github.com/JuliaLang/julia/issues/5332) behind this PR, but how are these routines re-grouped and re-affiliated now? Do you by chance know?

A bit surprisingly, it took 3 years for this [issue](https://github.com/JuliaLang/julia/issues/5332) to be addressed. This must be a colossus!

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 14, 2017, 12:52pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/4 "2017-12-14T12:52:05Z")

</div>

> [@chobbes](#):
>
> how are these routines re-grouped and re-affiliated now?

AFAICT the notation is shifted to wrappers, ie the type system. Eg wrapping a matrix in `Transpose` now indicates that it should be transposed, etc.

I think that this is a very elegant solution. See the discussion for [#4774](https://github.com/JuliaLang/julia/issues/4774) for some more history.

---

<div class="post-metadata">

**Author:** ![chobbes](https://avatars.discourse-cdn.com/v4/letter/c/848f3c/32.png) [@chobbes](https://discourse.julialang.org/u/chobbes)\
**Post date:** [December 14, 2017, 1:58pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/5 "2017-12-14T13:58:12Z")

</div>

Thanks for the comment. It took me forever to read the almost-endless thread of #4774. 😂😂

---

<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:** [December 14, 2017, 2:00pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/6 "2017-12-14T14:00:10Z")

</div>

> [@chobbes](#):
>
> Thanks for the comment. It took me forever to read the almost-endless thread of #4774. 😂😂

Here’s a summary: [https://www.youtube.com/watch?v=C2RO34b\_oPM](https://www.youtube.com/watch?v=C2RO34b_oPM)

---

<div class="post-metadata">

**Author:** ![chobbes](https://avatars.discourse-cdn.com/v4/letter/c/848f3c/32.png) [@chobbes](https://discourse.julialang.org/u/chobbes)\
**Post date:** [December 14, 2017, 2:06pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/7 "2017-12-14T14:06:37Z")

</div>

> [@ChrisRackauckas](#):
>
> Here’s a summary: [https://www.youtube.com/watch?v=C2RO34b\_oPM](https://www.youtube.com/watch?v=C2RO34b_oPM)

Thanks buddy! Watching now. I wish you could have hinted me a hour ago so that I could have lived a slightly easier life in the last hour.😂😂

---

<div class="post-metadata">

**Author:** ![chobbes](https://avatars.discourse-cdn.com/v4/letter/c/848f3c/32.png) [@chobbes](https://discourse.julialang.org/u/chobbes)\
**Post date:** [December 14, 2017, 2:22pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/8 "2017-12-14T14:22:52Z")

</div>

Btw, when will v0.7 be rolled out? I quickly checked the announcement section and saw none relevant.

Or no more releases before v1.0?

---

<div class="post-metadata">

**Author:** ![mauro3](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mauro3/32/292_2.png) [@mauro3](https://discourse.julialang.org/u/mauro3)\
**Post date:** [December 14, 2017, 9:38pm UTC](https://discourse.julialang.org/t/why-do-a-mul-bc-and-a-mul-bt-belong-to-base-while-a-mul-b-lives-in-base-linalg/7757/9 "2017-12-14T21:38:05Z")

</div>

Don’t know. Feature freeze should be tomorrow: [1.0 Feature Freeze Dec 15th](https://discourse.julialang.org/t/1-0-feature-freeze-dec-15th/7209)
