Skip to content
Snippets Groups Projects

Resolve #430 (Add normalisation flag to constrained prior)

Merged Resolve #430 (Add normalisation flag to constrained prior)
All threads resolved!
Merged Bruce Edelman requested to merge bruce.edelman/bilby:constraint into master
All threads resolved!
1 file
+ 14
4
Compare changes
  • Side-by-side
  • Inline
+ 14
4
@@ -3,7 +3,7 @@ from io import open as ioopen
import json
import numpy as np
import os
from functools import lru_cache
from methodtools import lru_cache
from future.utils import iteritems
from matplotlib.cbook import flatten
@@ -388,7 +388,7 @@ class PriorDict(dict):
while np.count_nonzero(keep) < min_accept:
new_samples = self.sample_subset(keys=keys, size=sampling_chunk)
for key in samples:
samples[key] = np.concatenate(samples[key], new_samples[key])
samples[key] = np.hstack([samples[key], new_samples[key]])
keep = np.array(self.evaluate_constraints(samples))
return len(keep) / np.count_nonzero(keep)
@@ -410,7 +410,8 @@ class PriorDict(dict):
prob = np.product([self[key].prob(sample[key])
for key in sample], **kwargs)
ratio = self.normalize_constraint_factor(sample.keys())
ratio = self.normalize_constraint_factor(tuple(sample.keys()))
#print("ratio = {}".format(ratio))
if np.all(prob == 0.):
return prob
else:
@@ -444,7 +445,7 @@ class PriorDict(dict):
ln_prob = np.sum([self[key].ln_prob(sample[key])
for key in sample], axis=axis)
ratio = self.normalize_constraint_factor(sample.keys())
ratio = self.normalize_constraint_factor(tuple(sample.keys()))
if np.all(np.isinf(ln_prob)):
return ln_prob
else:
@@ -506,6 +507,15 @@ class PriorDict(dict):
"""
return self.__class__(dictionary=dict(self))
def __key(self):
return tuple((k, self[k]) for k in sorted(self))
def __hash__(self):
return hash(self.__key())
def __eq__(self, other):
return self.__key() == other.__key()
class PriorSet(PriorDict):
Loading