From 63e411b474c2fb0db121d11dfb4d98c3b783f838 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 7 May 2012 20:39:38 -0600 Subject: [PATCH] racket/flonum: add `flexpt' original commit: 9a41129c69cd18cfe901a26d1bee0ebe45cde1a9 --- collects/typed-racket/base-env/base-env-numeric.rkt | 9 ++++++++- 1 file changed, 8 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 aa03ea9f..bdf646b2 100644 --- a/collects/typed-racket/base-env/base-env-numeric.rkt +++ b/collects/typed-racket/base-env/base-env-numeric.rkt @@ -564,6 +564,11 @@ (from-cases (map unop (list -FlonumPosZero -FlonumNegZero -FlonumZero -NonNegFlonum ; we don't have positive case, possible underflow -Flonum))))) ; anything negative returns nan + (define flexpt-type + (lambda () + ;; could be more precise... + (from-cases (-Flonum -Flonum . -> . -Flonum)))) + (define fx->fl-type (lambda () (fx-from-cases @@ -645,7 +650,8 @@ [unsafe-flasin flasin ] [unsafe-flacos flacos] [unsafe-fllog fllog] - [unsafe-flexp flexp]))) + [unsafe-flexp flexp] + [unsafe-flexpt flexpt]))) (define phase (namespace-base-phase (namespace-anchor->namespace anchor))) (for-each @@ -1881,6 +1887,7 @@ [fllog (fllog-type)] [flexp (flexp-type)] [flsqrt (flsqrt-type)] +[flexpt (flexpt-type)] [->fl (fx->fl-type)] [fx->fl (fx->fl-type)] [fl->fx (fl->fx-type)]