// Validity test for 7x7 eigenvalues #include #include "CovMatrices/CovMatrix.h" using namespace CovMatrices; using namespace std; double D[] = {5., 4., 7., 3., 3., 5., 2., 2., 2., 6., 1., 1., 1., 1., 3., 2., 1., 1., 2., 2., 7., 1., 3., 2., 2., 1., 3., 6.}; vector d(28); vector V; vector W(7); vector < vector > VV; CovMatrix C; double det, det2; int i; int main() { for (i = 0; i < 28; i++) d[i] = D[i]; C = d; cout << C; cout << (det = C.determinant()) << std::endl; C.diagonalize(V); CovMatrix::printv(cout,V); cout << "*** " << V[0]*V[1]*V[2]*V[3]*V[4]*V[5]*V[6] << " ***" << std::endl; C.diagonalize(V,VV); CovMatrix::printv(cout,V); cout << "*** " << V[0]*V[1]*V[2]*V[3]*V[4]*V[5]*V[6] << " ***" << std::endl; cout << C; for (int i = 0; i < 7; i++) { cout << "*** " << i << " *** " << V[i] << " ***" << std::endl; CovMatrix::printv(cout , VV[i]); CovMatrix::printv(cout , C*VV[i] ); for (int j = 0; j < 7; j++) W[j] = V[i]*VV[i][j]; CovMatrix::printv(cout , W ); } C.invert(); cout << C; cout << (det2 = C.determinant()) << std::endl; cout << det*det2 << std::endl; return 0; }