       Re: Division still cost more than multiplication?

• To: mathgroup at smc.vnet.net
• Subject: [mg24390] Re: Division still cost more than multiplication?
• From: Richard Fateman <fateman at cs.berkeley.edu>
• Date: Wed, 12 Jul 2000 23:13:31 -0400 (EDT)
• Organization: University of California, Berkeley
• References: <8k0tc4\$q2o@smc.vnet.net> <8k3o2q\$418@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```I don't know why you are particularly optimizing the time for a
numeric calculation in Mathematica, since if you were concerned
about the time, you should be using something like Fortran.

In high-end computer systems, the time to do a multiply or
a divide is essentially irrelevant, since the time to get the
data from memory and back to memory is much greater.  Some systems
may several arithmetic units and are quite happy to do several
operations (adds, multiplies, divides, square roots) at the same
time.

The observation regarding Mathematica is undoubtedly unrelated to the
time taken to do a floating-point division.  It is probably related to
associated
processing, maybe having to do with simplification, or error checking
(checking for division by zero, perhaps?)
RJF

AES wrote:
>
> In article <8k0tc4\$q2o at smc.vnet.net>, AES <siegman at stanford.edu> wrote:
>
> > Old-time FORTRAN programmers (like me) were taught (at least in early
> > days) that division cost a lot more machine cycles than multiplication.
> > So, if you had an expression like  y = x/c  that was going to be called
> > many times inside a loop, where x and y were variables and c a constant,
> > you'd code this as:
>
>    [snip]
>
> > Does this still make any sense in Mathematica?  Or is it a primitive
> > relic of long-gone days?
> +++++++++++++++++++++++++++++++++++++++++++++
>
> Anticipating replies to my query that I believe are coming from P. J.
> Hinton and Daniel Lichtbau ((thanks to both), here is the same test as
> P. J. Hintons, performed on a 1998-model 400 MHz Mac PowerBook G3,
> giving very similar results:
>
>    In:= {num, den} = {Random[], Random[]}
>
>    Out= {0.0991313, 0.0559147}
>
>    In:= recip = 1.0 / den
>
>    Out= 17.8844
>
>    In:= Timing[Do[num/den, {2000000}]]
>
>    Out= {28.8 Second, Null}
>
>    In:= {num, den} = {Random[], Random[]}
>
>    Out= {0.132828, 0.28853}
>
>    In:= recip = 1.0 / den
>
>    Out= 3.46585
>
>    In:= Timing[Do[num * recip, {2000000}]]
>
>    Out= {14.6833 Second, Null}

```

• Prev by Date: Re: With[{software=Mathematica}, Frustration]
• Next by Date: Re: A strange bug in Solve
• Previous by thread: Re: Division still cost more than multiplication?
• Next by thread: Re: Re: Division still cost more than multiplication?