class_docstr: Spherical von Mises distribution.
  
  This implementation combines the direction parameter and concentration
  parameter into a single combined parameter that contains both direction and
  magnitude. The ``value`` arg is represented in cartesian coordinates: it
  must be a normalized 3-vector that lies on the 2-sphere.
  
  See :class:`~pyro.distributions.VonMises` for a 2D polar coordinate cousin
  of this distribution. See :class:`~pyro.distributions.projected_normal` for
  a qualitatively similar distribution but implementing more functionality.
  
  Currently only :meth:`log_prob` is implemented.
  
  :param torch.Tensor concentration: A combined location-and-concentration
      vector. The direction of this vector is the location, and its
      magnitude is the concentration.
code: def __init__(self, concentration, validate_args=None):
      if concentration.dim() < 1 or concentration.shape[-1] != 3:
          raise ValueError(
              "Expected concentration to have rightmost dim 3, actual shape = {}".format(
                  concentration.shape
              )
          )
      self.concentration = concentration
      batch_shape, event_shape = (
          concentration.shape[:-1],
          concentration.shape[-1:],
      )
      super().__init__(
          batch_shape, event_shape, validate_args=validate_args
      )
  
file_path: pyro/pyro/distributions/von_mises_3d.py
imports: import math
  import torch
  from .None import constraints
  from .torch_distribution import TorchDistribution
label_desc: Use image node_id 1 to create a new VonMises3D object from inherited base classes: TorchDistribution with example: obj = VonMises3D(concentration, validate_args)