Source code for shamo.core.distributions.uniform
"""Implement `DistUniform` class."""
from .abc import DistABC
import chaospy as chaos
[docs]class DistUniform(DistABC):
"""A uniform distribution.
Parameters
----------
lower : float
The lower bound of the distribution.
upper : float
The upper bound of the distribution.
"""
def __init__(self, lower, upper):
super().__init__(self.TYPE_UNIFORM)
self.update({"lower": lower, "upper": upper})
@property
def lower(self):
"""Return the lower bound of the distribution.
Returns
-------
float
The lower bound of the distribution.
"""
return self["lower"]
@property
def upper(self):
"""Return the upper bound of the distribution.
Returns
-------
float
The upper bound of the distribution.
"""
return self["upper"]
@property
def dist(self):
"""Return the actual distribution.
Returns
-------
chaospy.Uniform
The actual distribution.
"""
return chaos.Uniform(self.lower, self.upper)
@property
def uniform_dist(self):
"""Return a uniform distribution used for sampling.
Returns
-------
chaospy.Uniform
The uniform distribution.
"""
return self.dist
@property
def salib_name(self):
"""Return the name of the distribution in SALib.
Returns
-------
str
The name of the distribution in SALib.
"""
return "unif"
@property
def salib_bounds(self):
"""Return the bounds of the distribution in SALib.
Returns
-------
list [float]
The bounds of the distribution in SALib.
"""
return [self.lower, self.upper]