Skip to content
Snippets Groups Projects
Commit 338c442a authored by rtoy's avatar rtoy
Browse files

o Remove unused code in ABS for double-double-float

o Implement ABS for complex double-double-floats.
parent 9ca9ade6
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain. ;;; Carnegie Mellon University, and has been placed in the public domain.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/irrat.lisp,v 1.49 2006/07/19 13:02:45 rtoy Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/irrat.lisp,v 1.50 2006/07/19 14:58:52 rtoy Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -617,7 +617,7 @@ ...@@ -617,7 +617,7 @@
(dd-complex-sqrt number) (dd-complex-sqrt number)
(multiple-value-bind (hi lo) (multiple-value-bind (hi lo)
(c::sqrt-dd (kernel:double-double-hi number) (kernel:double-double-lo number)) (c::sqrt-dd (kernel:double-double-hi number) (kernel:double-double-lo number))
(kernel:make-double-double-float hi lo)))) (kernel:%make-double-double-float hi lo))))
((complex) ((complex)
(complex-sqrt number)))) (complex-sqrt number))))
...@@ -630,22 +630,6 @@ ...@@ -630,22 +630,6 @@
(((foreach single-float double-float fixnum rational (((foreach single-float double-float fixnum rational
#+double-double double-double-float)) #+double-double double-double-float))
(abs number)) (abs number))
#+(and nil double-double)
((double-double-float)
;; This is a hack until abs deftransform is working
(multiple-value-bind (hi lo)
(c::abs-dd (kernel:double-double-hi number) (kernel:double-double-lo number))
(kernel:make-double-double-float hi lo)))
#+(and nil double-double)
((double-double-float)
;; This is a hack until abs deftransform is working
(let ((hi (kernel:double-double-hi number))
(lo (kernel:double-double-lo number)))
(declare (double-float hi lo))
(when (minusp hi)
(setf hi (- hi))
(setf lo (- lo)))
(kernel:make-double-double-float hi lo)))
((complex) ((complex)
(let ((rx (realpart number)) (let ((rx (realpart number))
(ix (imagpart number))) (ix (imagpart number)))
...@@ -660,7 +644,9 @@ ...@@ -660,7 +644,9 @@
(%hypot rx ix)) (%hypot rx ix))
#+double-double #+double-double
(double-double-float (double-double-float
(error "abs complex double-double-float not implemented!"))))))) (multiple-value-bind (abs^2 scale)
(dd-cssqs number)
(scale-float (sqrt abs^2) scale))))))))
(defun phase (number) (defun phase (number)
"Returns the angle part of the polar representation of a complex number. "Returns the angle part of the polar representation of a complex number.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment