Abstract

Quasi-random Sobol number generation.

Synopsis

module type sobol_dir = {
val n: i64
val k: i64
val a: [n]u32
val s: [n]i32
val m: [n][k]u32
}
module type sobol = {
val D: i64
val norm: f64
val independent: i32 -> [D]u32
val recurrent: i32 -> [D]u32 -> [D]u32
val chunk: i32 -> (n: i64) -> [n][D]f64
val sobol: (n: i64) -> [n][D]f64
}
module Sobol: (DM: sobol_dir) -> (X: {
val D: i64
}) -> sobol

Description

module type sobol_dir
val n: i64
val k: i64
val a: [n]u32
val s: [n]i32
val m: [n][k]u32
module type sobol
val D: i64

Dimensionality of sequence.

val norm: f64

The value 2**32.

val independent: i32 -> [D]u32

independent i returns the i'th sobol vector (in u32)

val recurrent: i32 -> [D]u32 -> [D]u32

recurrent i v returns the i'th sobol vector given v is the i-1'th sobol vector

val chunk: i32 -> (n: i64) -> [n][D]f64

chunk i n returns the array [v(i),...,v(i+n-1)] of sobol vectors where v(j) is the j'th D-dimensional sobol vector

val sobol: (n: i64) -> [n][D]f64
module Sobol