Fix type of tanh.

Found using random testing.

original commit: 89f9b860cdcbdc8f401ac92436d3c17f98eda35d
This commit is contained in:
Vincent St-Amour 2013-05-07 10:03:13 -04:00
parent 1c4fa12acd
commit 983b94994f
2 changed files with 5 additions and 3 deletions

View File

@ -29,7 +29,7 @@
(typecheck typechecker)
(env global-env)
(base-env base-env-indexing))
racket/file racket/port racket/flonum
racket/file racket/port racket/flonum racket/math
(env global-env)
(for-meta 2 (env global-env))
(for-template
@ -225,6 +225,7 @@
(tc-e (flexpt 0.5 0.3) -NonNegFlonum)
(tc-e (flexpt 0.00000000001 100000000000.0) -NonNegFlonum)
(tc-e (flexpt -2.0 -0.5) -Flonum) ; NaN
(tc-e (tanh (ann 0 Nonnegative-Integer)) -NonNegReal)
(tc-e (angle -1) -Real)
(tc-e (angle 2.3) -Zero)
(tc-e (magnitude 3/4) -PosRat)

View File

@ -1908,8 +1908,9 @@
(map unop (list -FloatComplex -SingleFlonumComplex -InexactComplex N)))]
[tanh (from-cases ; same as sinh
(unop -Zero) ; only exact case
((Un -NonNegRat -NonNegFlonum) . -> . -NonNegFlonum) ; possible underflow, no pos -> pos
((Un -NonPosRat -NonPosFlonum) . -> . -NonPosFlonum)
;; possible underflow, no pos -> pos. 0 -> 0, no -NonNegRat -> -NonNegFlonum
((Un -PosRat -NonNegFlonum) . -> . -NonNegFlonum)
((Un -NegRat -NonPosFlonum) . -> . -NonPosFlonum)
(map unop (list -FlonumNan -Flonum
-SingleFlonumNan -NonNegSingleFlonum -NonPosSingleFlonum -SingleFlonum
-NonNegInexactReal -NonPosInexactReal -InexactReal