38 lines
2.0 KiB
Racket
38 lines
2.0 KiB
Racket
#lang racket/base
|
|
|
|
(require racket/contract unstable/latent-contract)
|
|
|
|
(require "../common/sample.rkt"
|
|
"../common/math.rkt")
|
|
(provide (contract-out (struct sample ([xs (listof real?)]
|
|
[ys (listof real?)]
|
|
[y-min (or/c rational? #f)]
|
|
[y-max (or/c rational? #f)]))
|
|
(struct 2d-sample ([xs (listof real?)]
|
|
[ys (listof real?)]
|
|
[zss (vectorof (vectorof real?))]
|
|
[z-min (or/c rational? #f)]
|
|
[z-max (or/c rational? #f)]))
|
|
(struct 3d-sample ([xs (listof real?)]
|
|
[ys (listof real?)]
|
|
[zs (listof real?)]
|
|
[dsss (vectorof (vectorof (vectorof real?)))]
|
|
[d-min (or/c rational? #f)]
|
|
[d-max (or/c rational? #f)])))
|
|
(activate-contract-out build-linear-seq linear-seq linear-seq* nonlinear-seq
|
|
sampler/c 2d-sampler/c 3d-sampler/c
|
|
make-function->sampler
|
|
make-2d-function->sampler
|
|
make-3d-function->sampler
|
|
sample-exact->inexact
|
|
2d-sample-exact->inexact
|
|
3d-sample-exact->inexact
|
|
flonum-ok-for-2d?
|
|
flonum-ok-for-3d?
|
|
flonum-ok-for-4d?
|
|
)
|
|
(contract-out (struct mapped-function ([f (any/c . -> . any/c)]
|
|
[fmap ((listof any/c) . -> . (listof any/c))])))
|
|
map*
|
|
for-2d-sample for-3d-sample)
|