(else (slow-method n d))))
(define (int:->inexact n)
- (if (fixnum? n)
- (fixnum->flonum n) ;; 8.0 compiler open-codes when is N fixnum (by test)
- (integer->flonum n #b10)))
+ (cond ((fixnum? n) (fixnum->flonum n))
+ ((integer->flonum n #b00))
+ (else (if (int:negative? n) (flo:-inf.0) (flo:+inf.0)))))
\f
(define (flo:significand-digits radix)
(cond ((int:= radix 10)
(,(- (+ 3 (expt flo:radix flo:precision)))
,(- (+ 4 (expt flo:radix. flo:precision))))
(,(expt flo:radix (+ 1 flo:normal-exponent-max))
- +inf.0
- ,expect-error)
+ +inf.0)
(,(expt flo:radix (* 2 flo:normal-exponent-max))
- +inf.0
- ,expect-error)
+ +inf.0)
(,(- (expt flo:radix (+ 1 flo:normal-exponent-max)))
-inf.0)
(,(- (expt flo:radix (* 2 flo:normal-exponent-max)))
- -inf.0
- ,expect-error)
+ -inf.0)
(,(- (expt flo:radix (+ 1 flo:normal-exponent-max))
(expt flo:radix (- (+ 1 flo:normal-exponent-max) flo:precision)))
,flo:largest-positive-normal)