

If "A" is tall or wide (m >> n or m << n): 'gesvda'
       (Approximate method)


If "A" is not well-conditioned or precision is relevant:
     'gesvd' (QR based)


By default ("driver"= None), we call 'gesvdj' and, if it fails,
   we fallback to 'gesvd'.
Differences with numpy.linalg.svd:

Unlike numpy.linalg.svd, this function always returns a tuple
     of three tensors and it doesn't support compute_uv argument.
     Please use "torch.linalg.svdvals()", which computes only the
     singular values, instead of compute_uv=False.

Note:
 When "full_matrices"*= True*, the gradients with respect to
 *U[..., :, min(m, n):]* and *Vh[..., min(m, n):, :]* will be
 ignored, as those vectors can be arbitrary bases of the
 corresponding subspaces.

Warning:
 The returned tensors *U* and *V* are not unique, nor are they
 continuous with respect to "A". Due to this lack of uniqueness,
