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