Add typed for missing finum/flonum conversions.

original commit: e71fa0be88d09221ef0d939a36a30bcdfd1249bd
This commit is contained in:
Vincent St-Amour 2012-02-18 23:38:32 -05:00
parent 26311cc2ac
commit 2c4fc39937

View File

@ -572,6 +572,15 @@
(-NegInt . -> . -NegFlonum)
(-NonPosInt . -> . -NonPosFlonum)
(-Int . -> . -Flonum))))
(define fl->fx-type
(lambda ()
(from-cases
(-FlonumZero . -> . -Zero)
(-PosFlonum . -> . -PosFixnum)
(-NegFlonum . -> . -NegFixnum)
(-NonNegFlonum . -> . -NonNegFixnum)
(-NonPosFlonum . -> . -NonPosFixnum)
(-Flonum . -> . -Fixnum))))
(define make-flrectangular-type (lambda () (-Flonum -Flonum . -> . -FloatComplex)))
(define flreal-part-type (lambda () (-FloatComplex . -> . -Flonum)))
(define flimag-part-type (lambda () (-FloatComplex . -> . -Flonum)))
@ -1870,6 +1879,8 @@
[flexp (flexp-type)]
[flsqrt (flsqrt-type)]
[->fl (fx->fl-type)]
[fx->fl (fx->fl-type)]
[fl->fx (fl->fx-type)]
[make-flrectangular (make-flrectangular-type)]
[flreal-part (flreal-part-type)]
[flimag-part (flimag-part-type)]
@ -1907,6 +1918,7 @@
;
[unsafe-flsqrt (flsqrt-type)]
[unsafe-fx->fl (fx->fl-type)]
[unsafe-fl->fx (fl->fx-type)]
[unsafe-make-flrectangular (make-flrectangular-type)]
[unsafe-flreal-part (flreal-part-type)]
[unsafe-flimag-part (flimag-part-type)]