close to zero, the gradient will be numerically unstable, as it
     depends on the singular values \sigma_i through the computation
     of \frac{1}{\min_{i \neq j} \sigma_i^2 - \sigma_j^2}. In the
     rectangular case, the gradient will also be numerically unstable
     when "A" has small singular values, as it also depends on the
     computation of \frac{1}{\sigma_i}.
See also:
 "torch.linalg.svdvals()" computes only the singular values.
 Unlike "torch.linalg.svd()", the gradients of "svdvals()" are
 always numerically stable.

 "torch.linalg.eig()" for a function that computes another type of
 spectral decomposition of a matrix. The eigendecomposition works
 just on square matrices.

 "torch.linalg.eigh()" for a (faster) function that computes the
 eigenvalue decomposition for Hermitian and symmetric matrices.

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

Parameters: