Re: Speed: Inner MUCH slower than dot product??
- To: mathgroup at smc.vnet.net
- Subject: [mg65558] Re: [mg65523] Speed: Inner MUCH slower than dot product??
- From: bsyehuda at gmail.com
- Date: Fri, 7 Apr 2006 06:14:38 -0400 (EDT)
- References: <200604061052.GAA19474@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, From my experience, any Mathematica function that is limited to a single operation such as dot, Total Cross,Transpose, etc, are faster Functions that are general, such as, Inner, Outer, Thread etc, where you can define arbitrary functions to play with within the function, are much slower. This is reasonable since since a function that is limited to a specific operation can be coded more efficiently. Compare Transpose against Thread for large matrices. Thread can transpose a matrix, but can do much more than that. Transpose can only transpose and will be faster. yehuda On 4/6/06, Lee Newman <leenewm at umich.edu> wrote: > > Dear Group, > > In the process of performance tweaking some code, I came upon the > following result: using Inner is MUCH slower (orders of magnitude) than > using Dot product (see code below). Why is this? > > m = Table[Random[], {25*25}, {50}]; > mt = Transpose@m; > v = Table[Random[], {50}]; > > Do[v.mt, {10^3}] // Timing > Do[Dot[v, mt], {10^3}] // Timing > Do[Inner[Times, v, mt, Plus], {10^3}] // Timing > > {0.047 Second, Null} > {0.046 Second, Null} > {22.047 Second, Null} > > Lee > >
- References:
- Speed: Inner MUCH slower than dot product??
- From: Lee Newman <leenewm@umich.edu>
- Speed: Inner MUCH slower than dot product??