/[cmucl]/src/code/irrat-dd.lisp
ViewVC logotype

Diff of /src/code/irrat-dd.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.13 by rtoy, Tue May 29 16:28:36 2007 UTC revision 1.14 by rtoy, Mon Jun 11 19:01:23 2007 UTC
# Line 1703  Z may be any number, but the result is a Line 1703  Z may be any number, but the result is a
1703           ;; ATANH is continuous with quadrant III in this case.           ;; ATANH is continuous with quadrant III in this case.
1704           (dd-complex-atanh (complex z -0d0)))           (dd-complex-atanh (complex z -0d0)))
1705          (t          (t
          (flet ((careful-mul (a b)  
                   ;; Carefully multiply a and b, taking care to handle  
                   ;; signed zeroes.  Only need to handle the case of b  
                   ;; being zero.  
                   (if (zerop b)  
                       (if (minusp (* (float-sign a) (float-sign b)))  
                           -0w0  
                           0w0)  
                       (* a b))))  
1706           (let* ( ;; Constants           (let* ( ;; Constants
1707                  (theta (/ (sqrt most-positive-double-float) 4.0w0))                  (theta (/ (sqrt most-positive-double-float) 4.0w0))
1708                  (rho (/ 4.0w0 (sqrt most-positive-double-float)))                  (rho (/ 4.0w0 (sqrt most-positive-double-float)))
# Line 1719  Z may be any number, but the result is a Line 1710  Z may be any number, but the result is a
1710                  (rp (float (realpart z) 1.0w0))                  (rp (float (realpart z) 1.0w0))
1711                  (beta (float-sign rp 1.0w0))                  (beta (float-sign rp 1.0w0))
1712                  (x (* beta rp))                  (x (* beta rp))
1713                  (y (careful-mul beta (- (float (imagpart z) 1.0w0))))                  (y (* beta (- (float (imagpart z) 1.0w0))))
1714                  (eta 0.0w0)                  (eta 0.0w0)
1715                  (nu 0.0w0))                  (nu 0.0w0))
1716             ;; Shouldn't need this declare.             ;; Shouldn't need this declare.
# Line 1758  Z may be any number, but the result is a Line 1749  Z may be any number, but the result is a
1749                                                   (+ (square (- 1.0d0 x))                                                   (+ (square (- 1.0d0 x))
1750                                                      (square t1))))))                                                      (square t1))))))
1751                        (setf nu (* 0.5d0                        (setf nu (* 0.5d0
1752                                    (dd-%atan2 (careful-mul 2.0d0 y)                                    (dd-%atan2 (* 2.0d0 y)
1753                                               (- (* (- 1.0d0 x)                                               (- (* (- 1.0d0 x)
1754                                                     (+ 1.0d0 x))                                                     (+ 1.0d0 x))
1755                                                  (square t1))))))))                                                  (square t1))))))))

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.5