racket/collects/racket/extflonum.rkt
Michael Filonenko 17b8092641 extflonums
An extflonum is like a flonum, but with 80-bit precision and
not a number in the sense of `number?': only operations such as
`extfl+' work on extflonums, and only on platforms where extflonums
can be implemented by hardware without interefering with flonums
(i.e., on platforms where SSE instructions are used for
double-precision floats).

[Patch provided by Michael Filonenko and revised by Matthew.]

The compiler tracks information about bindings that are known to
hold extflonums, but the JIT does not yet exploit this information
to unbox them (except as intermediate results).
2013-01-28 18:17:06 -07:00

22 lines
541 B
Racket

#lang racket/base
(require '#%extfl
'#%unsafe
"private/vector-wraps.rkt"
(for-syntax racket/base))
(provide (all-from-out '#%extfl)
in-extflvector for/extflvector for*/extflvector
extflvector-copy)
(define-vector-wraps "extflvector"
extflvector? extflvector-length extflvector-ref extflvector-set! make-extflvector
unsafe-extflvector-ref unsafe-extflvector-set! unsafe-extflvector-length
in-extflvector*
in-extflvector
for/extflvector
for*/extflvector
extflvector-copy
0.0T0)