code: def prox_nuclear(V, alpha):
      r
  
      Usvd, s, Vsvd = sl.promote16(V, fn=np.linalg.svd, full_matrices=False)
      ss = np.maximum(0, s - alpha)
      return np.dot(Usvd, np.dot(np.diag(ss), Vsvd)), ss
docs: r"""Proximal operator of the nuclear norm :cite:`cai-2010-singular`
      with parameter :math:`\alpha`.
  
  
      Parameters
      ----------
      v : array_like
        Input array :math:`V`
      alpha : float
        Parameter :math:`\alpha`
  
      Returns
      -------
      X : ndarray
        Output array
      s : ndarray
        Singular values of `X`