# Tullio: overwrite existing matrix instead of creating a new matrix?

**URL:** https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834
**Category:** New to Julia
**Tags:** linearalgebra, tullio
**Created:** [December 14, 2020, 11:18pm UTC](https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834 "2020-12-14T23:18:17Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)
#### Post date: [December 14, 2020, 11:18pm UTC](https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834/1 "2020-12-14T23:18:17Z")

</div>

I can use Tullio to define a matrix multiplication function `matmul(A, B)` as such:

```julia
using Tullio

matmul(A, B) = @tullio C[i, k] := A[i, j] * B[j, k]

```

I’d like to also define a function `matmul!(C, A, B)` that stores the result by overwriting `C` instead of creating a new matrix.

Is this possible with Tullio?

---

<div class="post-metadata">

### Author: ![simeonschaub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simeonschaub/32/216566_2.png) [@simeonschaub](https://discourse.julialang.org/u/simeonschaub)
#### Post date: [December 14, 2020, 11:20pm UTC](https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834/2 "2020-12-14T23:20:28Z")

</div>

Yes! You just need to replace `:=` with `=` inside the `@tullio` macro.

---

<div class="post-metadata">

### Author: ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)
#### Post date: [December 15, 2020, 12:10am UTC](https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834/3 "2020-12-15T00:10:22Z")

</div>

That’s easy! So it would look like this, presumably?

```julia
using Tullio

matmul!(C, A, B) = @tullio C[i, k] = A[i, j] * B[j, k]

```

---

<div class="post-metadata">

### Author: ![simeonschaub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simeonschaub/32/216566_2.png) [@simeonschaub](https://discourse.julialang.org/u/simeonschaub)
#### Post date: [December 15, 2020, 12:15am UTC](https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834/4 "2020-12-15T00:15:08Z")

</div>

Yes, that should do the trick.

---

<div class="post-metadata">

### Author: ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)
#### Post date: [December 15, 2020, 12:15am UTC](https://discourse.julialang.org/t/tullio-overwrite-existing-matrix-instead-of-creating-a-new-matrix/51834/5 "2020-12-15T00:15:24Z")

</div>

Perfect, thank you!
