They do either always a SVD on X0, not on the covariance matrix. This is way more efficient than our version and the way to go. Then, depending on which dimension/N is larger, they reconstruct differently.
Does that make sense?