Fix another bug in LOG, this time for rationals not near 1
... use double-precision intermediate values
still no regression tests, sorry
(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
;;; 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"