void test() { TMatrixD m(3,3); m(0,0) = m(1,1) = m(2,2) = 1; m(0,1) = m(1,0) = m(1,2) = m(2,1) = 0.01; m(0,2) = m(2,0) = 0.01; cout << "Initial matrix : " << endl; m.Print(); cout << "Determinant : " << endl; cout << m.Determinant() << endl; TMatrixDEigen mtm(m); TMatrixD eigenVal = mtm.GetEigenValues(); cout << "Eigenvalues (D): " << endl; eigenVal.Print(); TMatrixD eigenVec = mtm.GetEigenVectors(); TMatrixD eigenVecT = mtm.GetEigenVectors(); eigenVecT.T(); cout << "EigenVectors (Q): " << endl; eigenVec.Print(); TMatrixD mCheck = eigenVec*eigenVal*eigenVecT; cout << "Q*D*QT : " << endl; mCheck.Print(); }