MathGroup Archive 2009

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

Search the Archive

Re: Re: Combined Set, SetDelayed


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