You mean like the following? julia> A=[1.0 2.0; 3.0 4.0]; B=[1.0 1.0; 1.0 1.0]; Y = similar(B); Y.= A * B
This doesn’t work as you might hope. I believe it just creates a temporary result of A*B and then stuffs it into the preexisting Y. On Tue, Oct 18, 2016 at 2:41 PM, Jérémy Béjanin <[email protected]> wrote: > I know, I was asking about that being the default behaviour of * > > On Tuesday, October 18, 2016 at 2:10:14 PM UTC-4, Stefan Karpinski wrote: >> >> That's what A_mul_B! does. >> >> On Tue, Oct 18, 2016 at 1:45 PM, Jérémy Béjanin <[email protected]> >> wrote: >> >>> I think this is something I might have read about in the past, but are >>> there plans to make y = a*b use an already allocated y? >>> >>> On Tuesday, October 18, 2016 at 12:38:00 PM UTC-4, Stefan Karpinski >>> wrote: >>>> >>>> A_mul_B!(Y, A, B) -> Y >>>> >>>> Calculates the matrix-matrix or matrix-vector product A⋅B and stores >>>> the result in Y, overwriting the >>>> existing value of Y. Note that Y must not be aliased with either A or >>>> B. >>>> >>>> julia> A=[1.0 2.0; 3.0 4.0]; B=[1.0 1.0; 1.0 1.0]; Y = similar(B); >>>> A_mul_B!(Y, A, B); >>>> >>>> julia> Y >>>> 2×2 Array{Float64,2}: >>>> 3.0 3.0 >>>> 7.0 7.0 >>>> >>>> On Tue, Oct 18, 2016 at 10:27 AM, <[email protected]> wrote: >>>> >>>>> hi guys >>>>> is there a way to reduce allocated memory in matrix multiplications? >>>>> >>>>> for example this code blew in my machine gives : >>>>> >>>>> function test4(n) >>>>> a = rand(n,n) >>>>> for i = 1:100 >>>>> a*a >>>>> end >>>>> end >>>>> >>>>> >>>>> ---------------------- answer ---------------------- >>>>> test4(1) >>>>> # force compiling >>>>> >>>>> @time test4(1000) >>>>> 16.589743 seconds (433 allocations: 770.587 MB, 0.68% gc time) >>>>> >>>> >>>> >>
