torch.linalg.svd
torch.linalg.svd(A, full_matrices=True, *, driver=None, out=None)
Computes the singular value decomposition (SVD) of a matrix.
Letting \mathbb{K} be \mathbb{R} or \mathbb{C}, the full SVD of
   a matrix A \in \mathbb{K}^{m \times n}, if k = min(m,n), is
   defined as
  A = U \operatorname{diag}(S) V^{\text{H}} \mathrlap{\qquad U \in
  \mathbb{K}^{m \times m}, S \in \mathbb{R}^k, V \in \mathbb{K}^{n
  \times n}}

where \operatorname{diag}(S) \in \mathbb{K}^{m \times n},
   V^{\text{H}} is the conjugate transpose when V is complex, and the
   transpose when V is real-valued. The matrices  U, V (and thus
   V^{\text{H}}) are orthogonal in the real case, and unitary in the
   complex case.
When m > n (resp. m < n) we can drop the last m - n (resp. n
   - m) columns of U (resp. V) to form the reduced SVD:
  A = U \operatorname{diag}(S) V^{\text{H}} \mathrlap{\qquad U \in
