diff --git a/cosmosis/samplers/nautilus/nautilus_sampler.py b/cosmosis/samplers/nautilus/nautilus_sampler.py index 2318e043..3ebb9880 100644 --- a/cosmosis/samplers/nautilus/nautilus_sampler.py +++ b/cosmosis/samplers/nautilus/nautilus_sampler.py @@ -100,15 +100,22 @@ def execute(self): verbose=self.verbose) results = sampler.posterior(return_blobs=True) - posts = results[2] + results[3][:, 0] + if isinstance(results[3][0], float): + priors = results[3] + else: + priors = np.array([r[0] for r in results[3]]) + + posts = results[2] + priors self.distribution_hints.set_from_sample(results[0], posts, log_weights=results[1]) for sample, logwt, logl, blob in zip(*results): - blob = np.atleast_1d(blob) - prior = blob[0] - extra = blob[1:] - logp = logl + prior - self.output.parameters(sample, extra, logwt, prior, logp) + if isinstance(blob, float): + prior = blob + self.output.parameters(sample, logwt, prior, logl + prior) + else: + prior = blob[0] + extra = list(blob)[1:] + self.output.parameters(sample, extra, logwt, prior, logl + prior) self.output.final("efficiency", sampler.n_eff / sampler.n_like) self.output.final("neff", sampler.n_eff)