From d0a13c2d4d1129bc04dfd540ec6f071a8731fa61 Mon Sep 17 00:00:00 2001
From: Gregory Ashton <gregory.ashton@ligo.org>
Date: Wed, 22 Mar 2023 02:18:37 +0000
Subject: [PATCH] BUGFIX: Resolve "Some MCMC proposals with non-trivial
 boundaries breaks detailed balance"

---
 bilby/bilby_mcmc/proposals.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/bilby/bilby_mcmc/proposals.py b/bilby/bilby_mcmc/proposals.py
index 29c40d057..90e2f567d 100644
--- a/bilby/bilby_mcmc/proposals.py
+++ b/bilby/bilby_mcmc/proposals.py
@@ -131,7 +131,8 @@ class BaseProposal(object):
 
     def __call__(self, chain):
         sample, log_factor = self.propose(chain)
-        sample = self.apply_boundaries(sample)
+        if log_factor == 0:
+            sample = self.apply_boundaries(sample)
         return sample, log_factor
 
     @abstractmethod
@@ -945,7 +946,8 @@ class EnsembleProposal(BaseProposal):
 
     def __call__(self, chain, chain_complement):
         sample, log_factor = self.propose(chain, chain_complement)
-        sample = self.apply_boundaries(sample)
+        if log_factor == 0:
+            sample = self.apply_boundaries(sample)
         return sample, log_factor
 
 
-- 
GitLab