#include #include #include #include using namespace std; int main(int argc, char *argv[]){ size_t length = 45; gsl_vector * evalues = gsl_vector_calloc(length); gsl_matrix * evectors = gsl_matrix_calloc(length, length); gsl_eigen_symmv_workspace * w = gsl_eigen_symmv_alloc(length); gsl_matrix * m = gsl_matrix_alloc(length, length); gsl_vector * v = gsl_vector_calloc(length); FILE *f=fopen("/home/wolff/testmatrix.dat","r"); gsl_matrix_fscanf(f,m); fclose(f); for(size_t i = 0; i < length; i++){ for(size_t j = 0; j < length; j++){ cout << gsl_matrix_get(m,i,j) << " "; //if(i==j){ // gsl_matrix_set(m,i,j,1.); //} } cout << endl; } cout << "compute eigensystem" << endl; gsl_eigen_symmv(m, evalues, evectors, w); cout << "computed eigensystem" << endl; gsl_eigen_symmv_sort(evalues, evectors, GSL_EIGEN_SORT_VAL_DESC); gsl_matrix_get_col(v, evectors, 0); for(size_t i = 0; i < length; i++){ cout << gsl_vector_get(v,i) << endl; } for(size_t i = 0; i < length; i++){ cout << "eigenvalues" << gsl_vector_get(evalues,i) << endl; } }