MathGroup Archive 2009

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

Search the Archive

Re: Re: Combined Set, SetDelayed

  • To: mathgroup at smc.vnet.net
  • Subject: [mg100851] Re: [mg100829] Re: Combined Set, SetDelayed
  • From: Leonid Shifrin <lshifr at gmail.com>
  • Date: Tue, 16 Jun 2009 21:51:20 -0400 (EDT)
  • References: <h0vteh$6v2$1@smc.vnet.net> <h12gck$e8s$1@smc.vnet.net>

Hi Helen,

my guess is that the point was that this kind of timings are clearly
unrealistic and should not be taken literally. All they mean is that the
time needed for a given operation is really very small, smaller than
Mathematica can reliably measure given a single run of the code. Run it many
times and divide the total timing by the number of runs, and you will get a
more sensible timing.

Here is the function (or, more precisely, macro) that automates this process
(it suppresses the result):

SetAttributes[myTiming, HoldAll];
myTiming[code_] :=
  Module[{z = 0, y = 0, timelim = 0.1, p, q,  iterlist = 10^Range[0, 10],
    nm = If[ToExpression[StringTake[$Version, 1]] < 6, 2, 1]},
   Catch[
     If[(z = Nest[First, Timing[(y++; Do[code, {#}]);], nm]) > timelim,
        Throw[{z, y}]
        ] & /@ iterlist] /. {p_, q_} :> p/iterlist[[q]]
   ];

Then, for example:

In[1] = Timing[Range[1000];]
Out[1] = {4.19803*10^-16,Null}

In[2] = myTiming[Range[1000]]
Out[2] = 5.11*10^-6


Regards,
Leonid


On Mon, Jun 15, 2009 at 2:37 AM, Helen Read <hpr at together.net> wrote:

> AES wrote:
> > Helen Read <hpr at together.net>
> > wrote:
> >
> >> 0.811 seconds. The second version, using the function that remembers
> >> values, took only 1.87003*10^-15 seconds.
> >
> > The frequency of visible light is around 3*10^14 Hz, so that's around
> > one period of a visible light wave.  Is there maybe a typo here?
>
> No, no typo. Not sure what your point is.
>
> --
> Helen Read
> University of Vermont
>
>


  • Prev by Date: Re: How to use R within Mathematica
  • Next by Date: Continuous updating in Manipulate
  • Previous by thread: Re: Combined Set, SetDelayed
  • Next by thread: Re: Combined Set, SetDelayed