void G_to_Eigen(Vector& GV, Eigen::VectorXd* _EigenV) { Eigen::VectorXd& EigenV = *_EigenV; EigenV.resize(GV.Length()); for(int i=0; i<GV.Length(); i++) EigenV(i) = GV[i]; }
int main() { int n, MAXN, m, i, j, k; double a[MAX_SIZE][MAX_SIZE], v[MAX_SIZE]; double lambda, TOL; while (scanf("%d", &n) != EOF) { for (i=0; i<n; i++) for (j=0; j<n; j++) scanf("%lf", &a[i][j]); scanf("%lf %d", &TOL, &MAXN); scanf("%d", &m); for (i=0; i<m; i++) { scanf("%lf", &lambda); for (j=0; j<n; j++) scanf("%lf", &v[j]); switch (EigenV(n, a, &lambda, v, TOL, MAXN)) { case -1: printf("%12.8f is an eigenvalue.\n", lambda ); break; case 0: printf("Maximum number of iterations exceeded.\n"); break; case 1: printf("%12.8f\n", lambda ); for (k=0; k<n; k++) printf("%12.8f ", v[k]); printf("\n"); break; } } printf("\n"); } return 0; }