diff --git a/code/irrat.lisp b/code/irrat.lisp index 3feaf87642ce0b6bee863364f49924610a185d85..1305d5834bc51d733dca3bec9115bd035bd53d19 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.27 1998/02/24 18:18:17 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/irrat.lisp,v 1.28 1998/04/15 01:29:57 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -379,8 +379,7 @@ (complex-sqrt number) (coerce (%sqrt (coerce number 'double-float)) 'single-float))) (((foreach single-float double-float)) - (if (< (float-sign number) - (coerce 0 '(dispatch-type number))) + (if (minusp number) (complex-sqrt number) (coerce (%sqrt (coerce number 'double-float)) '(dispatch-type number)))) diff --git a/compiler/float-tran.lisp b/compiler/float-tran.lisp index 5d05c17bab2551acb59fc5b160f5f75733cc6116..d43b35962bc8b173283e916a5a0afddd5b938cb4 100644 --- a/compiler/float-tran.lisp +++ b/compiler/float-tran.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/compiler/float-tran.lisp,v 1.68 1998/03/30 03:05:52 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.69 1998/04/15 01:29:59 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -675,10 +675,8 @@ (frob acos (specifier-type '(real -1d0 1d0)) 0 pi :increasingp nil) (frob acosh (specifier-type '(real 1d0)) nil nil) (frob atanh (specifier-type '(real -1d0 1d0)) -1 1) - (frob sqrt (specifier-type - #-negative-zero-is-not-zero '(or (member 0f0 0d0) - (real (0d0))) - #+negative-zero-is-not-zero '(real 0d0)) + (frob sqrt (specifier-type #-negative-zero-is-not-zero '(real 0d0) + #+negative-zero-is-not-zero '(real -0d0)) 0 nil)) ;;; Compute bounds for (expt x y). This should be easy since (expt x