aub_htp.random#
Random number generation for Alpha Stable Distributions
|
|
|
|
|
|
|
|
|
|
Spectral Measure Sampler is an interface to define the sampling algorithm for a spectral measure. |
|
|
A scipy-compatible random state generator factory. |
- class aub_htp.random.BaseSpectralMeasureSampler#
Bases:
ABCSpectral Measure Sampler is an interface to define the sampling algorithm for a spectral measure. The underlying mathematical spectral measure \(\Lambda\) has to uphold the following property:
\[\int_{\mathbb{S}^{d-1}}s\Lambda(ds)=0\]To create a custom spectral measure sampler, you need to inherit from this class and implement the following methods:
Example:
class CustomSpectralMeasureSampler(BaseSpectralMeasureSampler): def sample(self, number_of_samples: int, random_state: None | int | np.random.RandomState | np.random.Generator = None) -> np.ndarray: random_state = get_random_state_generator(random_state) return random_state.rand(number_of_samples, self.dimensions()) def dimensions(self) -> int: return 2 def mass(self) -> float: return 1.0
- abstractmethod dimensions() int#
Number of dimensions of the vector space of the spectral measure.
Returns#
dimensions : int
- abstractmethod sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#
Sampling algorithm for the spectral measure sampler.
Parameters#
- number_of_samplesint
The number of samples to draw from the spectral measure.
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling. You are encouraged to use
aub_htp.random.get_random_state_generator()to get a random state generator as such:random_state = get_random_state_generator(random_state)
Returns#
- samplesnp.ndarray
The samples from the spectral measure.
- class aub_htp.random.DiscreteSampler(alpha: float, positions: ndarray, weights: ndarray)#
Bases:
BaseSpectralMeasureSampler- dimensions() int#
Number of dimensions of the vector space of the spectral measure.
Returns#
dimensions : int
- sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#
Sampling algorithm for the spectral measure sampler.
Parameters#
- number_of_samplesint
The number of samples to draw from the spectral measure.
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling. You are encouraged to use
aub_htp.random.get_random_state_generator()to get a random state generator as such:random_state = get_random_state_generator(random_state)
Returns#
- samplesnp.ndarray
The samples from the spectral measure.
- class aub_htp.random.EllipticSampler(number_of_dimensions: int, alpha: float, sigma: ndarray, mass: float | None = None)#
Bases:
BaseSpectralMeasureSampler- dimensions() int#
Number of dimensions of the vector space of the spectral measure.
Returns#
dimensions : int
- sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#
Sampling algorithm for the spectral measure sampler.
Parameters#
- number_of_samplesint
The number of samples to draw from the spectral measure.
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling. You are encouraged to use
aub_htp.random.get_random_state_generator()to get a random state generator as such:random_state = get_random_state_generator(random_state)
Returns#
- samplesnp.ndarray
The samples from the spectral measure.
- class aub_htp.random.IsotropicSampler(number_of_dimensions: int, alpha: float, gamma: float)#
Bases:
BaseSpectralMeasureSampler- dimensions() int#
Number of dimensions of the vector space of the spectral measure.
Returns#
dimensions : int
- sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#
Sampling algorithm for the spectral measure sampler.
Parameters#
- number_of_samplesint
The number of samples to draw from the spectral measure.
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling. You are encouraged to use
aub_htp.random.get_random_state_generator()to get a random state generator as such:random_state = get_random_state_generator(random_state)
Returns#
- samplesnp.ndarray
The samples from the spectral measure.
- class aub_htp.random.MixedSampler(spectral_measures: list[BaseSpectralMeasureSampler], weights: ndarray)#
Bases:
BaseSpectralMeasureSampler- dimensions() int#
Number of dimensions of the vector space of the spectral measure.
Returns#
dimensions : int
- sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#
Sampling algorithm for the spectral measure sampler.
Parameters#
- number_of_samplesint
The number of samples to draw from the spectral measure.
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling. You are encouraged to use
aub_htp.random.get_random_state_generator()to get a random state generator as such:random_state = get_random_state_generator(random_state)
Returns#
- samplesnp.ndarray
The samples from the spectral measure.
- class aub_htp.random.UnivariateSampler(alpha: float, beta: float, gamma: float)#
Bases:
BaseSpectralMeasureSampler- dimensions() int#
Number of dimensions of the vector space of the spectral measure.
Returns#
dimensions : int
- sample(number_of_samples: int, random_state: None | int | RandomState | Generator = None) ndarray#
Sampling algorithm for the spectral measure sampler.
Parameters#
- number_of_samplesint
The number of samples to draw from the spectral measure.
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling. You are encouraged to use
aub_htp.random.get_random_state_generator()to get a random state generator as such:random_state = get_random_state_generator(random_state)
Returns#
- samplesnp.ndarray
The samples from the spectral measure.
- aub_htp.random.get_random_state_generator(random_state: None | int | RandomState | Generator = None) Generator#
A scipy-compatible random state generator factory. This function is used to get a random state generator from a random state.
Parameters#
- random_stateNone | int | np.random.RandomState | np.random.Generator, optional
The random state to use for the sampling.
Returns#
- random_state_generatornp.random.Generator
The random state generator.
- aub_htp.random.sample_alpha_stable_vector(alpha: float, spectral_measure: BaseSpectralMeasureSampler, number_of_samples: int = 1, shift_vector: ndarray = 0, max_number_of_convergence_terms: int = 50000, error: float = 0.01, random_state: None | int | RandomState | Generator = None)#