From 74f13b21f125673951ad6b3a417054814bc00c4e Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Sun, 5 Aug 2012 11:54:03 -0700 Subject: [PATCH] Fix type of integer-sqrt and add type for integer-sqrt/remainder. original commit: f09069854225ccc00b9b9041fc2f26d2e83f8450 --- .../base-env/base-env-numeric.rkt | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/collects/typed-racket/base-env/base-env-numeric.rkt b/collects/typed-racket/base-env/base-env-numeric.rkt index 0e05904e..b7856987 100644 --- a/collects/typed-racket/base-env/base-env-numeric.rkt +++ b/collects/typed-racket/base-env/base-env-numeric.rkt @@ -1665,7 +1665,25 @@ -InexactRealPosZero -InexactRealNegZero -InexactRealZero -NonNegInexactReal -RealZero -NonNegReal)) (-Rat . -> . -ExactNumber) - (N . -> . N))] ; defined on inexact integers too + (-Real . -> . N))] ; defined on inexact integers too, but not complex +[integer-sqrt/remainder + (from-cases + (-Zero . -> . (-values -Zero -Zero)) + (-One . -> . (-values -One -Zero)) + (-Byte . -> . (-values -Byte -Byte)) + (-Index . -> . (-values -Index -Index)) + (-NonNegFixnum . -> . (-values -Index -NonNegFixnum)) + + (map (λ (t) (t . -> . (-values t -Int))) + (list -Nat -NonNegRat + -FlonumPosZero -FlonumNegZero -FlonumZero -NonNegFlonum + -SingleFlonumPosZero -SingleFlonumNegZero -SingleFlonumZero -NonNegSingleFlonum + -InexactRealPosZero -InexactRealNegZero -InexactRealZero -NonNegInexactReal + -RealZero -NonNegReal)) + + (-Rat . -> . (-values -ExactNumber -Int)) + (-Real . -> . (-values N -Int)))] ; defined on inexact integers too + [log (cl->* (-NonNegRat . -> . -Real) (-FlonumZero . -> . -NegFlonum)