5.1 Changes in this release

*perfect-float-output-p*

Variable

Package:lcl

This variable controls whether or not to use a floating-point version of the algorithm that converts FLOATs into decimal character, rather than doing the printout exactly with rational arithmetic.

The notion of Perfect floating point printout is such that the decimal string printed out will be read back in as exactly the same bit-pattern of floating point number, and no shorter string has this property.

By using the floating-point hardware to do intermediate calculations, the algorithm will produce, generally, strings just as short for the numbers to be printed out, but due to roundoff errors the values read back in may be wrong by a few LSB's (Least Significant Bits--an error in the third from last bit of a 53-bit mantissa would a 4 LSB error.)

The difference in time cost can vary by as much as a factor of 5; yet many numbers will still print out in Perfect representation as mentioned above. The algorithm used when*perfect-float-output-p* is false will print out all dollars-and-cents values up to $10,000 (and many more) perfectly. Larger numbers may have a moderate probability of having a one- or two-LSB error; no number has yet been observed to have more than four-LSB's error.

The default value ist, meaning to use Perfect representation


Liquid Common Lisp 5.0 Release and Installation Notes - 9 JUN 1997

Generated with Harlequin WebMaker