How to make my Julia code fast like MATLAB?

Oh I missed this, reading from the bottom. Any weird wrapper will mean * can’t use BLAS.

But it’s also structure you can perhaps exploit. Here https://github.com/JuliaMatrices/SpecialMatrices.jl/blob/master/src/circulant.jl#L26 it seems to have special methods for * with a vector. By writing fft(x,1) etc. you could probably extend that to * with a matrix. I see Remove Toeplitz, Hankel, and circulant matrices by devmotion · Pull Request #40 · JuliaLinearAlgebra/SpecialMatrices.jl · GitHub points towards ToeplitzMatrices.jl which may have a more complete version?