Source code for rpylib.distribution.univariate.uniform

"""Generator for standard uniform random variables

Numpy is used here, the generator returns random floats in the half-open interval [0.0, 1.0)
see https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.random_sample.html#numpy.random.random_sample
"""

import numpy as np
import numpy.random as npr

from ..sampling import Sampling


[docs]class Uniform(Sampling): """Uniform random variate generator"""
[docs] def __init__(self, low: float = 0.0, high: float = 1.0) -> None: super().__init__() self.low = low self.high = high
[docs] def sample(self, size: int = 1) -> np.array: self.sampling_cost += size return npr.uniform(low=self.low, high=self.high, size=size)