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