From a03ba5d1adda9a3a20d931c0a7633b5b6a9eb150 Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Wed, 13 Feb 2008 15:03:38 +0000 Subject: [PATCH] Make RATIONALIZE work for double-double-floats. (From an email today on the maxima mailing list.) --- code/float.lisp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/float.lisp b/code/float.lisp index 14d273bd6..0a17dbf93 100644 --- a/code/float.lisp +++ b/code/float.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/float.lisp,v 1.38 2007/10/10 00:51:21 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/float.lisp,v 1.39 2008/02/13 15:03:38 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -1493,7 +1493,8 @@ rounding modes & do ieee round-to-integer. their precision. RATIONALIZE (and also RATIONAL) preserve the invariant: (= x (float (rationalize x) x))" (number-dispatch ((x real)) - (((foreach single-float double-float #+long-float long-float)) + (((foreach single-float double-float #+long-float long-float + #+double-double double-double-float)) ;; This is a fairly straigtforward implementation of the iterative ;; algorithm above. (multiple-value-bind (frac expo sign) -- GitLab