From 338c442a6b915d896a7f11fcb9a4dea861da789a Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Wed, 19 Jul 2006 14:58:52 +0000 Subject: [PATCH] o Remove unused code in ABS for double-double-float o Implement ABS for complex double-double-floats. --- code/irrat.lisp | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/code/irrat.lisp b/code/irrat.lisp index 1d33e12c2..ce2deef73 100644 --- a/code/irrat.lisp +++ b/code/irrat.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (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 @@ (dd-complex-sqrt number) (multiple-value-bind (hi lo) (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-sqrt number)))) @@ -630,22 +630,6 @@ (((foreach single-float double-float fixnum rational #+double-double double-double-float)) (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) (let ((rx (realpart number)) (ix (imagpart number))) @@ -660,7 +644,9 @@ (%hypot rx ix)) #+double-double (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) "Returns the angle part of the polar representation of a complex number. -- GitLab