Fix sign propagation for division.

Found using random testing.
This commit is contained in:
Vincent St-Amour 2015-11-03 15:47:32 -06:00
parent 207a12fa23
commit 58e97f83ea
2 changed files with 5 additions and 4 deletions

View File

@ -1166,10 +1166,10 @@
;; reals
(varop-1+ -NonNegReal -NonNegReal)
(-> -NonPosReal -NonPosReal)
(-> -NonPosReal -NonPosReal -NonNegReal)
(-> -NonPosReal -NonNegReal -NonPosReal)
(-> -NonNegReal -NonPosReal -NonPosReal)
(-> -NonPosReal -NonPosReal -NonPosReal -NonPosReal)
(-> -NegReal -NegReal -NonNegReal) ; 0.0 is non-neg, but doesn't preserve sign
(-> -NegReal -PosReal -NonPosReal) ; idem
(-> -PosReal -NegReal -NonPosReal) ; idem
(-> -NegReal -NegReal -NegReal -NonPosReal) ; idem
(varop-1+ -Real)
;; complexes
(varop-1+ -FloatComplex)

View File

@ -453,6 +453,7 @@
(tc-e (fl/ 1.7976931348623157e+308 -0.0e0) -Flonum)
(tc-e (expt (make-rectangular 3 -1.7976931348623157e+308) (flacos (real->double-flonum 59.316513f0))) (t:Un -Flonum -FloatComplex))
(tc-e (exact->inexact (ann 3 Number)) (t:Un -InexactReal -InexactComplex))
(tc-e (/ (round (exact-round -2.7393196f0)) (real->double-flonum (inexact->exact (real->single-flonum -0.0)))) -Real)
(tc-e (exact->inexact 3) -PosFlonum)
(tc-e (exact->inexact -3) -NegFlonum)
(tc-e (real->double-flonum 0.0) -FlonumPosZero)