MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Timing of looping operators

  • To: mathgroup at smc.vnet.net
  • Subject: [mg62416] Timing of looping operators
  • From: dh <dh at metrohm.ch>
  • Date: Wed, 23 Nov 2005 04:31:55 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hello,
The Mathematica gospel tells you that you should NOT use loops because 
it is inefficient.
Well consider the following examples and their times:

n=10^6;
d=Table[i,{i,n}];
fun[x_]:=x;

a)  Timing[fun & /@ d;]       needs 0.8 sec
b)  Timing[Scan[fun, d]]      needs 1 second
c)  Timing[Do[f[i], {i, n}];] needs 0.7 sec

a) applies the function and creates a new list. b) does not create a new 
list -- but it is slower! And finally c) the loop is fastest!!!

If you change the function to: f[x_]:=x^2, the times are even more striking:

0.8, 2.4, 0.7
it seems like in a and c the function evaluation takes negliable time 
compared to the loop construct, but not so in b.

has anybody an explanation???

Daniel


  • Prev by Date: Re: How to View Mathematica and Hardcopy Books
  • Next by Date: permutations
  • Previous by thread: MATHwire: Information for Mathematica Users
  • Next by thread: Re: Timing of looping operators