eigenvalue decomposition for Hermitian and symmetric matrices.
 "torch.linalg.svd()" for a function that computes another type of
 spectral decomposition that works on matrices of any shape.

 "torch.linalg.qr()" for another (much faster) decomposition that
 works on matrices of any shape.

Parameters:
      A (Tensor) -- tensor of shape (, n, n)* where *** is
      zero or more batch dimensions consisting of diagonalizable
      matrices.
Keyword Arguments:
      out (tuple, optional) -- output tuple of two tensors.
      Ignored if None. Default: None.
Returns:
      A named tuple (eigenvalues, eigenvectors) which corresponds to
      \Lambda and V above.
  *eigenvalues* and *eigenvectors* will always be complex-valued,
  even when "A" is real. The eigenvectors will be given by the
  columns of *eigenvectors*.

Examples:
  >>> A = torch.randn(2, 2, dtype=torch.complex128)
  >>> A
