From 04902daf1ed4b31a241d4040e3cbb90d9171a408 Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Fri, 18 May 2018 13:01:21 +1000 Subject: [PATCH] add uniform in log prior, reformat uniform prior --- tupak/prior.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/tupak/prior.py b/tupak/prior.py index a46430fdb..a1c8665ac 100644 --- a/tupak/prior.py +++ b/tupak/prior.py @@ -123,23 +123,6 @@ class Prior(object): return label -class Uniform(Prior): - """Uniform prior""" - - def __init__(self, minimum, maximum, name=None, latex_label=None): - Prior.__init__(self, name, latex_label, minimum, maximum) - self.support = maximum - minimum - - def rescale(self, val): - Prior.test_valid_for_rescaling(val) - return self.minimum + val * self.support - - def prob(self, val): - """Return the prior probability of val""" - in_prior = (val >= self.minimum) & (val <= self.maximum) - return 1 / self.support * in_prior - - class DeltaFunction(Prior): """Dirac delta function prior, this always returns peak.""" @@ -191,6 +174,24 @@ class PowerLaw(Prior): - self.minimum ** (1 + self.alpha))) * in_prior +class Uniform(PowerLaw): + """Uniform prior""" + + def __init__(self, minimum, maximum, name=None, latex_label=None): + Prior.__init__(self, name, latex_label, minimum, maximum) + self.alpha = 0 + + +class LogUniform(PowerLaw): + """Uniform prior""" + + def __init__(self, minimum, maximum, name=None, latex_label=None): + Prior.__init__(self, name, latex_label, minimum, maximum) + self.alpha = -1 + if self.minimum<=0: + logging.warning('You specified a uniform-in-log prior with minimum={}'.format(self.minimum)) + + class Cosine(Prior): def __init__(self, name=None, latex_label=None, minimum=-np.pi / 2, maximum=np.pi / 2): -- GitLab