def GaussianDistribution(mean, std, a=None, b=None):
if std == .0:
return Distribution.ConstantDistribution(mean)
if a is None and b is None:
# Unbounded Gaussian.
return N(mean, std)
else:
dist = UncertainVariable(ss.truncnorm(
a = -np.inf if a is None else (a - mean) / std,
b = np.inf if b is None else (b - mean) / std,
loc = mean, scale = std))
logging.debug('Distribution -- truncated gaussian: {}, {} [{}, {}]'.format(
dist.mean, np.sqrt(dist.var), a, b))
return dist
评论列表
文章目录