simp.lisp incorrectly sets machine-mantissa-precision to be 24:
(eval-when (compile load)
(defvar machine-mantissa-precision 24 );;is this correct
)
For double precision, machine-mantissa-precision should be 53;
changing it corrects the problem with the precision of the rational
to float conversion. For Common Lisp, float.lisp correctly defines
machine-mantissa-precision with
MACHINE-MANTISSA-PRECISION
#+(OR PDP10 H6180) 27.
#+cl(integer-length (integer-decode-float most-positive-double-float))
Barton