From: Christophe Rhodes Date: Thu, 30 Jan 2003 12:23:10 +0000 (+0000) Subject: 0.7.12.11: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=85b5d31eda93a427acf97f835f78654a9b5c4f4f;hp=35dd4e2ea8f99f0716a3bfb5ccfec4c6ad520ac5;p=sbcl.git 0.7.12.11: Fix another bug in LOG, this time for rationals not near 1 ... use double-precision intermediate values still no regression tests, sorry --- diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index b221854..bab7661 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -314,8 +314,9 @@ (integer-length denominator)) (coerce (%log1p (coerce (- number 1) 'double-float)) 'single-float) - (coerce (- (log numerator) (log denominator)) - 'single-float))))) + (coerce (/ (- (log2 numerator) (log2 denominator)) + (log (exp 1.0d0) 2.0d0)) + 'single-float))))) (((foreach single-float double-float)) ;; Is (log -0) -infinity (libm.a) or -infinity + i*pi (Kahan)? ;; Since this doesn't seem to be an implementation issue diff --git a/version.lisp-expr b/version.lisp-expr index 41c4969..413402d 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.12.10" +"0.7.12.11"