mod pointset

module pointset

Low-discrepancy point sets for bounded numerical objectives. Low-discrepancy point sets for bounded numerical objectives.

Functions

fn boundary_anchored_low_discrepancy_points(bounds: &Bounds<f64>, n: usize, skip: u64) -> Array2<f64>

Boundary-anchored bounded low-discrepancy design.

The design starts with all box vertices when the requested size can hold them. For larger boxes it anchors the two diagonal vertices and keeps the remaining rows as the Halton design.

fn halton_points(bounds: &Bounds<f64>, n: usize, skip: u64) -> Array2<f64>

A Halton point set scaled to the supplied box bounds.

skip controls the first Halton index. Use skip = 1 to avoid the origin.

fn halton_unit(index: u64, dim: usize) -> Array1<f64>

A single dim-dimensional Halton point in the unit hypercube.

fn low_discrepancy_points(bounds: &Bounds<f64>, n: usize, skip: u64) -> Array2<f64>

Default bounded low-discrepancy design used by optimization front-ends.

fn radical_inverse(mut index: u64, base: u64) -> f64

Radical inverse of index in the given integer base.

This is the one-dimensional building block of Halton point sets.

fn shifted_halton_points(bounds: &Bounds<f64>, n: usize, skip: u64, shift: ArrayView1<'_, f64>) -> Array2<f64>

Shifted Halton point set scaled to the supplied box bounds.

The shift is applied in the unit hypercube modulo one, then scaled to the target box. This gives a deterministic replicated design for randomized-QMC style restarts while preserving bounded points.

fn shifted_low_discrepancy_points(bounds: &Bounds<f64>, n: usize, skip: u64, seed: u64) -> Array2<f64>

Deterministically shifted bounded low-discrepancy design.

The supplied seed chooses a reproducible Cranley-Patterson style shift in the unit hypercube. Different seeds give independent replicas of the same underlying low-discrepancy design.