Filters for comparisons with inifinity.
This commit is contained in:
parent
12aaa229a3
commit
034d7245a4
209
collects/tests/typed-racket/optimizer/tests/dead-inf-comp.rkt
Normal file
209
collects/tests/typed-racket/optimizer/tests/dead-inf-comp.rkt
Normal file
|
@ -0,0 +1,209 @@
|
||||||
|
#;
|
||||||
|
(
|
||||||
|
TR opt: dead-inf-comp.rkt 105:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 107:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 110:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 114:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 118:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 120:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 123:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 127:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 131:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 133:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 136:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 140:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 144:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 146:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 149:4 (quote dead) -- dead then branch
|
||||||
|
TR opt: dead-inf-comp.rkt 153:4 (quote dead) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 158:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 156:4 (< rat +inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 160:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 159:4 (< +inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 163:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 162:4 (< rat -inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 167:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 165:4 (< -inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 171:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 169:4 (> +inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 173:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 172:4 (> rat +inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 176:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 175:4 (> -inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 180:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 178:4 (> rat -inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 184:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 182:4 (<= rat +inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 186:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 185:4 (<= +inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 189:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 188:4 (<= rat -inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 193:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 191:4 (<= -inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 197:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 195:4 (>= +inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 199:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 198:4 (>= rat +inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 202:4 (quote dead) -- dead then branch
|
||||||
|
TR info: dead-inf-comp.rkt 201:4 (>= -inf.f rat) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 206:4 (quote dead) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 204:4 (>= rat -inf.f) -- exact real arith
|
||||||
|
TR opt: dead-inf-comp.rkt 99:0 #%module-begin -- in-range
|
||||||
|
TR opt: dead-inf-comp.rkt 99:0 #%module-begin -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 99:0 #%module-begin -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 99:0 #%module-begin -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 209:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 209:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 209:41 displayln -- hidden parameter
|
||||||
|
TR opt: dead-inf-comp.rkt 209:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 209:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
|
||||||
|
TR opt: dead-inf-comp.rkt 209:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
|
||||||
|
TR info: dead-inf-comp.rkt 209:41 displayln -- hidden parameter
|
||||||
|
TR opt: dead-inf-comp.rkt 209:0 (for: ((i (in-range 5 +inf.0 2)) (j 3)) (displayln i)) -- dead else branch
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
'live
|
||||||
|
5
|
||||||
|
7
|
||||||
|
9
|
||||||
|
)
|
||||||
|
#lang typed/racket/base
|
||||||
|
|
||||||
|
(define: rat : Exact-Rational 2/3)
|
||||||
|
|
||||||
|
(if (< rat +inf.0)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (< +inf.0 rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (< rat -inf.0)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (< -inf.0 rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
(if (> +inf.0 rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (> rat +inf.0)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (> -inf.0 rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (> rat -inf.0)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
(if (<= rat +inf.0)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (<= +inf.0 rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (<= rat -inf.0)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (<= -inf.0 rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
(if (>= +inf.0 rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (>= rat +inf.0)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (>= -inf.0 rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (>= rat -inf.0)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
;; single flonums
|
||||||
|
(if (< rat +inf.f)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (< +inf.f rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (< rat -inf.f)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (< -inf.f rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
(if (> +inf.f rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (> rat +inf.f)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (> -inf.f rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (> rat -inf.f)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
(if (<= rat +inf.f)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (<= +inf.f rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (<= rat -inf.f)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (<= -inf.f rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
(if (>= +inf.f rat)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
(if (>= rat +inf.f)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (>= -inf.f rat)
|
||||||
|
'dead
|
||||||
|
'live)
|
||||||
|
(if (>= rat -inf.f)
|
||||||
|
'live
|
||||||
|
'dead)
|
||||||
|
|
||||||
|
|
||||||
|
(for: ([i (in-range 5 +inf.0 2)] [j 3]) (displayln i))
|
|
@ -838,6 +838,14 @@
|
||||||
(-> -NegRat -Fixnum B : (-FS -top (-filter -NegFixnum 1)))
|
(-> -NegRat -Fixnum B : (-FS -top (-filter -NegFixnum 1)))
|
||||||
(-> -NonPosInt -Fixnum B : (-FS -top (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1))))
|
(-> -NonPosInt -Fixnum B : (-FS -top (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1))))
|
||||||
(-> -NonPosRat -Fixnum B : (-FS -top (-filter -NonPosFixnum 1)))
|
(-> -NonPosRat -Fixnum B : (-FS -top (-filter -NonPosFixnum 1)))
|
||||||
|
(-> -Rat (-val +inf.0) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> (-val +inf.0) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.0) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.0) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> -Rat (-val +inf.f) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> (-val +inf.f) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.f) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.f) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
;; If applying filters resulted in the interesection of the filter and the
|
;; If applying filters resulted in the interesection of the filter and the
|
||||||
;; original type, we'd only need the cases for Fixnums and those for Reals.
|
;; original type, we'd only need the cases for Fixnums and those for Reals.
|
||||||
;; Cases for Integers and co would fall out naturally from the Real cases,
|
;; Cases for Integers and co would fall out naturally from the Real cases,
|
||||||
|
@ -895,6 +903,14 @@
|
||||||
(-> -Fixnum -NegRat B : (-FS -top (-filter -NegFixnum 0)))
|
(-> -Fixnum -NegRat B : (-FS -top (-filter -NegFixnum 0)))
|
||||||
(-> -Fixnum -NonPosInt B : (-FS -top (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1))))
|
(-> -Fixnum -NonPosInt B : (-FS -top (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1))))
|
||||||
(-> -Fixnum -NonPosRat B : (-FS -top (-filter -NonPosFixnum 0)))
|
(-> -Fixnum -NonPosRat B : (-FS -top (-filter -NonPosFixnum 0)))
|
||||||
|
(-> (-val +inf.0) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> -Rat (-val +inf.0) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.0) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.0) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> (-val +inf.f) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> -Rat (-val +inf.f) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.f) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.f) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
(>-type-pattern -Int -PosInt -Nat -NegInt -NonPosInt -Zero)
|
(>-type-pattern -Int -PosInt -Nat -NegInt -NonPosInt -Zero)
|
||||||
(>-type-pattern -Rat -PosRat -NonNegRat -NegRat -NonPosRat -Zero)
|
(>-type-pattern -Rat -PosRat -NonNegRat -NegRat -NonPosRat -Zero)
|
||||||
(>-type-pattern -Flonum -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum)
|
(>-type-pattern -Flonum -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum)
|
||||||
|
@ -948,6 +964,14 @@
|
||||||
(-> -Fixnum -NegReal B : (-FS (-filter -NegFixnum 0) -top))
|
(-> -Fixnum -NegReal B : (-FS (-filter -NegFixnum 0) -top))
|
||||||
(-> -Fixnum -NonPosInt B : (-FS (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1)) -top))
|
(-> -Fixnum -NonPosInt B : (-FS (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1)) -top))
|
||||||
(-> -Fixnum -NonPosReal B : (-FS (-filter -NonPosFixnum 0) -top))
|
(-> -Fixnum -NonPosReal B : (-FS (-filter -NonPosFixnum 0) -top))
|
||||||
|
(-> -Rat (-val +inf.0) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> (-val +inf.0) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.0) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.0) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> -Rat (-val +inf.f) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> (-val +inf.f) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.f) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.f) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
(<=-type-pattern -Int -PosInt -Nat -NegInt -NonPosInt -Zero)
|
(<=-type-pattern -Int -PosInt -Nat -NegInt -NonPosInt -Zero)
|
||||||
(<=-type-pattern -Rat -PosRat -NonNegRat -NegRat -NonPosRat -Zero)
|
(<=-type-pattern -Rat -PosRat -NonNegRat -NegRat -NonPosRat -Zero)
|
||||||
(<=-type-pattern -Flonum -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum)
|
(<=-type-pattern -Flonum -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum)
|
||||||
|
@ -1001,6 +1025,14 @@
|
||||||
(-> -NegReal -Fixnum B : (-FS (-filter -NegFixnum 1) -top))
|
(-> -NegReal -Fixnum B : (-FS (-filter -NegFixnum 1) -top))
|
||||||
(-> -NonPosInt -Fixnum B : (-FS (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1)) -top))
|
(-> -NonPosInt -Fixnum B : (-FS (-and (-filter -NonPosFixnum 0) (-filter -NonPosFixnum 1)) -top))
|
||||||
(-> -NonPosReal -Fixnum B : (-FS (-filter -NonPosFixnum 1) -top))
|
(-> -NonPosReal -Fixnum B : (-FS (-filter -NonPosFixnum 1) -top))
|
||||||
|
(-> (-val +inf.0) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> -Rat (-val +inf.0) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.0) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.0) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> (-val +inf.f) -Rat B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
|
(-> -Rat (-val +inf.f) B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> (-val -inf.f) -Rat B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
|
(-> -Rat (-val -inf.f) B : (-FS -top (-filter (Un) 0))) ; guaranteed
|
||||||
(>=-type-pattern -Int -PosInt -Nat -NegInt -NonPosInt -Zero)
|
(>=-type-pattern -Int -PosInt -Nat -NegInt -NonPosInt -Zero)
|
||||||
(>=-type-pattern -Rat -PosRat -NonNegRat -NegRat -NonPosRat -Zero)
|
(>=-type-pattern -Rat -PosRat -NonNegRat -NegRat -NonPosRat -Zero)
|
||||||
(>=-type-pattern -Flonum -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum)
|
(>=-type-pattern -Flonum -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum)
|
||||||
|
|
|
@ -51,12 +51,16 @@
|
||||||
[(~var i (3d (lambda (x) (eqv? x 0.0)))) -FlonumPosZero]
|
[(~var i (3d (lambda (x) (eqv? x 0.0)))) -FlonumPosZero]
|
||||||
[(~var i (3d (lambda (x) (eqv? x -0.0)))) -FlonumNegZero]
|
[(~var i (3d (lambda (x) (eqv? x -0.0)))) -FlonumNegZero]
|
||||||
[(~var i (3d (lambda (x) (eqv? x +nan.0)))) -FlonumNan]
|
[(~var i (3d (lambda (x) (eqv? x +nan.0)))) -FlonumNan]
|
||||||
|
[(~var i (3d (lambda (x) (eqv? x +inf.0)))) (-val +inf.0)]
|
||||||
|
[(~var i (3d (lambda (x) (eqv? x -inf.0)))) (-val -inf.0)]
|
||||||
[(~var i (3d (conjoin flonum? positive?))) -PosFlonum]
|
[(~var i (3d (conjoin flonum? positive?))) -PosFlonum]
|
||||||
[(~var i (3d (conjoin flonum? negative?))) -NegFlonum]
|
[(~var i (3d (conjoin flonum? negative?))) -NegFlonum]
|
||||||
[(~var i (3d flonum?)) -Flonum] ; for nan
|
[(~var i (3d flonum?)) -Flonum] ; for nan
|
||||||
[(~var i (3d (lambda (x) (eqv? x 0.0f0)))) -SingleFlonumPosZero]
|
[(~var i (3d (lambda (x) (eqv? x 0.0f0)))) -SingleFlonumPosZero]
|
||||||
[(~var i (3d (lambda (x) (eqv? x -0.0f0)))) -SingleFlonumNegZero]
|
[(~var i (3d (lambda (x) (eqv? x -0.0f0)))) -SingleFlonumNegZero]
|
||||||
[(~var i (3d (lambda (x) (eqv? x +nan.f)))) -SingleFlonumNan]
|
[(~var i (3d (lambda (x) (eqv? x +nan.f)))) -SingleFlonumNan]
|
||||||
|
[(~var i (3d (lambda (x) (eqv? x +inf.f)))) (-val +inf.f)]
|
||||||
|
[(~var i (3d (lambda (x) (eqv? x -inf.f)))) (-val -inf.f)]
|
||||||
[(~var i (3d (conjoin single-flonum? positive?))) -PosSingleFlonum]
|
[(~var i (3d (conjoin single-flonum? positive?))) -PosSingleFlonum]
|
||||||
[(~var i (3d (conjoin single-flonum? negative?))) -NegSingleFlonum]
|
[(~var i (3d (conjoin single-flonum? negative?))) -NegSingleFlonum]
|
||||||
[(~var i (3d single-flonum?)) -SingleFlonum] ; for nan
|
[(~var i (3d single-flonum?)) -SingleFlonum] ; for nan
|
||||||
|
|
Loading…
Reference in New Issue
Block a user