Relax type of expt.

Made possible by the fix to its dynamic behavior.

Should be fully backwards compatible.
This commit is contained in:
Vincent St-Amour 2015-12-02 11:48:06 -06:00
parent 600935aae1
commit 70afdf6f70
2 changed files with 10 additions and 10 deletions

View File

@ -1607,8 +1607,8 @@
(-PosRat -Int . -> . -PosRat)
(-NonNegRat -Int . -> . -NonNegRat)
(-Rat -Int . -> . -Rat)
(-NonNegFlonum -NonNegFlonum . -> . -NonNegFlonum)
(-NonNegFlonum -NonNegReal . -> . (Un -NonNegFlonum -One))
(-NonNegFlonum -Flonum . -> . -NonNegFlonum)
(-NonNegFlonum -Real . -> . (Un -NonNegFlonum -One))
(-PosReal -NonNegFlonum . -> . (Un -NonNegFlonum -One))
;; even integer exponents can give complex results
;; too large exponents turn into infinities, and (expt -inf.0 -inf.0) => nan.0+nan.0i
@ -1617,15 +1617,15 @@
(-Flonum -Fixnum . -> . (Un -Flonum -One))
(-Flonum -Flonum . -> . (Un -Flonum -FloatComplex))
;; 1st arg can't be non-neg, -0.0 gives the wrong sign
(-PosSingleFlonum (Un -NonNegSingleFlonum -NegFixnum -PosFixnum) . -> . -NonNegSingleFlonum)
(-NonNegSingleFlonum (Un -NonNegSingleFlonum -NegFixnum -PosFixnum) . -> . -SingleFlonum)
(-PosSingleFlonum (Un -SingleFlonum -NegFixnum -PosFixnum) . -> . -NonNegSingleFlonum)
(-NonNegSingleFlonum (Un -SingleFlonum -NegFixnum -PosFixnum) . -> . -SingleFlonum)
(-SingleFlonum (Un -NegFixnum -PosFixnum) . -> . -SingleFlonum)
(-SingleFlonum -Fixnum . -> . (Un -SingleFlonum -One))
(-SingleFlonum -SingleFlonum . -> . (Un -SingleFlonum -SingleFlonumComplex))
(-PosInexactReal (Un -NegFixnum -PosFixnum) . -> . -NonNegInexactReal)
(-NonNegInexactReal (Un -NegFixnum -PosFixnum) . -> . -InexactReal)
(-PosReal -Real . -> . -NonNegReal)
(-NonNegReal -Fixnum . -> . -Real)
(-NonNegReal -Real . -> . -Real)
(-InexactReal (Un -NegFixnum -PosFixnum) . -> . -InexactReal)
(-InexactReal -InexactReal . -> . (Un -InexactReal -InexactComplex))
(-Real -Nat . -> . -Real)

View File

@ -421,15 +421,15 @@
(tc-e (expt (*) -0.0) (t:Un -NonNegFlonum -One))
(tc-e (expt (*) 2.4521075152139656e-300) (t:Un -NonNegFlonum -One))
(tc-e (expt (*) -0.0) (t:Un -NonNegFlonum -One))
(tc-e (expt -0.0 -1.0) (t:Un -Flonum -FloatComplex))
(tc-e (expt -0.0 -1.0) -NonNegFlonum)
(tc-e (expt 0 (flabs (cos (real->double-flonum 2))))
-Number)
-Real)
(tc-e (expt
(sub1 (gcd (exact-round 1)))
(- (ceiling (real->double-flonum -2.6897657f0))))
-Number)
-Real)
(tc-e (expt (sqrt (+)) (cosh (flcos (real->double-flonum 0))))
-Number)
-Real)
(tc-e (expt
(tan (real->double-flonum 6))
(lcm (*) (exact-round -1.7976931348623153e+308) 6))
@ -458,7 +458,7 @@
(tc-e (/ (round (exact-round -2.7393196f0)) (real->double-flonum (inexact->exact (real->single-flonum -0.0)))) -Real)
(tc-e (bitwise-and (exact-round 1.7976931348623157e+308) (exact-round -29)) -Int)
(tc-e (flexpt -0.0 -1.0) -Flonum)
(tc-e (expt -0.0f0 -3.0) (t:Un -InexactReal -InexactComplex))
(tc-e (expt -0.0f0 -3.0) -Real)
(tc-e (expt -8.665778974912815f+107 -677460115195106837726964554590085563061636191189747) -Number)
(tc-e (expt (sin +inf.f) +nan.0+nan.0i) -Number)
(tc-e (/ (gcd 1 0) -0.0f0 2.718281828459045) -Real)