StandardNormal1D#

class hmclab.Distributions.StandardNormal1D(*args, **kwargs)[source]#

Bases: hmclab.Distributions.base._AbstractDistribution

Standard normal distribution in 1 dimension.

__init__(temperature=1.0)[source]#

Methods

__init__

corrector

Correct HMC trajectory.

create_default

generate

gradient

Compute gradient of distribution.

misfit

Compute misfit of distribution.

misfit_bounds

Compute misfit of bounded distribution.

normalize

Normalize distribution.

update_bounds

Update bounded distribution.

Attributes

dimensions

Amount of dimensions on which the distribution is defined

lower_bounds

Lower bounds for every parameter.

mean

Mean of the standard Normal distribution

name

Name of the distribution.

normalized

Boolean describing if the distribution is normalized.

std

Standard deviation of the standard Normal distribution

upper_bounds

Upper bounds for every parameter.

mean = 0.0#

Mean of the standard Normal distribution

std = 1.0#

Standard deviation of the standard Normal distribution

dimensions = 1#

Amount of dimensions on which the distribution is defined

name: str = 'Standard normal distribution in 1 dimension.'#

Name of the distribution.

misfit(m: numpy.ndarray) float[source]#

Compute misfit of distribution.

Method to compute the misfit of a distribution for a given model m. See, hmclab.Distributions._AbstractDistribution.misfit() for details.

gradient(m: numpy.ndarray) numpy.ndarray[source]#

Compute gradient of distribution.

Method to compute the gradient of a distribution for a given model m. See, hmclab.Distributions._AbstractDistribution.gradient() for details.

corrector(coordinates: numpy.ndarray, momentum: numpy.ndarray)#

Correct HMC trajectory.

Method to correct an HMC particle for bounded distributions, which is called after every time integration step.

Parameters
  • coordinates (numpy.ndarray) – Numpy array shaped as (dimensions, 1) representing a column vector containing the coordinates \(\mathbf{m}\) upon which to operate by reference.

  • momentum (numpy.ndarray) – Numpy array shaped as (dimensions, 1) representing a column vector containing the momenta \(\mathbf{p}\) upon which to operate by reference.

misfit_bounds(coordinates: numpy.ndarray) float#

Compute misfit of bounded distribution.

Method to compute the misfit associated with the truncated part of the distribution. Used internally.

normalize()#

Normalize distribution.

Method to compute the normalization constant of a distribution. As this might take significant time, it is not done in initialization.

Raises

AttributeError – An AttributeError is raised if the distribution provides no way to be normalized, e.g. when the normalization constant is intractable.

update_bounds(lower: Optional[numpy.ndarray] = None, upper: Optional[numpy.ndarray] = None)#

Update bounded distribution.

This method updates the bounds of a distribution. Note that invocating it, does not require both bounds to be passed.

If both vectors are passed, ensure that all upper bounds are above the corresponding lower bounds.

Parameters
  • lower (numpy.ndarray or None) – Either an array shaped as (dimensions, 1) with floats for the lower bounds, or None for no bounds. If some dimensions should be bounded, while others should not, use -numpy.inf within the vector as needed.

  • upper (numpy.ndarray or None) – Either an array shaped as (dimensions, 1) with floats for the upper bounds, or None for no bounds. If some dimensions should be bounded, while others should not, use numpy.inf within the vector as needed.

Raises

ValueError – A ValueError is raised if the supplied upper and lower bounds are incompatible.