I am a bit confused about the distinction between a mutable array and a sized array in the `StaticArrays`

package. My application is block diagonal matrices with all of the blocks having the same, usually small, size, `k × k`

.

One block diagonal matrix, `A`

, is symmetric and positive semi-definite. Given a lower-triangular matrix, `T`

, of size `k×k`

, I fill out the diagonal blocks of a similar, lower-triangular matrix, `L`

according to

```
for i in 1:eachindex(A.diag)
_chol(copy!(L.diag[i], T'A.diag[i]*T + I), Val{:L})
end
```

where `_chol`

is some suitable in-place lower Cholesky factorization method (the matrix multiplications and addition of `I`

will be done in-place)

`A`

could be `Diagonal{SMatrix{k,k,T}}`

but the diagonal blocks of `L`

must be mutable. Should I use `Diagonal{MMatrix{k,k,T})`

or `Diagonal{SizedArray{(k,k),T,k,k}}`

or something else?