Subject: Re: CMUCL18d on Alpha?
From: Erik Naggum <erik@naggum.net>
Date: Fri, 19 Apr 2002 21:55:19 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3228242118692057@naggum.net>

* Bulent Murtezaoglu
| Now I am not even sure the 53 bits IEEE double gives you can be used to
| hold the conversions of A and B above and not cause you to lose precision
| in the addition.

  This is why most reasonable implementations of floating-point hardware
  offer much more internal precision, so that intermediate results do not
  introduce lots of precision-related errors.  If, as a compiler writer,
  you are very good at this stuff, you use _only_ the longer internal forms
  for as long as you possibly can, storing only single- or double-float
  numbers when you have to.  Common Lisp supports a long-float format that
  should be mapped to this longer form, which is usually an 80-bit format
  instead of the 64-bit double-float format used by default.  (_Computing_
  with single-float these days is just plain nuts, even though it may make
  sense to store values of that type.)  It appears reasonable to expect
  that double-floats will read and print correctly when the underlying
  representation used for the computation is such a long-float, but then it
  would be wasteful to believe the same for the (internal) long-floats.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.

  Post with compassion: http://home.chello.no/~xyzzy/kitten.jpg