Re: Why Does Repeated Dot Product Take So Long?
- To: mathgroup at smc.vnet.net
- Subject: [mg67962] Re: [mg67938] Why Does Repeated Dot Product Take So Long?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 18 Jul 2006 05:51:06 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
Unless your matrices are symbolic, it should go pretty fast.
$Version
5.2 for Mac OS X (June 20, 2005)
n=2000;
x=Table[Random[],{n},{3}];
y=Table[Random[],{n},{3}];
Timing[sol1=Table[x[[i]].y[[i]], {i, n}];]
{0.007042 Second,Null}
Timing[sol2=#[[1]].#[[2]]&/@Thread[{x,y}];]
{0.028243 Second,Null}
Timing[sol3=Dot@@@Thread[{x,y}];]
{0.04984 Second,Null}
Timing[sol4=MapThread[Dot,{x,y}];]
{0.047926 Second,Null}
sol1==sol2==sol3==sol4
True
Bob Hanlon
---- Gregory Lypny <gregory.lypny at videotron.ca> wrote:
> Hello Everyone,
>
> x and y are both 2000 x 3 matrices. I wanted to created a 2000 x 1
> vector with each element equal to the dot product of the
> corresponding rows of x and y. So I tried this:
>
> Table[x[[i]].y[[i]], {i, 1, 2000}]
>
> It took more than two and a half minutes on my iBook G4. Is that
> normal? I've done seemingly more demanding computations in Do loops
> and Tables that are completed in a split second. Am I doing
> something wrong with this one?
>
> Regards,
>
> Gregory
>