Make index? faster.

original commit: e5314f945e0827331d7e1dcd8320bb8d0c59132e
This commit is contained in:
Vincent St-Amour 2011-07-13 11:41:32 -04:00
parent 124cf9c5df
commit b1aa042289

View File

@ -1,6 +1,6 @@
#lang racket/base
(require unstable/function)
(require unstable/function racket/unsafe/ops)
(provide index? exact-rational?)
@ -9,6 +9,7 @@
;; 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) (>= x 0) (fixnum? (* x 4))))
(define (index? x)
(and (fixnum? x) (unsafe-fx>= x 0) (fixnum? (unsafe-fx* x 4))))
(define exact-rational? (conjoin rational? exact?))