it's symmetric, the inner loop can be from j to dim.
More substantively: why not just return PV_->covariance() ?