My main problem is that (a.'*b)[1,1]
looks a bit ugly. I'll just implement my own dotu Sent from my iPhone > On Jan 3, 2014, at 12:21 AM, Stefan Karpinski <[email protected]> > wrote: > > Unless the vectors in question are small, the allocation of a one-element > array is unlikely to be significant. If the vectors are small, writing out > the dot product yourself is likely to be faster; In fact, it may be faster > anyway. > >> On Jan 2, 2014, at 7:38 AM, Ivar Nesje <[email protected]> wrote: >> >> Thanks for correcting me. I should have checked better before answering, >> especially because it is so simple in Julia to follow the functions and see >> what actually gets calculated. >> >> kl. 13:29:49 UTC+1 torsdag 2. januar 2014 skrev Andreas Noack Jensen >> følgende: >>> >>> The problem here is that the method in operators.jl is >>> At_mul_B(a,b)=transport(a)*b and therefore there is a transposed copy in >>> the calculation. >>> >>> >>> 2014/1/2 Ivar Nesje <[email protected]> >>>> Julia does part of transformation automatically for you. >>>> >>>> If you look at >>>> >>>> julia> @which a.'*b >>>> At_mul_B(a,b) at operators.jl:122 >>>> >>>> You can see that the call is automatically rewritten to At_mul_B(a,b) >>>> without making a transposed copy. >>>> >>>> I am not sure what you can do about the result being a 1 element >>>> Array{Complex{Float64},1} instead of just a Complex{Float64}. >>>> >>>> Ivar >>>> >>>> kl. 13:02:39 UTC+1 torsdag 2. januar 2014 skrev Sheehan Olver følgende: >>>>> >>>>> I want to do >>>>> >>>>> a.'*b >>>>> >>>>> where a and b are Vector{Complex}, but this returns an Array, not a >>>>> constant, and probably does unneccesary memory allocation for when >>>>> constructing a.' >>>>> >>>>> If it was >>>>> >>>>> a'*b >>>>> >>>>> I can just replace it with dot(a,b). Is there an equivalent that doesn't >>>>> conjugate the first argument? >>> >>> >>> >>> -- >>> Med venlig hilsen >>> >>> Andreas Noack Jensen
