[Openmcl-devel] To sqrt or to expt, that is the question
Gary King
gwking at cs.umass.edu
Tue Dec 23 01:52:44 UTC 2003
I was looking at some code where someone had used expt to compute the
square root of a number. "Hmm, I thought, it all depends on the
compiler and the implementation, but I would have thought that (sqrt x)
would be faster than (expt x 0.5)." So I tried the following,
admittedly unscientific, test:
(time
(let ((x 0d0))
(loop repeat 100000 do
(setf x (expt 101 0.5)))
x))
(time
(let ((x 0d0))
(loop repeat 100000 do
(setf x (sqrt 101)))
x))
To my surprise in both MCL and OpenMCL, not only was expt faster, but
sqrt conses. Note that I tried the same test in SBCL and found that
there was no significant difference between expt and sqrt. This
probably isn't a big deal, but it might be worth optimizing sqrt in MCL
at some point...
--
Gary Warren King, Lab Manager
EKSL East, University of Massachusetts * 413 577 0176
"no art, however minor, demands less than total dedication if you want
to excel in it."
-- Alberti
More information about the Openmcl-devel
mailing list