Create a random variable for MultivariateNormalLinearOperator.

See MultivariateNormalLinearOperator for more details.



Original Docstring for Distribution

Construct Multivariate Normal distribution on R^k.

The batch_shape is the broadcast shape between loc and scale arguments.

The event_shape is given by last dimension of the matrix implied by scale. The last dimension of loc (if provided) must broadcast with this.

Recall that covariance = scale @ scale.T.

Additional leading dimensions (if any) will index batches.


  • loc: Floating-point Tensor. If this is set to None, loc is implicitly 0. When specified, may have shape [B1, ..., Bb, k] where b >= 0 and k is the event size.
  • scale: Instance of LinearOperator with same dtype as loc and shape [B1, ..., Bb, k, k].
  • validate_args: Python bool, default False. Whether to validate input with asserts. If validate_args is False, and the inputs are invalid, correct behavior is not guaranteed.
  • allow_nan_stats: Python bool, default True. If False, raise an exception if a statistic (e.g. mean/mode/etc...) is undefined for any batch member If True, batch members with valid parameters leading to undefined statistics will return NaN for this statistic.
  • name: The name to give Ops created by the initializer.


  • ValueError: if scale is unspecified.
  • TypeError: if not scale.dtype.is_floating