File tree Expand file tree Collapse file tree 1 file changed +7
-6
lines changed Expand file tree Collapse file tree 1 file changed +7
-6
lines changed Original file line number Diff line number Diff line change 124124 (bf mbits expmin)]
125125 [else ; normal number
126126 (define c (+ (expt 2 msize) mbits))
127- (define exp (sub1 (+ ebits expmin) ))
127+ (define exp (+ (sub1 ebits) expmin))
128128 (bf c exp)])])))
129129
130130(define (mpfr->ordinal x es sig)
135135 [(bfnan? x) (add1 (infinite-ordinal es sig))]
136136 [(bfinfinite? x) (infinite-ordinal es sig)]
137137 [else
138- (define-values (c exp* ) (bigfloat->sig+exp x))
139- (define exp (+ exp* (bigfloat-precision x)))
138+ (define-values (c exp) (bigfloat->sig+exp x))
139+ (define e (+ exp (bigfloat-precision x) -1 ))
140140 (define expmin (sub1 (mpfr-get-emin)))
141+ (define emin (+ expmin sig -1 ))
141142 (cond
142- [(< exp expmin ) ; subnormal
143- (define shift (- expmin exp))
144- (arithmetic-shift c (- shift) )]
143+ [(< e emin ) ; subnormal
144+ (define shift (- exp expmin ))
145+ (arithmetic-shift c shift)]
145146 [else ; normal
146147 (define ebits (add1 (- exp expmin)))
147148 (define mbits (bitwise-and c (sub1 (expt 2 (sub1 sig)))))
You can’t perform that action at this time.
0 commit comments