Re: Manually nested Tables faster than builtin nesting?
- To: mathgroup at smc.vnet.net
- Subject: [mg113459] Re: Manually nested Tables faster than builtin nesting?
- From: "Carl K. Woll" <carlw at wolfram.com>
- Date: Fri, 29 Oct 2010 06:30:00 -0400 (EDT)
On 10/28/2010 3:28 AM, Bob Hanlon wrote:
> I get similar results and Outer falls between the others.
>
> imax = jmax = 5000;
>
> (tabletable = Table[Table[i*j, {i, imax}], {j, jmax}];) //
> Timing // First
>
> 1.96097
>
> (table = Table[i*j, {i, imax}, {j, jmax}];) // Timing // First
>
> 24.0062
>
> (outer = Outer[#1*#2&, Range[imax], Range[jmax]];) // Timing // First
>
> 14.2569
>
>
Using Outer[Times, Range[imax], Range[jmax]] would be much, much faster:
In[17]:= table1 = Outer[#1*#2 &, Range[imax], Range[jmax]]; // Timing
Out[17]= {12.433, Null}
In[18]:= table2 = Outer[Times, Range[imax], Range[jmax]]; // Timing
Out[18]= {0.078, Null}
Carl Woll
Wolfram Research
> tabletable == table == outer
>
> True
>
>
> Bob Hanlon
>
> ---- Sebastian Schmitt<sschmitt at physi.uni-heidelberg.de> wrote:
>
> =============
> Dear all!
>
> I find that manually nested Tables are faster (factor 2 in my example)
> compared to the builtin nesting. I probably do a stupid thinko. Could
> you please have a look?
>
> In[52]:= imax = jmax = 5000;
>
> In[53]:= (tabletable = Table[Table[i*j, {i, imax}], {j, jmax}];) //
> Timing // First
>
> Out[53]= 1.84
>
> In[54]:= (table = Table[i*j, {i, imax}, {j, jmax}];) // Timing // First
>
> Out[54]= 14.55
>
> In[55]:= tabletable == table
>
> Out[55]= True
>
> Thanks,
>
> Sebastian
>
>
>