different hardware and software may compute different singular
     vectors.This non-uniqueness is caused by the fact that
     multiplying any pair of singular vectors u_k, v_k by -1 in the
     real case or by e^{i \phi}, \phi \in \mathbb{R} in the complex
     case produces another two valid singular vectors of the matrix.
     For this reason, the loss function shall not depend on this e^{i
     \phi} quantity, as it is not well-defined. This is checked for
     complex inputs when computing the gradients of this function. As
     such, when inputs are complex and are on a CUDA device, the
     computation of the gradients of this function synchronizes that
     device with the CPU.
Warning:
 Gradients computed using *U* or *Vh* will only be finite when "A"
 does not have repeated singular values. If "A" is rectangular,
 additionally, zero must also not be one of its singular values.
 Furthermore, if the distance between any two singular values is
