diff --git a/tupak/core/sampler.py b/tupak/core/sampler.py index 58fd9d6fd717e8cd7f9aef96439c996cfee0de7e..06412bf7584a2b4fffada00c37d6d2706b684a30 100644 --- a/tupak/core/sampler.py +++ b/tupak/core/sampler.py @@ -190,9 +190,7 @@ class Sampler(object): return self.priors.rescale(self.__search_parameter_keys, theta) def log_prior(self, theta): - return np.sum( - [np.log(self.priors[key].prob(t)) for key, t in - zip(self.__search_parameter_keys, theta)]) + return self.priors.ln_prob({key: t for key, t in zip(self.__search_parameter_keys, theta)}) def log_likelihood(self, theta): for i, k in enumerate(self.__search_parameter_keys): @@ -212,8 +210,7 @@ class Sampler(object): """ - draw = np.array([self.priors[key].sample() - for key in self.__search_parameter_keys]) + draw = np.array(self.priors.sample_subset(self.__search_parameter_keys).items()) if np.isinf(self.log_likelihood(draw)): logging.info('Prior draw {} has inf likelihood'.format(draw)) if np.isinf(self.log_prior(draw)):