Re: [julia-users] matrix multiplications

2016-10-19 Thread Cameron McBride
I agree on the consistency part with other in-place operations. I certainly don’t feel it’s hard to just use A_mul_B!, but my familiarity with BLAS shouldn’t be taken for granted. And if an in-place operator syntax exists in the language already… How about the flip side of the argument, it appears

Re: [julia-users] matrix multiplications

2016-10-19 Thread zamani . majid1989
yes exactly ! On Wednesday, October 19, 2016 at 4:28:21 PM UTC+3:30, Milan Bouchet-Valat wrote: > > Le mardi 18 octobre 2016 à 15:28 -0700, Steven G. Johnson a écrit : > > > > > > > Since it uses the in-place assignment operator .= it could be made > > > to work as desired, but there's some

Re: [julia-users] matrix multiplications

2016-10-19 Thread Milan Bouchet-Valat
Le mardi 18 octobre 2016 à 15:28 -0700, Steven G. Johnson a écrit : > > > > Since it uses the in-place assignment operator .= it could be made > > to work as desired, but there's some designing to do. > > > > The problem is that it doesn't know that * is a matrix multiplication > until compile-

Re: [julia-users] matrix multiplications

2016-10-18 Thread Steven G. Johnson
On Tuesday, October 18, 2016 at 4:10:57 PM UTC-4, Stefan Karpinski wrote: > > Since it uses the in-place assignment operator .= it could be made to work > as desired, but there's some designing to do. > The problem is that it doesn't know that * is a matrix multiplication until compile-time.

Re: [julia-users] matrix multiplications

2016-10-18 Thread Stefan Karpinski
Since it uses the in-place assignment operator .= it could be made to work as desired, but there's some designing to do. On Tue, Oct 18, 2016 at 2:55 PM, Cameron McBride wrote: > 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 > > T

Re: [julia-users] matrix multiplications

2016-10-18 Thread Cameron McBride
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 wrote: >

Re: [julia-users] matrix multiplications

2016-10-18 Thread Jérémy Béjanin
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 > wrote: > >> I think this is something I might have read about in the past

Re: [julia-users] matrix multiplications

2016-10-18 Thread Stefan Karpinski
That's what A_mul_B! does. On Tue, Oct 18, 2016 at 1:45 PM, Jérémy Béjanin 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: >> >

Re: [julia-users] matrix multiplications

2016-10-18 Thread Jérémy Béjanin
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 an

Re: [julia-users] matrix multiplications

2016-10-18 Thread Stefan Karpinski
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); ju

[julia-users] matrix multiplications

2016-10-18 Thread zamani . majid1989
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(100