latin_hypercube#

exo_skryer.aux_functions.latin_hypercube(key: Array, n_samples: int, n_dim: int, *, scramble: bool = True, dtype=<class 'jax.numpy.float64'>) tuple[Array, Array][source]#

Generate Latin hypercube samples in the unit hypercube [0, 1)^n_dim.

Parameters:
keyArray

JAX PRNG key for random number generation.

n_samplesint

Number of samples to generate. Must be positive.

n_dimint

Number of dimensions for each sample. Must be positive.

scramblebool, optional

If True (default), randomly permutes the stratum assignments for each dimension independently, reducing correlation between dimensions and improving space-filling properties. If False, strata are assigned sequentially without permutation.

dtypedtype, optional

Data type for the output array. Default is jax.numpy.float64.

Returns:
samplesndarray

Generated Latin hypercube samples with shape (n_samples, n_dim). Each value is in the range [0, 1).

keyArray

Updated PRNG key for subsequent random operations.