From bb5144f999458d4db0d737cc2a4215bf1fafd0a4 Mon Sep 17 00:00:00 2001 From: Gregory Ashton <gregory.ashton@ligo.org> Date: Tue, 22 May 2018 10:38:17 +1000 Subject: [PATCH] Use either lnprobs or probs --- tupak/likelihood.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tupak/likelihood.py b/tupak/likelihood.py index 9b3811cde..0175ffc6f 100644 --- a/tupak/likelihood.py +++ b/tupak/likelihood.py @@ -168,8 +168,22 @@ class HyperparameterLikelihood(): self.hyper_prior = hyper_prior self.run_prior = run_prior self.parameters = parameters + if hasattr(hyper_prior, 'lnprob') and hasattr(run_prior, 'lnprob'): + logging.info("Using log-probabilities in likelihood") + self.log_likelihood = self.log_likelihood_using_lnprob + else: + logging.info("Using probabilities in likelihood") + self.log_likelihood = self.log_likelihood_using_prob - def log_likelihood(self): + def log_likelihood_using_prob(self): + L = [] + self.hyper_prior.__dict__.update(self.parameters) + for samp in self.samples: + f = self.hyper_prior.lnprob(samp) - self.run_prior.lnprob(samp) + L.append(logsumexp(f)) + return np.sum(L) + + def log_likelihood_using_lnprob(self): L = [] self.hyper_prior.__dict__.update(self.parameters) for samp in self.samples: -- GitLab