class liesel.distributions.mvn_degen.MultivariateNormalDegenerate(loc, prec, rank=None, log_pdet=None, validate_args=False, allow_nan_stats=True, name='MultivariateNormalDegenerate')[source]#

Bases: tensorflow_probability.substrates.jax.distributions.distribution.Distribution

A potentially degenerate multivariate normal distribution.

Provides the alternative constructor from_penalty().

  • loc (Any) – The location (= mean) vector.

  • prec (Any) – The precision matrix (= a pseudo-inverse of the variance-covariance matrix).

  • rank (Union[Any, int, None]) – The rank of the precision matrix. Optional. (default: None)

  • log_pdet (Union[Any, float, None]) – The log-pseudo-determinant of the precision matrix. Optional. (default: None)

  • validate_args (bool) – Python bool, default False. When True, distribution parameters are checked for validity despite possibly degrading runtime performance. When False, invalid inputs may silently render incorrect outputs. (default: False)

  • allow_nan_stats (bool) – Python bool, default True. When True, statistics (e.g., mean, mode, variance) use the value NaN to indicate the result is undefined. When False, an exception is raised if one or more of the statistic’s batch members are undefined. (default: True)

  • name (str) – Python str, name prefixed to Ops created by this class. (default: 'MultivariateNormalDegenerate')


If they are not provided as arguments, the constructor computes rank and log_pdet based on the eigenvalues of the precision matrix prec. This is an expensive operation and can be avoided by specifying the corresponding arguments.


This has only inherited attributes from another library. Please refer to the original documentation.

from_penalty(loc, var, pen[, rank, ...])

Alternative constructor based on a penalty matrix and an inverse smoothing parameter.