Source code for openest.lincombo.multi_uniform
import numpy as np
#from models.multivariate_model import MultivariateModel
from scipy.stats._multivariate import multi_rv_frozen
from scipy.stats import uniform
#class MultivariateUniform(MultivariateModel, multi_rv_frozen):
[docs]class MultivariateUniform(multi_rv_frozen):
def __init__(self, mins, maxs):
#super(MultivariateUniform, self).__init__([False] * len(mins), True)
self.mins = np.array(mins)
self.maxs = np.array(maxs)
# XXX: This doesn't handle size properly
[docs] def rvs(self, size=1, random_state=None):
if size == 1:
return uniform.rvs(self.mins, self.maxs - self.mins, size=len(self.mins), random_state=random_state)
else:
return uniform.rvs(self.mins, self.maxs - self.mins, size=(size, len(self.mins)), random_state=random_state)
[docs] def pdf(self, xxs):
for ii in range(len(xxs)):
if xxs[ii] < self.mins[ii] or xxs[ii] > self.maxs[ii]:
return 0
return 1