Delay evaluation of numeric base env types.
This commit is contained in:
parent
f3d22879a2
commit
70aaf6bf24
|
@ -78,6 +78,7 @@
|
||||||
|
|
||||||
|
|
||||||
(define round-type ; also used for truncate
|
(define round-type ; also used for truncate
|
||||||
|
(lambda ()
|
||||||
(from-cases
|
(from-cases
|
||||||
(map unop all-int-types)
|
(map unop all-int-types)
|
||||||
(-> -NonNegRat -Nat)
|
(-> -NonNegRat -Nat)
|
||||||
|
@ -89,12 +90,13 @@
|
||||||
-NonNegSingleFlonum -NonPosSingleFlonum -SingleFlonum
|
-NonNegSingleFlonum -NonPosSingleFlonum -SingleFlonum
|
||||||
-InexactRealPosZero -InexactRealNegZero -InexactRealZero
|
-InexactRealPosZero -InexactRealNegZero -InexactRealZero
|
||||||
-NonNegInexactReal -NonPosInexactReal -InexactReal
|
-NonNegInexactReal -NonPosInexactReal -InexactReal
|
||||||
-RealZero -NonNegReal -NonPosReal -Real))))
|
-RealZero -NonNegReal -NonPosReal -Real)))))
|
||||||
|
|
||||||
(define fl-unop (unop -Flonum))
|
(define fl-unop (lambda () (unop -Flonum)))
|
||||||
|
|
||||||
;; types for specific operations, to avoid repetition between safe and unsafe versions
|
;; types for specific operations, to avoid repetition between safe and unsafe versions
|
||||||
(define fx+-type
|
(define fx+-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(binop -Zero)
|
(binop -Zero)
|
||||||
(map (lambda (t) (commutative-binop t -Zero t))
|
(map (lambda (t) (commutative-binop t -Zero t))
|
||||||
|
@ -107,8 +109,9 @@
|
||||||
(commutative-binop -NegInt -One -NonPosFixnum)
|
(commutative-binop -NegInt -One -NonPosFixnum)
|
||||||
(commutative-binop -NegInt -NonPosInt -NegFixnum)
|
(commutative-binop -NegInt -NonPosInt -NegFixnum)
|
||||||
(-NonPosInt -NonPosInt . -> . -NonPosFixnum)
|
(-NonPosInt -NonPosInt . -> . -NonPosFixnum)
|
||||||
(-Int -Int . -> . -Fixnum)))
|
(-Int -Int . -> . -Fixnum))))
|
||||||
(define fx--type
|
(define fx--type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(binop -Zero)
|
(binop -Zero)
|
||||||
(map (lambda (t) (commutative-binop t -Zero t))
|
(map (lambda (t) (commutative-binop t -Zero t))
|
||||||
|
@ -123,8 +126,9 @@
|
||||||
(-PosInt -NonPosInt . -> . -PosInt)
|
(-PosInt -NonPosInt . -> . -PosInt)
|
||||||
(-Nat -NegInt . -> . -PosInt)
|
(-Nat -NegInt . -> . -PosInt)
|
||||||
(-Nat -NonPosInt . -> . -Nat)
|
(-Nat -NonPosInt . -> . -Nat)
|
||||||
(-Int -Int . -> . -Fixnum)))
|
(-Int -Int . -> . -Fixnum))))
|
||||||
(define fx*-type
|
(define fx*-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(map binop (list -Zero -One))
|
(map binop (list -Zero -One))
|
||||||
(commutative-binop -Zero -Int)
|
(commutative-binop -Zero -Int)
|
||||||
|
@ -136,8 +140,9 @@
|
||||||
(-Nat -Nat . -> . -NonNegFixnum)
|
(-Nat -Nat . -> . -NonNegFixnum)
|
||||||
(commutative-binop -Nat -NonPosInt -NonPosFixnum)
|
(commutative-binop -Nat -NonPosInt -NonPosFixnum)
|
||||||
(-NonPosFixnum -NonPosFixnum . -> . -NonNegFixnum)
|
(-NonPosFixnum -NonPosFixnum . -> . -NonNegFixnum)
|
||||||
(-Int -Int . -> . -Fixnum)))
|
(-Int -Int . -> . -Fixnum))))
|
||||||
(define fxquotient-type
|
(define fxquotient-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-Zero -Int . -> . -Zero)
|
(-Zero -Int . -> . -Zero)
|
||||||
(map (lambda (t) (-> t -One t)) ; division by one is identity
|
(map (lambda (t) (-> t -One t)) ; division by one is identity
|
||||||
|
@ -148,8 +153,9 @@
|
||||||
(-Nat -Nat . -> . -NonNegFixnum)
|
(-Nat -Nat . -> . -NonNegFixnum)
|
||||||
(commutative-binop -Nat -NonPosInt -NonPosFixnum)
|
(commutative-binop -Nat -NonPosInt -NonPosFixnum)
|
||||||
(-NonPosInt -NonPosInt . -> . -NonNegFixnum)
|
(-NonPosInt -NonPosInt . -> . -NonNegFixnum)
|
||||||
(-Int -Int . -> . -Fixnum)))
|
(-Int -Int . -> . -Fixnum))))
|
||||||
(define fxremainder-type ; result has same sign as first arg
|
(define fxremainder-type ; result has same sign as first arg
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-One -One . -> . -Zero)
|
(-One -One . -> . -Zero)
|
||||||
(map (lambda (t) (list (-> -Nat t t)
|
(map (lambda (t) (list (-> -Nat t t)
|
||||||
|
@ -157,8 +163,9 @@
|
||||||
(list -Byte -Index))
|
(list -Byte -Index))
|
||||||
(-Nat -Int . -> . -NonNegFixnum)
|
(-Nat -Int . -> . -NonNegFixnum)
|
||||||
(-NonPosInt -Int . -> . -NonPosFixnum)
|
(-NonPosInt -Int . -> . -NonPosFixnum)
|
||||||
(-Int -Int . -> . -Fixnum)))
|
(-Int -Int . -> . -Fixnum))))
|
||||||
(define fxmodulo-type ; result has same sign as second arg
|
(define fxmodulo-type ; result has same sign as second arg
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-One -One . -> . -Zero)
|
(-One -One . -> . -Zero)
|
||||||
(map (lambda (t) (list (-> -Int t t)
|
(map (lambda (t) (list (-> -Int t t)
|
||||||
|
@ -166,13 +173,15 @@
|
||||||
(list -Byte -Index))
|
(list -Byte -Index))
|
||||||
(-Int -Nat . -> . -NonNegFixnum)
|
(-Int -Nat . -> . -NonNegFixnum)
|
||||||
(-Int -NonPosInt . -> . -NonPosFixnum)
|
(-Int -NonPosInt . -> . -NonPosFixnum)
|
||||||
(-Int -Int . -> . -Fixnum)))
|
(-Int -Int . -> . -Fixnum))))
|
||||||
(define fxabs-type
|
(define fxabs-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(map unop (list -Zero -One -PosByte -Byte -PosIndex -Index))
|
(map unop (list -Zero -One -PosByte -Byte -PosIndex -Index))
|
||||||
((Un -PosInt -NegInt) . -> . -PosFixnum)
|
((Un -PosInt -NegInt) . -> . -PosFixnum)
|
||||||
(-Int . -> . -NonNegFixnum)))
|
(-Int . -> . -NonNegFixnum))))
|
||||||
(define fx=-type
|
(define fx=-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
;; we could rule out cases like (= Pos Neg), but we currently don't
|
;; we could rule out cases like (= Pos Neg), but we currently don't
|
||||||
(map (lambda (l) (apply exclude-zero l))
|
(map (lambda (l) (apply exclude-zero l))
|
||||||
|
@ -183,8 +192,9 @@
|
||||||
(list -Int (Un -PosFixnum -NegFixnum))))
|
(list -Int (Un -PosFixnum -NegFixnum))))
|
||||||
(map (lambda (t) (commutative-equality/filter -Int t))
|
(map (lambda (t) (commutative-equality/filter -Int t))
|
||||||
(list -One -PosByte -Byte -PosIndex -Index -PosFixnum -NonNegFixnum -NegFixnum -NonPosFixnum))
|
(list -One -PosByte -Byte -PosIndex -Index -PosFixnum -NonNegFixnum -NegFixnum -NonPosFixnum))
|
||||||
(comp -Int)))
|
(comp -Int))))
|
||||||
(define fx<-type
|
(define fx<-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-> -Pos -One B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
(-> -Pos -One B : (-FS (-filter (Un) 0) -top)) ; can't happen
|
||||||
(-> -Nat -One B : (-FS (-filter -Zero 0) -top))
|
(-> -Nat -One B : (-FS (-filter -Zero 0) -top))
|
||||||
|
@ -219,8 +229,9 @@
|
||||||
(-> -Int -NonPosInt B : (-FS (-filter -NegFixnum 0) -top))
|
(-> -Int -NonPosInt B : (-FS (-filter -NegFixnum 0) -top))
|
||||||
(-> -NegInt -Int B : (-FS -top (-filter -NegFixnum 1)))
|
(-> -NegInt -Int B : (-FS -top (-filter -NegFixnum 1)))
|
||||||
(-> -NonPosInt -Int B : (-FS -top (-filter -NonPosFixnum 1)))
|
(-> -NonPosInt -Int B : (-FS -top (-filter -NonPosFixnum 1)))
|
||||||
(comp -Int)))
|
(comp -Int))))
|
||||||
(define fx>-type
|
(define fx>-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-> -One -Pos B : (-FS (-filter (Un) 1) -top)) ; can't happen
|
(-> -One -Pos B : (-FS (-filter (Un) 1) -top)) ; can't happen
|
||||||
(-> -One -Nat B : (-FS (-filter -Zero 1) -top))
|
(-> -One -Nat B : (-FS (-filter -Zero 1) -top))
|
||||||
|
@ -252,8 +263,9 @@
|
||||||
(-> -NonPosInt -Int B : (-FS (-filter -NegFixnum 1) -top))
|
(-> -NonPosInt -Int B : (-FS (-filter -NegFixnum 1) -top))
|
||||||
(-> -Int -NegInt B : (-FS -top (-filter -NegFixnum 0)))
|
(-> -Int -NegInt B : (-FS -top (-filter -NegFixnum 0)))
|
||||||
(-> -Int -NonPosInt B : (-FS -top (-filter -NonPosFixnum 0)))
|
(-> -Int -NonPosInt B : (-FS -top (-filter -NonPosFixnum 0)))
|
||||||
(comp -Int)))
|
(comp -Int))))
|
||||||
(define fx<=-type
|
(define fx<=-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-> -Pos -One B : (-FS (-filter -One 0) -top))
|
(-> -Pos -One B : (-FS (-filter -One 0) -top))
|
||||||
(-> -Byte -Zero B : (-FS (-filter -Zero 0) (-filter -PosByte 0)))
|
(-> -Byte -Zero B : (-FS (-filter -Zero 0) (-filter -PosByte 0)))
|
||||||
|
@ -285,8 +297,9 @@
|
||||||
(-> -Int -NegInt B : (-FS (-filter -NegFixnum 0) -top))
|
(-> -Int -NegInt B : (-FS (-filter -NegFixnum 0) -top))
|
||||||
(-> -Int -NonPosInt B : (-FS (-filter -NonPosFixnum 0) -top))
|
(-> -Int -NonPosInt B : (-FS (-filter -NonPosFixnum 0) -top))
|
||||||
(-> -NonPosInt -Int B : (-FS -top (-filter -NegFixnum 1)))
|
(-> -NonPosInt -Int B : (-FS -top (-filter -NegFixnum 1)))
|
||||||
(comp -Int)))
|
(comp -Int))))
|
||||||
(define fx>=-type
|
(define fx>=-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-> -One -Pos B : (-FS (-filter -One 1) -top))
|
(-> -One -Pos B : (-FS (-filter -One 1) -top))
|
||||||
(-> -Zero -Byte B : (-FS (-filter -Zero 1) (-filter -PosByte 1)))
|
(-> -Zero -Byte B : (-FS (-filter -Zero 1) (-filter -PosByte 1)))
|
||||||
|
@ -318,8 +331,9 @@
|
||||||
(-> -NegInt -Int B : (-FS (-filter -NegFixnum 1) -top))
|
(-> -NegInt -Int B : (-FS (-filter -NegFixnum 1) -top))
|
||||||
(-> -NonPosInt -Int B : (-FS (-filter -NonPosFixnum 1) -top))
|
(-> -NonPosInt -Int B : (-FS (-filter -NonPosFixnum 1) -top))
|
||||||
(-> -Int -NonPosInt B : (-FS -top (-filter -NegFixnum 0)))
|
(-> -Int -NonPosInt B : (-FS -top (-filter -NegFixnum 0)))
|
||||||
(comp -Int)))
|
(comp -Int))))
|
||||||
(define fxmin-type
|
(define fxmin-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(binop -Zero)
|
(binop -Zero)
|
||||||
(binop -One)
|
(binop -One)
|
||||||
|
@ -332,8 +346,9 @@
|
||||||
(-> -Nat -Nat -NonNegFixnum)
|
(-> -Nat -Nat -NonNegFixnum)
|
||||||
(commutative-binop -NegInt -Int -NegFixnum)
|
(commutative-binop -NegInt -Int -NegFixnum)
|
||||||
(commutative-binop -NonPosInt -Int -NonPosInt)
|
(commutative-binop -NonPosInt -Int -NonPosInt)
|
||||||
(-> -Int -Int -Fixnum)))
|
(-> -Int -Int -Fixnum))))
|
||||||
(define fxmax-type
|
(define fxmax-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(binop -Zero)
|
(binop -Zero)
|
||||||
(commutative-binop -One (Un -Zero -One) -One)
|
(commutative-binop -One (Un -Zero -One) -One)
|
||||||
|
@ -343,8 +358,9 @@
|
||||||
(map binop (list -Index -NegFixnum -NonPosFixnum))
|
(map binop (list -Index -NegFixnum -NonPosFixnum))
|
||||||
(commutative-binop -PosInt -Int -PosFixnum)
|
(commutative-binop -PosInt -Int -PosFixnum)
|
||||||
(commutative-binop -Nat -Int -NonNegFixnum)
|
(commutative-binop -Nat -Int -NonNegFixnum)
|
||||||
(-> -Int -Int -Fixnum)))
|
(-> -Int -Int -Fixnum))))
|
||||||
(define fxand-type
|
(define fxand-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(commutative-binop -Zero -Int -Zero)
|
(commutative-binop -Zero -Int -Zero)
|
||||||
(commutative-binop -Byte -Int -Byte)
|
(commutative-binop -Byte -Int -Byte)
|
||||||
|
@ -352,8 +368,9 @@
|
||||||
(binop -Nat -NonNegFixnum)
|
(binop -Nat -NonNegFixnum)
|
||||||
(binop -NegInt -NegFixnum)
|
(binop -NegInt -NegFixnum)
|
||||||
(binop -NonPosInt -NonPosFixnum)
|
(binop -NonPosInt -NonPosFixnum)
|
||||||
(binop -Int -Fixnum)))
|
(binop -Int -Fixnum))))
|
||||||
(define fxior-type
|
(define fxior-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(binop -Zero)
|
(binop -Zero)
|
||||||
(commutative-binop -One -Zero -One)
|
(commutative-binop -One -Zero -One)
|
||||||
|
@ -364,8 +381,9 @@
|
||||||
(commutative-binop -PosInt -Nat -PosFixnum)
|
(commutative-binop -PosInt -Nat -PosFixnum)
|
||||||
(binop -Nat -NonNegFixnum)
|
(binop -Nat -NonNegFixnum)
|
||||||
(commutative-binop -NegInt -Int -NegFixnum) ; as long as there's one negative, the result is negative
|
(commutative-binop -NegInt -Int -NegFixnum) ; as long as there's one negative, the result is negative
|
||||||
(binop -Int -Fixnum)))
|
(binop -Int -Fixnum))))
|
||||||
(define fxxor-type
|
(define fxxor-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(binop -Zero)
|
(binop -Zero)
|
||||||
(binop -One -Zero)
|
(binop -One -Zero)
|
||||||
|
@ -375,13 +393,15 @@
|
||||||
(binop -NonPosInt -NonNegFixnum)
|
(binop -NonPosInt -NonNegFixnum)
|
||||||
(commutative-binop -NegInt -Nat -NegFixnum)
|
(commutative-binop -NegInt -Nat -NegFixnum)
|
||||||
(commutative-binop -NonPosInt -Nat -NonPosFixnum)
|
(commutative-binop -NonPosInt -Nat -NonPosFixnum)
|
||||||
(binop -Int -Fixnum)))
|
(binop -Int -Fixnum))))
|
||||||
(define fxnot-type
|
(define fxnot-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(-Nat . -> . -NegFixnum)
|
(-Nat . -> . -NegFixnum)
|
||||||
(-NegInt . -> . -NonNegFixnum)
|
(-NegInt . -> . -NonNegFixnum)
|
||||||
(-Int . -> . -Fixnum)))
|
(-Int . -> . -Fixnum))))
|
||||||
(define fxlshift-type
|
(define fxlshift-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(map (lambda (x) (-> x -Zero x))
|
(map (lambda (x) (-> x -Zero x))
|
||||||
(list -Zero -One -PosByte -Byte -PosIndex -Index))
|
(list -Zero -One -PosByte -Byte -PosIndex -Index))
|
||||||
|
@ -389,32 +409,38 @@
|
||||||
(-> -Nat -Int -NonNegFixnum)
|
(-> -Nat -Int -NonNegFixnum)
|
||||||
(-> -NegInt -Int -NegFixnum)
|
(-> -NegInt -Int -NegFixnum)
|
||||||
(-> -NonPosInt -Int -NonPosFixnum)
|
(-> -NonPosInt -Int -NonPosFixnum)
|
||||||
(binop -Int -Fixnum)))
|
(binop -Int -Fixnum))))
|
||||||
(define fxrshift-type
|
(define fxrshift-type
|
||||||
|
(lambda ()
|
||||||
(fx-from-cases
|
(fx-from-cases
|
||||||
(map (lambda (x) (-> x -Zero x))
|
(map (lambda (x) (-> x -Zero x))
|
||||||
(list -Zero -One -PosByte -Byte -PosIndex -Index))
|
(list -Zero -One -PosByte -Byte -PosIndex -Index))
|
||||||
(-> -Nat -Int -NonNegFixnum) ; can reach 0
|
(-> -Nat -Int -NonNegFixnum) ; can reach 0
|
||||||
(-> -NegInt -Int -NegFixnum) ; can't reach 0
|
(-> -NegInt -Int -NegFixnum) ; can't reach 0
|
||||||
(-> -NonPosInt -Int -NonPosFixnum)
|
(-> -NonPosInt -Int -NonPosFixnum)
|
||||||
(binop -Int -Fixnum)))
|
(binop -Int -Fixnum))))
|
||||||
|
|
||||||
|
|
||||||
(define flabs-type (cl->* (-> (Un -PosFlonum -NegFlonum) -PosFlonum)
|
(define flabs-type
|
||||||
(-> -Flonum -NonNegFlonum)))
|
(lambda ()
|
||||||
|
(cl->* (-> (Un -PosFlonum -NegFlonum) -PosFlonum)
|
||||||
|
(-> -Flonum -NonNegFlonum))))
|
||||||
(define fl+-type
|
(define fl+-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map (lambda (t) (commutative-binop t -FlonumZero t))
|
(from-cases (map (lambda (t) (commutative-binop t -FlonumZero t))
|
||||||
all-flonum-types)
|
all-flonum-types)
|
||||||
(commutative-binop -NonNegFlonum -PosFlonum -PosFlonum)
|
(commutative-binop -NonNegFlonum -PosFlonum -PosFlonum)
|
||||||
(map binop (list -NonNegFlonum -NegFlonum -NonPosFlonum -Flonum))
|
(map binop (list -NonNegFlonum -NegFlonum -NonPosFlonum -Flonum))
|
||||||
(-Flonum -Flonum . -> . -Flonum)))
|
(-Flonum -Flonum . -> . -Flonum))))
|
||||||
(define fl--type
|
(define fl--type
|
||||||
|
(lambda ()
|
||||||
(from-cases (binop -FlonumZero)
|
(from-cases (binop -FlonumZero)
|
||||||
(-NegFlonum (Un -NonNegFlonum -FlonumZero) . -> . -NegFlonum)
|
(-NegFlonum (Un -NonNegFlonum -FlonumZero) . -> . -NegFlonum)
|
||||||
((Un -NonPosFlonum -FlonumZero) -PosFlonum . -> . -NegFlonum)
|
((Un -NonPosFlonum -FlonumZero) -PosFlonum . -> . -NegFlonum)
|
||||||
(-NonPosFlonum -NonNegFlonum . -> . -NonPosFlonum)
|
(-NonPosFlonum -NonNegFlonum . -> . -NonPosFlonum)
|
||||||
(binop -Flonum)))
|
(binop -Flonum))))
|
||||||
(define fl*-type
|
(define fl*-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map binop (list -FlonumPosZero -FlonumNegZero))
|
(from-cases (map binop (list -FlonumPosZero -FlonumNegZero))
|
||||||
(commutative-binop -FlonumNegZero -FlonumPosZero -FlonumNegZero)
|
(commutative-binop -FlonumNegZero -FlonumPosZero -FlonumNegZero)
|
||||||
(binop -FlonumNegZero -FlonumPosZero)
|
(binop -FlonumNegZero -FlonumPosZero)
|
||||||
|
@ -424,8 +450,9 @@
|
||||||
(binop -NegFlonum -NonNegFlonum)
|
(binop -NegFlonum -NonNegFlonum)
|
||||||
(commutative-binop -NonPosFlonum -NonNegFlonum -NonPosFlonum)
|
(commutative-binop -NonPosFlonum -NonNegFlonum -NonPosFlonum)
|
||||||
(binop -NonPosFlonum -NonNegFlonum)
|
(binop -NonPosFlonum -NonNegFlonum)
|
||||||
(binop -Flonum)))
|
(binop -Flonum))))
|
||||||
(define fl/-type
|
(define fl/-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (-FlonumPosZero -PosFlonum . -> . -FlonumPosZero)
|
(from-cases (-FlonumPosZero -PosFlonum . -> . -FlonumPosZero)
|
||||||
(-FlonumPosZero -NegFlonum . -> . -FlonumNegZero)
|
(-FlonumPosZero -NegFlonum . -> . -FlonumNegZero)
|
||||||
(-FlonumNegZero -PosFlonum . -> . -FlonumNegZero)
|
(-FlonumNegZero -PosFlonum . -> . -FlonumNegZero)
|
||||||
|
@ -433,16 +460,18 @@
|
||||||
(-PosFlonum -PosFlonum . -> . -NonNegFlonum) ; possible underflow
|
(-PosFlonum -PosFlonum . -> . -NonNegFlonum) ; possible underflow
|
||||||
(commutative-binop -PosFlonum -NegFlonum -NonPosFlonum)
|
(commutative-binop -PosFlonum -NegFlonum -NonPosFlonum)
|
||||||
(-NegFlonum -NegFlonum . -> . -NonNegFlonum)
|
(-NegFlonum -NegFlonum . -> . -NonNegFlonum)
|
||||||
(binop -Flonum)))
|
(binop -Flonum))))
|
||||||
(define fl=-type
|
(define fl=-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map (lambda (l) (exclude-zero (car l) (cadr l) -FlonumZero))
|
(from-cases (map (lambda (l) (exclude-zero (car l) (cadr l) -FlonumZero))
|
||||||
(list (list -NonNegFlonum -PosFlonum)
|
(list (list -NonNegFlonum -PosFlonum)
|
||||||
(list -NonPosFlonum -NegFlonum)))
|
(list -NonPosFlonum -NegFlonum)))
|
||||||
(map (lambda (t) (commutative-equality/filter -Flonum t))
|
(map (lambda (t) (commutative-equality/filter -Flonum t))
|
||||||
(list -FlonumZero -PosFlonum -NonNegFlonum
|
(list -FlonumZero -PosFlonum -NonNegFlonum
|
||||||
-NegFlonum -NonPosFlonum))
|
-NegFlonum -NonPosFlonum))
|
||||||
(comp -Flonum)))
|
(comp -Flonum))))
|
||||||
(define fl<-type
|
(define fl<-type
|
||||||
|
(lambda ()
|
||||||
(from-cases
|
(from-cases
|
||||||
(-> -FlonumZero -Flonum B : (-FS (-filter -PosFlonum 1) (-filter (Un -NonPosFlonum -FlonumPosZero) 1)))
|
(-> -FlonumZero -Flonum B : (-FS (-filter -PosFlonum 1) (-filter (Un -NonPosFlonum -FlonumPosZero) 1)))
|
||||||
(-> -Flonum -FlonumZero B : (-FS (-filter -NegFlonum 0) (-filter (Un -NonNegFlonum -FlonumNegZero) 0)))
|
(-> -Flonum -FlonumZero B : (-FS (-filter -NegFlonum 0) (-filter (Un -NonNegFlonum -FlonumNegZero) 0)))
|
||||||
|
@ -454,8 +483,9 @@
|
||||||
(-> -Flonum -NegFlonum B : (-FS (-filter -NegFlonum 0) -top))
|
(-> -Flonum -NegFlonum B : (-FS (-filter -NegFlonum 0) -top))
|
||||||
(-> -NonPosFlonum -Flonum B : (-FS -top (-filter (Un -NonPosFlonum -FlonumPosZero) 1)))
|
(-> -NonPosFlonum -Flonum B : (-FS -top (-filter (Un -NonPosFlonum -FlonumPosZero) 1)))
|
||||||
(-> -Flonum -NonPosFlonum B : (-FS (-filter -NegFlonum 0) -top))
|
(-> -Flonum -NonPosFlonum B : (-FS (-filter -NegFlonum 0) -top))
|
||||||
(comp -Flonum)))
|
(comp -Flonum))))
|
||||||
(define fl>-type
|
(define fl>-type
|
||||||
|
(lambda ()
|
||||||
(from-cases
|
(from-cases
|
||||||
(-> -FlonumZero -Flonum B : (-FS (-filter -NegFlonum 1) (-filter (Un -NonNegFlonum -FlonumNegZero) 1)))
|
(-> -FlonumZero -Flonum B : (-FS (-filter -NegFlonum 1) (-filter (Un -NonNegFlonum -FlonumNegZero) 1)))
|
||||||
(-> -Flonum -FlonumZero B : (-FS (-filter -PosFlonum 0) (-filter (Un -NonPosFlonum -FlonumPosZero) 0)))
|
(-> -Flonum -FlonumZero B : (-FS (-filter -PosFlonum 0) (-filter (Un -NonPosFlonum -FlonumPosZero) 0)))
|
||||||
|
@ -467,8 +497,9 @@
|
||||||
(-> -Flonum -NegFlonum B : (-FS -top (-filter -NegFlonum 0)))
|
(-> -Flonum -NegFlonum B : (-FS -top (-filter -NegFlonum 0)))
|
||||||
(-> -NonPosFlonum -Flonum B : (-FS (-filter -NegFlonum 1) -top))
|
(-> -NonPosFlonum -Flonum B : (-FS (-filter -NegFlonum 1) -top))
|
||||||
(-> -Flonum -NonPosFlonum B : (-FS -top (-filter (Un -NonPosFlonum -FlonumPosZero) 0)))
|
(-> -Flonum -NonPosFlonum B : (-FS -top (-filter (Un -NonPosFlonum -FlonumPosZero) 0)))
|
||||||
(comp -Flonum)))
|
(comp -Flonum))))
|
||||||
(define fl<=-type
|
(define fl<=-type
|
||||||
|
(lambda ()
|
||||||
(from-cases
|
(from-cases
|
||||||
(-> -FlonumZero -Flonum B : (-FS (-filter (Un -NonNegFlonum -FlonumNegZero) 1) (-filter -NegFlonum 1)))
|
(-> -FlonumZero -Flonum B : (-FS (-filter (Un -NonNegFlonum -FlonumNegZero) 1) (-filter -NegFlonum 1)))
|
||||||
(-> -Flonum -FlonumZero B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 0) (-filter -PosFlonum 0)))
|
(-> -Flonum -FlonumZero B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 0) (-filter -PosFlonum 0)))
|
||||||
|
@ -480,8 +511,9 @@
|
||||||
(-> -Flonum -NegFlonum B : (-FS (-filter -NegFlonum 0) -top))
|
(-> -Flonum -NegFlonum B : (-FS (-filter -NegFlonum 0) -top))
|
||||||
(-> -NonPosFlonum -Flonum B : (-FS -top (-filter -NegFlonum 1)))
|
(-> -NonPosFlonum -Flonum B : (-FS -top (-filter -NegFlonum 1)))
|
||||||
(-> -Flonum -NonPosFlonum B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 0) -top))
|
(-> -Flonum -NonPosFlonum B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 0) -top))
|
||||||
(comp -Flonum)))
|
(comp -Flonum))))
|
||||||
(define fl>=-type
|
(define fl>=-type
|
||||||
|
(lambda ()
|
||||||
(from-cases
|
(from-cases
|
||||||
(-> -FlonumZero -Flonum B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 1) (-filter -PosFlonum 1)))
|
(-> -FlonumZero -Flonum B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 1) (-filter -PosFlonum 1)))
|
||||||
(-> -Flonum -FlonumZero B : (-FS (-filter (Un -NonNegFlonum -FlonumNegZero) 0) (-filter -NegFlonum 0)))
|
(-> -Flonum -FlonumZero B : (-FS (-filter (Un -NonNegFlonum -FlonumNegZero) 0) (-filter -NegFlonum 0)))
|
||||||
|
@ -493,46 +525,56 @@
|
||||||
(-> -Flonum -NegFlonum B : (-FS -top (-filter -NegFlonum 0)))
|
(-> -Flonum -NegFlonum B : (-FS -top (-filter -NegFlonum 0)))
|
||||||
(-> -NonPosFlonum -Flonum B : (-FS -top (-filter -PosFlonum 1)))
|
(-> -NonPosFlonum -Flonum B : (-FS -top (-filter -PosFlonum 1)))
|
||||||
(-> -Flonum -NonPosFlonum B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 0) -top))
|
(-> -Flonum -NonPosFlonum B : (-FS (-filter (Un -NonPosFlonum -FlonumPosZero) 0) -top))
|
||||||
(comp -Flonum)))
|
(comp -Flonum))))
|
||||||
(define flmin-type
|
(define flmin-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map binop
|
(from-cases (map binop
|
||||||
(list -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum -Flonum))))
|
(list -PosFlonum -NonNegFlonum -NegFlonum -NonPosFlonum -Flonum)))))
|
||||||
(define flmax-type
|
(define flmax-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (commutative-case -PosFlonum -Flonum -PosFlonum)
|
(from-cases (commutative-case -PosFlonum -Flonum -PosFlonum)
|
||||||
(commutative-case -NonNegFlonum -Flonum -NonNegFlonum)
|
(commutative-case -NonNegFlonum -Flonum -NonNegFlonum)
|
||||||
(binop -NegFlonum)
|
(binop -NegFlonum)
|
||||||
(commutative-case -NegFlonum -NonPosFlonum -NonPosFlonum)
|
(commutative-case -NegFlonum -NonPosFlonum -NonPosFlonum)
|
||||||
(binop -Flonum)))
|
(binop -Flonum))))
|
||||||
(define flround-type ; truncate too
|
(define flround-type ; truncate too
|
||||||
|
(lambda ()
|
||||||
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
||||||
-NonNegFlonum -NonPosFlonum -Flonum))))
|
-NonNegFlonum -NonPosFlonum -Flonum)))))
|
||||||
(define flfloor-type
|
(define flfloor-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
||||||
-NonNegFlonum -NegFlonum -NonPosFlonum -Flonum))))
|
-NonNegFlonum -NegFlonum -NonPosFlonum -Flonum)))))
|
||||||
(define flceiling-type
|
(define flceiling-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
||||||
-PosFlonum -NonNegFlonum -NonPosFlonum -Flonum))))
|
-PosFlonum -NonNegFlonum -NonPosFlonum -Flonum)))))
|
||||||
(define fllog-type
|
(define fllog-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (-> -FlonumZero -NegFlonum) ; -inf
|
(from-cases (-> -FlonumZero -NegFlonum) ; -inf
|
||||||
(-> -PosFlonum -NonNegFlonum) ; possible underflow
|
(-> -PosFlonum -NonNegFlonum) ; possible underflow
|
||||||
(unop -Flonum)))
|
(unop -Flonum))))
|
||||||
(define flexp-type
|
(define flexp-type
|
||||||
|
(lambda ()
|
||||||
(from-cases ((Un -NonNegFlonum -FlonumNegZero) . -> . -PosFlonum)
|
(from-cases ((Un -NonNegFlonum -FlonumNegZero) . -> . -PosFlonum)
|
||||||
(-NegFlonum . -> . -NonNegFlonum)
|
(-NegFlonum . -> . -NonNegFlonum)
|
||||||
(-Flonum . -> . -Flonum))) ; nan is the only non nonnegative case (returns nan)
|
(-Flonum . -> . -Flonum)))) ; nan is the only non nonnegative case (returns nan)
|
||||||
(define flsqrt-type
|
(define flsqrt-type
|
||||||
|
(lambda ()
|
||||||
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
(from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero
|
||||||
-NonNegFlonum ; we don't have positive case, possible underflow
|
-NonNegFlonum ; we don't have positive case, possible underflow
|
||||||
-Flonum)))) ; anything negative returns nan
|
-Flonum))))) ; anything negative returns nan
|
||||||
(define fx->fl-type (fx-from-cases
|
(define fx->fl-type
|
||||||
|
(lambda ()
|
||||||
|
(fx-from-cases
|
||||||
(-PosInt . -> . -PosFlonum)
|
(-PosInt . -> . -PosFlonum)
|
||||||
(-Nat . -> . -NonNegFlonum)
|
(-Nat . -> . -NonNegFlonum)
|
||||||
(-NegInt . -> . -NegFlonum)
|
(-NegInt . -> . -NegFlonum)
|
||||||
(-NonPosInt . -> . -NonPosFlonum)
|
(-NonPosInt . -> . -NonPosFlonum)
|
||||||
(-Int . -> . -Flonum)))
|
(-Int . -> . -Flonum))))
|
||||||
(define make-flrectangular-type (-Flonum -Flonum . -> . -FloatComplex))
|
(define make-flrectangular-type (lambda () (-Flonum -Flonum . -> . -FloatComplex)))
|
||||||
(define flreal-part-type (-FloatComplex . -> . -Flonum))
|
(define flreal-part-type (lambda () (-FloatComplex . -> . -Flonum)))
|
||||||
(define flimag-part-type (-FloatComplex . -> . -Flonum))
|
(define flimag-part-type (lambda () (-FloatComplex . -> . -Flonum)))
|
||||||
|
|
||||||
;; There's a repetitive pattern in the types of each comparison operator.
|
;; There's a repetitive pattern in the types of each comparison operator.
|
||||||
;; As explained below, this is because filters don't do intersections.
|
;; As explained below, this is because filters don't do intersections.
|
||||||
|
@ -1461,8 +1503,8 @@
|
||||||
-InexactRealPosZero -InexactRealNegZero -InexactRealZero
|
-InexactRealPosZero -InexactRealNegZero -InexactRealZero
|
||||||
-PosInexactReal -NonNegInexactReal -NonPosInexactReal -InexactReal
|
-PosInexactReal -NonNegInexactReal -NonPosInexactReal -InexactReal
|
||||||
-RealZero -PosReal -NonNegReal -NonPosReal -Real)))]
|
-RealZero -PosReal -NonNegReal -NonPosReal -Real)))]
|
||||||
[truncate round-type]
|
[truncate (round-type)]
|
||||||
[round round-type]
|
[round (round-type)]
|
||||||
|
|
||||||
[make-rectangular (cl->* (-Rat -Rat . -> . -ExactNumber)
|
[make-rectangular (cl->* (-Rat -Rat . -> . -ExactNumber)
|
||||||
(-Flonum -Real . -> . -FloatComplex)
|
(-Flonum -Real . -> . -FloatComplex)
|
||||||
|
@ -1747,117 +1789,117 @@
|
||||||
|
|
||||||
|
|
||||||
;; scheme/fixnum
|
;; scheme/fixnum
|
||||||
[fx+ fx+-type]
|
[fx+ (fx+-type)]
|
||||||
[fx- fx--type]
|
[fx- (fx--type)]
|
||||||
[fx* fx*-type]
|
[fx* (fx*-type)]
|
||||||
[fxquotient fxquotient-type]
|
[fxquotient (fxquotient-type)]
|
||||||
[fxremainder fxremainder-type]
|
[fxremainder (fxremainder-type)]
|
||||||
[fxmodulo fxmodulo-type]
|
[fxmodulo (fxmodulo-type)]
|
||||||
[fxabs fxabs-type]
|
[fxabs (fxabs-type)]
|
||||||
|
|
||||||
[fxand fxand-type]
|
[fxand (fxand-type)]
|
||||||
[fxior fxior-type]
|
[fxior (fxior-type)]
|
||||||
[fxxor fxxor-type]
|
[fxxor (fxxor-type)]
|
||||||
[fxnot fxnot-type]
|
[fxnot (fxnot-type)]
|
||||||
[fxlshift fxlshift-type]
|
[fxlshift (fxlshift-type)]
|
||||||
[fxrshift fxrshift-type]
|
[fxrshift (fxrshift-type)]
|
||||||
|
|
||||||
[fx= fx=-type]
|
[fx= (fx=-type)]
|
||||||
[fx< fx<-type]
|
[fx< (fx<-type)]
|
||||||
[fx> fx>-type]
|
[fx> (fx>-type)]
|
||||||
[fx<= fx<=-type]
|
[fx<= (fx<=-type)]
|
||||||
[fx>= fx>=-type]
|
[fx>= (fx>=-type)]
|
||||||
[fxmin fxmin-type]
|
[fxmin (fxmin-type)]
|
||||||
[fxmax fxmax-type]
|
[fxmax (fxmax-type)]
|
||||||
|
|
||||||
[unsafe-fx+ fx+-type]
|
[unsafe-fx+ (fx+-type)]
|
||||||
[unsafe-fx- fx--type]
|
[unsafe-fx- (fx--type)]
|
||||||
[unsafe-fx* fx*-type]
|
[unsafe-fx* (fx*-type)]
|
||||||
[unsafe-fxquotient fxquotient-type]
|
[unsafe-fxquotient (fxquotient-type)]
|
||||||
[unsafe-fxremainder fxremainder-type]
|
[unsafe-fxremainder (fxremainder-type)]
|
||||||
[unsafe-fxmodulo fxmodulo-type]
|
[unsafe-fxmodulo (fxmodulo-type)]
|
||||||
[unsafe-fxabs fxabs-type]
|
[unsafe-fxabs (fxabs-type)]
|
||||||
|
|
||||||
[unsafe-fxand fxand-type]
|
[unsafe-fxand (fxand-type)]
|
||||||
[unsafe-fxior fxior-type]
|
[unsafe-fxior (fxior-type)]
|
||||||
[unsafe-fxxor fxxor-type]
|
[unsafe-fxxor (fxxor-type)]
|
||||||
[unsafe-fxnot fxnot-type]
|
[unsafe-fxnot (fxnot-type)]
|
||||||
[unsafe-fxlshift fxlshift-type]
|
[unsafe-fxlshift (fxlshift-type)]
|
||||||
[unsafe-fxrshift fxrshift-type]
|
[unsafe-fxrshift (fxrshift-type)]
|
||||||
|
|
||||||
[unsafe-fx= fx=-type]
|
[unsafe-fx= (fx=-type)]
|
||||||
[unsafe-fx< fx<-type]
|
[unsafe-fx< (fx<-type)]
|
||||||
[unsafe-fx> fx>-type]
|
[unsafe-fx> (fx>-type)]
|
||||||
[unsafe-fx<= fx<=-type]
|
[unsafe-fx<= (fx<=-type)]
|
||||||
[unsafe-fx>= fx>=-type]
|
[unsafe-fx>= (fx>=-type)]
|
||||||
[unsafe-fxmin fxmin-type]
|
[unsafe-fxmin (fxmin-type)]
|
||||||
[unsafe-fxmax fxmax-type]
|
[unsafe-fxmax (fxmax-type)]
|
||||||
|
|
||||||
|
|
||||||
;; flonum ops
|
;; flonum ops
|
||||||
[flabs flabs-type]
|
[flabs (flabs-type)]
|
||||||
[fl+ fl+-type]
|
[fl+ (fl+-type)]
|
||||||
[fl- fl--type]
|
[fl- (fl--type)]
|
||||||
[fl* fl*-type]
|
[fl* (fl*-type)]
|
||||||
[fl/ fl/-type]
|
[fl/ (fl/-type)]
|
||||||
[fl= fl=-type]
|
[fl= (fl=-type)]
|
||||||
[fl<= fl<=-type]
|
[fl<= (fl<=-type)]
|
||||||
[fl>= fl>=-type]
|
[fl>= (fl>=-type)]
|
||||||
[fl> fl>-type]
|
[fl> (fl>-type)]
|
||||||
[fl< fl<-type]
|
[fl< (fl<-type)]
|
||||||
[flmin flmin-type]
|
[flmin (flmin-type)]
|
||||||
[flmax flmax-type]
|
[flmax (flmax-type)]
|
||||||
[flround flround-type]
|
[flround (flround-type)]
|
||||||
[flfloor flfloor-type]
|
[flfloor (flfloor-type)]
|
||||||
[flceiling flceiling-type]
|
[flceiling (flceiling-type)]
|
||||||
[fltruncate flround-type]
|
[fltruncate (flround-type)]
|
||||||
[flsin fl-unop] ; special cases (0s) not worth special-casing
|
[flsin (fl-unop)] ; special cases (0s) not worth special-casing
|
||||||
[flcos fl-unop]
|
[flcos (fl-unop)]
|
||||||
[fltan fl-unop]
|
[fltan (fl-unop)]
|
||||||
[flatan fl-unop]
|
[flatan (fl-unop)]
|
||||||
[flasin fl-unop]
|
[flasin (fl-unop)]
|
||||||
[flacos fl-unop]
|
[flacos (fl-unop)]
|
||||||
[fllog fllog-type]
|
[fllog (fllog-type)]
|
||||||
[flexp flexp-type]
|
[flexp (flexp-type)]
|
||||||
[flsqrt flsqrt-type]
|
[flsqrt (flsqrt-type)]
|
||||||
[->fl fx->fl-type]
|
[->fl (fx->fl-type)]
|
||||||
[make-flrectangular make-flrectangular-type]
|
[make-flrectangular (make-flrectangular-type)]
|
||||||
[flreal-part flreal-part-type]
|
[flreal-part (flreal-part-type)]
|
||||||
[flimag-part flimag-part-type]
|
[flimag-part (flimag-part-type)]
|
||||||
|
|
||||||
[unsafe-flabs flabs-type]
|
[unsafe-flabs (flabs-type)]
|
||||||
[unsafe-fl+ fl+-type]
|
[unsafe-fl+ (fl+-type)]
|
||||||
[unsafe-fl- fl--type]
|
[unsafe-fl- (fl--type)]
|
||||||
[unsafe-fl* fl*-type]
|
[unsafe-fl* (fl*-type)]
|
||||||
[unsafe-fl/ fl/-type]
|
[unsafe-fl/ (fl/-type)]
|
||||||
[unsafe-fl= fl=-type]
|
[unsafe-fl= (fl=-type)]
|
||||||
[unsafe-fl<= fl<=-type]
|
[unsafe-fl<= (fl<=-type)]
|
||||||
[unsafe-fl>= fl>=-type]
|
[unsafe-fl>= (fl>=-type)]
|
||||||
[unsafe-fl> fl>-type]
|
[unsafe-fl> (fl>-type)]
|
||||||
[unsafe-fl< fl<-type]
|
[unsafe-fl< (fl<-type)]
|
||||||
[unsafe-flmin flmin-type]
|
[unsafe-flmin (flmin-type)]
|
||||||
[unsafe-flmax flmax-type]
|
[unsafe-flmax (flmax-type)]
|
||||||
|
|
||||||
;These are currently the same binding as the safe versions
|
;These are currently the same binding as the safe versions
|
||||||
;and so are not needed. If this changes they should be
|
;and so are not needed. If this changes they should be
|
||||||
;uncommented. There is a check in the definitions part of
|
;uncommented. There is a check in the definitions part of
|
||||||
;the file that makes sure that they are the same binding.
|
;the file that makes sure that they are the same binding.
|
||||||
;
|
;
|
||||||
;[unsafe-flround flround-type]
|
;[unsafe-flround (flround-type)]
|
||||||
;[unsafe-flfloor flfloor-type]
|
;[unsafe-flfloor (flfloor-type)]
|
||||||
;[unsafe-flceiling flceiling-type]
|
;[unsafe-flceiling (flceiling-type)]
|
||||||
;[unsafe-fltruncate flround-type]
|
;[unsafe-fltruncate (flround-type)]
|
||||||
;[unsafe-flsin fl-unop]
|
;[unsafe-flsin (fl-unop)]
|
||||||
;[unsafe-flcos fl-unop]
|
;[unsafe-flcos (fl-unop)]
|
||||||
;[unsafe-fltan fl-unop]
|
;[unsafe-fltan (fl-unop)]
|
||||||
;[unsafe-flatan fl-unop]
|
;[unsafe-flatan (fl-unop)]
|
||||||
;[unsafe-flasin fl-unop]
|
;[unsafe-flasin (fl-unop)]
|
||||||
;[unsafe-flacos fl-unop]
|
;[unsafe-flacos (fl-unop)]
|
||||||
;[unsafe-fllog fllog-type]
|
;[unsafe-fllog (fllog-type)]
|
||||||
;[unsafe-flexp flexp-type]
|
;[unsafe-flexp (flexp-type)]
|
||||||
;
|
;
|
||||||
[unsafe-flsqrt flsqrt-type]
|
[unsafe-flsqrt (flsqrt-type)]
|
||||||
[unsafe-fx->fl fx->fl-type]
|
[unsafe-fx->fl (fx->fl-type)]
|
||||||
[unsafe-make-flrectangular make-flrectangular-type]
|
[unsafe-make-flrectangular (make-flrectangular-type)]
|
||||||
[unsafe-flreal-part flreal-part-type]
|
[unsafe-flreal-part (flreal-part-type)]
|
||||||
[unsafe-flimag-part flimag-part-type]
|
[unsafe-flimag-part (flimag-part-type)]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user