Re: local variables - Module, For loop
- To: mathgroup at smc.vnet.net
- Subject: [mg113129] Re: local variables - Module, For loop
- From: Sebastian Schmitt <sschmitt at physi.uni-heidelberg.de>
- Date: Wed, 13 Oct 2010 23:28:24 -0400 (EDT)
- References: <i9279n$3i3$1@smc.vnet.net> <201010131640.MAA28345@smc.vnet.net>
Hi Albert!
Albert Retey wrote:
> Am 12.10.2010 19:52, schrieb Sebastian Schmitt:
>> Bill Rowe wrote:
>>> In[5]:= Timing[Sum[k, {k, n}]]
>>>
>>> Out[5]= {0.393106,500000500000}
>>>
>>> In[6]:= Timing[Sum[k, {k, m}] /. m -> n]
>>>
>>> Out[6]= {0.08371,500000500000}
>>>
>>> Each code snippet does exactly the same thing and produces
>>> exactly the same sum. But as you can see, using For is the
>>> slowest method.
>>
>> Dear Bill!
>>
>> Thank you very much for your detailed answer!
>>
>> Interesting that the last version is so much faster. Is it only due to
>> numeric vs. algebraic?
>
> the first is adding a lot of numbers, the second is evaluating 1/2
> m(m+1). It's hard to believe, but there was a 9 year old boy named Carl
> Friedrich who made the experience that the second is faster some 200
> years ago -- without access to Mathematica!!!
Attaboy! ;)
I thought Mathematica is smart enough to see that it could also use the
algebraic version even if I supply n in the call to Sum. But it is
probably on purpose this way.
Cheers,
Sebastian
- References:
- Re: local variables - Module, For loop
- From: Albert Retey <awnl@gmx-topmail.de>
- Re: local variables - Module, For loop