Vectorized parameter space definition.
A ParameterSpace holds an ordered list of Parameter instances and provides vectorized operations on (N, D) sample arrays including sampling, scale transforms, prior evaluation, and bounds checking.
- class cosmic.sample.stroopwafel.parameter_space.Parameter(name: str, min_value: float, max_value: float, dist: str | Distribution = 'uniform')[source]¶
Bases:
objectA single dimension in the parameter space.
- Parameters:
- namestr
Name of the parameter (used for column ordering).
- min_valuefloat
Lower bound, always in physical space (e.g. solar masses for
'kroupa', days for'sana', km/s for'disberg'). The parameter’s distribution maps this into sampling space via its transform.- max_valuefloat
Upper bound, in physical space (same convention as
min_value).- diststr or ~cosmic.sample.stroopwafel.distributions.Distribution, optional
The prior distribution, given either as a name registered in
DISTRIBUTIONS(e.g.'kroupa','sana','flat_in_log') or as aDistributioninstance for custom priors. By default'uniform'.
- Attributes:
- distributionDistribution
The resolved distribution instance.
- lo, hifloat
The bounds in sampling space (
min_value/max_valuepassed throughdistribution.transform).
- dist: str | Distribution = 'uniform'[source]¶
- class cosmic.sample.stroopwafel.parameter_space.ParameterSpace(params)[source]¶
Bases:
objectAn ordered collection of Parameters with vectorized operations.
All methods operate on (N, D) numpy arrays whose columns follow the order in which the parameters were supplied.
- Parameters:
- paramslist of Parameter
List of parameter definitions. The column order of every (N, D) array produced by this class matches the order of this list.
- compute_prior(samples)[source]¶
Compute the prior probability for each row.
The joint prior is the product of the marginal priors across all dimensions.
- Parameters:
- samplesnumpy.ndarray
(N, D) array in sampling space.
- Returns:
- numpy.ndarray
(N,) array of prior probabilities.
- compute_sigma(hit_samples, average_density_one_dim)[source]¶
Compute per-hit, per-dimension Gaussian widths (sigma).
- Parameters:
- hit_samplesnumpy.ndarray
(K, D) array of hit locations in sampling space.
- average_density_one_dimfloat
Characteristic inter-sample spacing, typically
1 / num_explored ** (1 / D).
- Returns:
- numpy.ndarray
(K, D) array of sigma values.
- idx(name)[source]¶
Get the column index for a parameter by name.
- Parameters:
- namestr
Parameter name.
- Returns:
- int
Column index in the (N, D) sample arrays.
- in_bounds(samples)[source]¶
Check which rows of an (N, D) array are within parameter bounds.
- Parameters:
- samplesnumpy.ndarray
(N, D) array of samples in sampling space.
- Returns:
- numpy.ndarray
(N,) boolean mask where True means the sample is in bounds.
- sample(n, rng=None)[source]¶
Draw n samples from the prior distribution.
- Parameters:
- nint
Number of samples to draw.
- rngnumpy.random.Generator, optional
Random number generator, by default None
- Returns:
- samplesnumpy.ndarray
(N, D) array of samples in sampling space.
- masknumpy.ndarray
(N,) boolean array indicating which samples are in bounds.