From 9725465b461ea0636639dc29b2eb63d6c43ed052 Mon Sep 17 00:00:00 2001 From: Neil Toronto Date: Mon, 9 Jul 2012 14:28:36 -0700 Subject: [PATCH] Added inline hint around `index?' definition; my own timing suggests 2x speedup original commit: 419b59e88ea025a4d6cd2fa2cdbe62eb64529c78 --- collects/typed-racket/types/numeric-predicates.rkt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/collects/typed-racket/types/numeric-predicates.rkt b/collects/typed-racket/types/numeric-predicates.rkt index 5e38bded..c3bc338e 100644 --- a/collects/typed-racket/types/numeric-predicates.rkt +++ b/collects/typed-racket/types/numeric-predicates.rkt @@ -1,14 +1,19 @@ #lang racket/base -(require racket/unsafe/ops) +(require racket/unsafe/ops + racket/performance-hint) (provide index? exact-rational?) ;; this is required for template in numeric-tower.rkt +(begin-encourage-inline + ;; we assume indexes are 2 bits shorter than fixnums ;; We're generating a reference to fixnum? rather than calling it, so ;; we're safe from fixnum size issues on different platforms. (define (index? x) (and (fixnum? x) (unsafe-fx>= x 0) (fixnum? (* x 4)))) (define (exact-rational? x) (and (rational? x) (exact? x))) + +) ; begin-encourage-inline