X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Firrat.lisp;h=f2947a7e0be502925d77addc8ce319a6c7fbe75e;hb=01044af1b8d69fc3899dc0417064c1512223223d;hp=c22fd9311fee9f5244896123f33ead151bacab85;hpb=223e5d1767a058283731879358279385d871ec50;p=sbcl.git diff --git a/src/code/irrat.lisp b/src/code/irrat.lisp index c22fd93..f2947a7 100644 --- a/src/code/irrat.lisp +++ b/src/code/irrat.lisp @@ -637,7 +637,9 @@ ;;; they're effectively implemented as special variable references, ;;; and the code below which uses them might be unnecessarily ;;; inefficient. Perhaps some sort of MAKE-LOAD-TIME-VALUE hackery -;;; should be used instead? +;;; should be used instead? (KLUDGED 2004-03-08 CSR, by replacing the +;;; special variable references with (probably equally slow) +;;; constructors) (declaim (inline square)) (defun square (x) @@ -681,7 +683,8 @@ (cond ((float-nan-p x) x) ((float-infinity-p x) - sb!ext:double-float-positive-infinity) + ;; DOUBLE-FLOAT-POSITIVE-INFINITY + (double-from-bits 0 (1+ sb!vm:double-float-normal-exponent-max) 0)) ((zerop x) ;; The answer is negative infinity, but we are supposed to ;; signal divide-by-zero, so do the actual division @@ -727,7 +730,10 @@ (float-infinity-p rho)) (or (float-infinity-p (abs x)) (float-infinity-p (abs y)))) - (values sb!ext:double-float-positive-infinity 0)) + ;; DOUBLE-FLOAT-POSITIVE-INFINITY + (values + (double-from-bits 0 (1+ sb!vm:double-float-normal-exponent-max) 0) + 0)) ((let ((threshold #.(/ least-positive-double-float double-float-epsilon)) (traps (ldb sb!vm::float-sticky-bits