Pseudoinverse of singular matrix

TDecompSVD can manipulate singular matrices.

Try:

TDecompSVD covMatrixSVD(covMatrix); // covMatrix is a TMatrixD or a TMatrixDSym
covMatrixSVD.Print();
Double_t d1, d2;
covMatrixSVD.Det(d1, d2);
cout << "determinant = " << d1 * TMath::Power(2., d2) << endl;