MCPcopy
hub / github.com/hyperopt/hyperopt / logpmf

Method logpmf

hyperopt/rdists.py:195–216  ·  view source on GitHub ↗
(self, x)

Source from the content-addressed store, hash-verified

193 return np.exp(self.logpmf(x))
194
195 def logpmf(self, x):
196 x1 = np.atleast_1d(x)
197 in_domain = self.in_domain(x1)
198 rval = np.zeros_like(x1, dtype=float) - np.inf
199 x_in_domain = x1[in_domain]
200
201 ubound = x_in_domain + self.q * 0.5
202 lbound = x_in_domain - self.q * 0.5
203 # -- reflect intervals right of mu to other side
204 # for more accurate calculation
205 flip = lbound > self.mu
206 tmp = lbound[flip].copy()
207 lbound[flip] = self.mu - (ubound[flip] - self.mu)
208 ubound[flip] = self.mu - (tmp - self.mu)
209
210 assert np.all(ubound > lbound)
211 a = self._norm_logcdf(ubound)
212 b = self._norm_logcdf(lbound)
213 rval[in_domain] = a + np.log1p(-np.exp(b - a))
214 if isinstance(x, np.ndarray):
215 return rval
216 return float(rval)
217
218 def rvs(self, size=()):
219 x = mtrand.normal(loc=self.mu, scale=self.sigma, size=size)

Callers 2

pmfMethod · 0.95
logpMethod · 0.45

Calls 1

in_domainMethod · 0.95

Tested by 1

logpMethod · 0.36