diff --git a/tupak/core/result.py b/tupak/core/result.py index d5da239e248b40c91b85fe88bc4d3e7ebd85c195..a5440ef102de95df6985299feef642ca1a12421f 100644 --- a/tupak/core/result.py +++ b/tupak/core/result.py @@ -54,13 +54,18 @@ class Result(dict): def __repr__(self): """Print a summary """ if hasattr(self, 'samples'): - return ("nsamples: {:d}\n" - "log_noise_evidence: {:6.3f}\n" - "log_evidence: {:6.3f} +/- {:6.3f}\n" - "log_bayes_factor: {:6.3f} +/- {:6.3f}\n" - .format(len(self.samples), self.log_noise_evidence, self.log_evidence, - self.log_evidence_err, self.log_bayes_factor, - self.log_evidence_err)) + if hasattr(self, 'log_noise_evidence'): + return ("nsamples: {:d}\n" + "log_noise_evidence: {:6.3f}\n" + "log_evidence: {:6.3f} +/- {:6.3f}\n" + "log_bayes_factor: {:6.3f} +/- {:6.3f}\n" + .format(len(self.samples), self.log_noise_evidence, self.log_evidence, + self.log_evidence_err, self.log_bayes_factor, + self.log_evidence_err)) + else: + return ("nsamples: {:d}\n" + "log_evidence: {:6.3f} +/- {:6.3f}\n" + .format(len(self.samples), self.log_evidence, self.log_evidence_err)) else: return '' diff --git a/tupak/core/sampler.py b/tupak/core/sampler.py index 2ea3ad08cd7dcc5f77b472bd5442d781f1872bbc..5e2d26e0f2fba9872d8b345f51f6233504647ac4 100644 --- a/tupak/core/sampler.py +++ b/tupak/core/sampler.py @@ -574,12 +574,14 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', else: result = sampler._run_external_sampler() - result.log_noise_evidence = likelihood.noise_log_likelihood() if sampler.use_ratio: + result.log_noise_evidence = likelihood.noise_log_likelihood() result.log_bayes_factor = result.log_evidence result.log_evidence = result.log_bayes_factor + result.log_noise_evidence else: - result.log_bayes_factor = result.log_evidence - result.log_noise_evidence + if likelihood.noise_log_likelihood() is not np.nan: + result.log_noise_evidence = likelihood.noise_log_likelihood() + result.log_bayes_factor = result.log_evidence - result.log_noise_evidence if injection_parameters is not None: result.injection_parameters = injection_parameters if conversion_function is not None: