bilby.gw.prior.AlignedSpin

class bilby.gw.prior.AlignedSpin(a_prior=Uniform(minimum=0, maximum=1, name=None, latex_label=None, unit=None, boundary=None), z_prior=Uniform(minimum=-1, maximum=1, name=None, latex_label=None, unit=None, boundary=None), name=None, latex_label=None, unit=None, boundary=None, minimum=nan, maximum=nan)[source]

Bases: Interped

Prior distribution for the aligned (z) component of the spin.

This takes prior distributions for the magnitude and cosine of the tilt and forms a compound prior using a numerical convolution integral.

\[\pi(\chi) = \int_{0}^{1} da \int_{-1}^{1} d\cos\theta \pi(a) \pi(\cos\theta) \delta(\chi - a \cos\theta)\]

This is useful when using aligned-spin only waveform approximants.

This is an extension of e.g., (A7) of https://arxiv.org/abs/1805.10457.

__init__(a_prior=Uniform(minimum=0, maximum=1, name=None, latex_label=None, unit=None, boundary=None), z_prior=Uniform(minimum=-1, maximum=1, name=None, latex_label=None, unit=None, boundary=None), name=None, latex_label=None, unit=None, boundary=None, minimum=nan, maximum=nan)[source]
Parameters:
a_prior: Prior

Prior distribution for spin magnitude

z_prior: Prior

Prior distribution for cosine spin tilt

name: see superclass
latex_label: see superclass
unit: see superclass
__call__()[source]

Overrides the __call__ special method. Calls the sample method.

Returns:
float: The return value of the sample method.

Methods

__init__([a_prior, z_prior, name, ...])

cdf(val)

Generic method to calculate CDF, can be overwritten in subclass

from_json(dct)

from_repr(string)

Generate the prior from its __repr__

get_instantiation_dict()

is_in_prior_range(val)

Returns True if val is in the prior boundaries, zero otherwise

ln_prob(val)

Return the prior ln probability of val, this should be overwritten

prob(val)

Return the prior probability of val.

rescale(val)

'Rescale' a sample from the unit line element to the prior.

sample([size])

Draw a sample from the prior

to_json()

Attributes

boundary

is_fixed

Returns True if the prior is fixed and should not be used in the sampler.

latex_label

Latex label that can be used for plots.

latex_label_with_unit

If a unit is specified, returns a string of the latex label and unit

maximum

Return maximum of the prior distribution.

minimum

Return minimum of the prior distribution.

unit

width

yy

Return p(xx) values of the interpolated prior function.

cdf(val)[source]

Generic method to calculate CDF, can be overwritten in subclass

classmethod from_repr(string)[source]

Generate the prior from its __repr__

property is_fixed

Returns True if the prior is fixed and should not be used in the sampler. Does this by checking if this instance is an instance of DeltaFunction.

Returns:
bool: Whether it’s fixed or not!
is_in_prior_range(val)[source]

Returns True if val is in the prior boundaries, zero otherwise

Parameters:
val: Union[float, int, array_like]
Returns:
np.nan
property latex_label

Latex label that can be used for plots.

Draws from a set of default labels if no label is given

Returns:
str: A latex representation for this prior
property latex_label_with_unit

If a unit is specified, returns a string of the latex label and unit

ln_prob(val)[source]

Return the prior ln probability of val, this should be overwritten

Parameters:
val: Union[float, int, array_like]
Returns:
np.nan
property maximum

Return maximum of the prior distribution.

Updates the prior distribution if maximum is set to a different value.

Yields an error if value is set above instantiated x-array maximum.

Returns:
float: Maximum of the prior distribution
property minimum

Return minimum of the prior distribution.

Updates the prior distribution if minimum is set to a different value.

Yields an error if value is set below instantiated x-array minimum.

Returns:
float: Minimum of the prior distribution
prob(val)[source]

Return the prior probability of val.

Parameters:
val: Union[float, int, array_like]
Returns:
Union[float, array_like]: Prior probability of val
rescale(val)[source]

‘Rescale’ a sample from the unit line element to the prior.

This maps to the inverse CDF. This is done using interpolation.

sample(size=None)[source]

Draw a sample from the prior

Parameters:
size: int or tuple of ints, optional

See numpy.random.uniform docs

Returns:
float: A random number between 0 and 1, rescaled to match the distribution of this Prior
property yy

Return p(xx) values of the interpolated prior function.

Updates the prior distribution if it is changed

Returns:
array_like: p(xx) values