
additions/changes * More accurate `flulp-error' * Added `flonum->fields', `fields->flonum', `flonum->sig+exp', `sig+exp->flonum' (currently undocumented) * Correctly rounded, robust `bigfloat->fl2' and `fl2' * Correctly rounded, robust `fl+/error', `fl-/error', `fl*/error', `flsqr/error', `fl//error' * Much faster but slightly less accurate fl2 ops (shamelessly stolen from crlibm, which is LGPL) * Added `fl2ulp', `fl2ulp-error', `fl2?' (which detects overlap), `+max-fl2-subnormal.0' (which was tricky), `fl2abs' * Added deterministic and randomized flonum op tests (against MPFR) * Added deterministic and randomized flonum/error op tests (against MPFR) * Added deterministic and randomized fl2 op tests (against MPFR) * Exposed FPU tests in `math/utils' (currently undocumented)
41 lines
1.6 KiB
Racket
41 lines
1.6 KiB
Racket
#lang racket/base
|
|
|
|
(require (for-syntax racket/base)
|
|
"private/flonum/flonum-bits.rkt"
|
|
"private/flonum/flonum-constants.rkt"
|
|
"private/flonum/flonum-functions.rkt"
|
|
"private/flonum/flonum-search.rkt"
|
|
"private/flonum/flonum-exp.rkt"
|
|
"private/flonum/flonum-log.rkt"
|
|
"private/flonum/flonum-more-functions.rkt"
|
|
"private/flonum/flonum-factorial.rkt"
|
|
"private/flonum/flonum-log1pmx.rkt"
|
|
"private/flonum/flonum-polyfun.rkt"
|
|
"private/flonum/flonum-error.rkt"
|
|
"private/flonum/expansion/expansion-base.rkt"
|
|
"private/flonum/expansion/expansion-exp.rkt"
|
|
"private/flonum/expansion/expansion-log.rkt"
|
|
"private/flonum/flvector.rkt")
|
|
|
|
(provide (all-from-out
|
|
"private/flonum/flonum-bits.rkt"
|
|
"private/flonum/flonum-constants.rkt"
|
|
"private/flonum/flonum-functions.rkt"
|
|
"private/flonum/flonum-search.rkt"
|
|
"private/flonum/flonum-exp.rkt"
|
|
"private/flonum/flonum-log.rkt"
|
|
"private/flonum/flonum-more-functions.rkt"
|
|
"private/flonum/flonum-factorial.rkt"
|
|
"private/flonum/flonum-log1pmx.rkt"
|
|
"private/flonum/flonum-polyfun.rkt"
|
|
"private/flonum/flonum-error.rkt"
|
|
"private/flonum/expansion/expansion-base.rkt"
|
|
"private/flonum/expansion/expansion-exp.rkt"
|
|
"private/flonum/expansion/expansion-log.rkt"
|
|
"private/flonum/flvector.rkt")
|
|
lg* lg/ lgprod)
|
|
|
|
(define-syntax lg* (make-rename-transformer #'fl+))
|
|
(define-syntax lg/ (make-rename-transformer #'fl-))
|
|
(define-syntax lgprod (make-rename-transformer #'flsum))
|