X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Firrat.lisp;h=65c96f152a6ebb8277b7ac799f0747791eb0e60d;hb=abfd7c2c9d4882e05a2e9953baf87f8e02a6a1af;hp=5477d6d666eec37347512c2040cfff1ea5a8ca6e;hpb=ddaf14f0438b5252d4d5d149f65921795c9a771d;p=sbcl.git diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index 5477d6d..65c96f1 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -95,7 +95,7 @@ (log (+ number (sqrt (- (* number number) 1.0d0))) #.(exp 1.0d0))) (declaim (inline %atanh)) (defun %atanh (number) - (let ((ratio (/ (1+ number) (1- number)))) + (let ((ratio (/ (+ 1 number) (- 1 number)))) ;; Were we effectively zero? (if (= ratio -1.0d0) 0.0d0 @@ -211,6 +211,7 @@ (when (zerop (logior y-ihi y-lo)) (return-from real-expt (coerce 1d0 rtype))) ;; +-NaN return x+y + ;; FIXME: Hardcoded qNaN/sNaN values are not portable. (when (or (> x-ihi #x7ff00000) (and (= x-ihi #x7ff00000) (/= x-lo 0)) (> y-ihi #x7ff00000)