Takes a matrix in some low-rank form XY^T and return the SVD (USV^T) for a desired tolerance.