class_docstr: Non-normalized Gaussian distribution.
  
  This represents an arbitrary semidefinite quadratic function, which can be
  interpreted as a rank-deficient scaled Gaussian distribution. The precision
  matrix may have zero eigenvalues, thus it may be impossible to work
  directly with the covariance matrix.
  
  :param torch.Tensor log_normalizer: a normalization constant, which is mainly used to keep
      track of normalization terms during contractions.
  :param torch.Tensor info_vec: information vector, which is a scaled version of the mean
      ``info_vec = precision @ mean``. We use this represention to make gaussian contraction
      fast and stable.
  :param torch.Tensor precision: precision matrix of this gaussian.
class_docstr_tok: ["Non-normalized","Gaussian","distribution",".","This","represents","an","arbitrary","semidefinite","quadratic","function",",","which","can","be","interpreted","as","a","rank-deficient","scaled","Gaussian","distribution",".","The","precision","matrix","may","have","zero","eigenvalues",",","thus","it","may","be","impossible","to","work","directly","with","the","covariance","matrix",".",":","param","torch.Tensor","log_normalizer",":","a","normalization","constant",",","which","is","mainly","used","to","keep","track","of","normalization","terms","during","contractions",".",":","param","torch.Tensor","info_vec",":","information","vector",",","which","is","a","scaled","version","of","the","mean","``","info_vec","=","precision","@","mean","``",".","We","use","this","represention","to","make","gaussian","contraction","fast","and","stable",".",":","param","torch.Tensor","precision",":","precision","matrix","of","this","gaussian","."]
code: def __sub__(
      self, other: Union["Gaussian", int, float, torch.Tensor]
  ) -> "Gaussian":
      if isinstance(other, (int, float, torch.Tensor)):
          return Gaussian(
              self.log_normalizer - other, self.info_vec, self.precision
          )
      raise ValueError("Unsupported type: {}".format(type(other)))
  
imports: import math
  from typing import Optional, Tuple, Union
  import torch
  from torch.distributions.utils import lazy_property
  from torch.nn.functional import pad
  from pyro.distributions.util import broadcast_shape
  from pyro.ops.tensor_utils import matmul, matvecmul, safe_cholesky, triangular_solve
label_desc: Use image node_id 11 for calling the Gaussian obj's underlying member method code with example usage: obj.__sub__(other) and returns: Gaussian