#include <iostream.h>
#include <math.h>

#include "swap.h"
#include "array.h"
#include "vector.h"
#include "matrix.h"
#include "eigensys.h"

int main() {

Matrix a;
cout << "Enter a symmetric matrix...";
cin >> a;
cout << a;
int do_evec;
cout << "Enter 0 or 1 (1 for eigenvectors)...";
cin >> do_evec;
Vector ev; Matrix q = identitymatrix(a.rows,a.cols);
if (!evecsymmhql(a,ev,q,do_evec)) cerr << "e-prob: max iterations!\n";
cout << "e-vals:" << ev;
if (do_evec) {
   cout << "e-vecs:" << q;
   Vector v(ev.n);
   for (int i=0;i<ev.n;i++) {
      cout << "checking " << i << ":\n";
      for (int j=0;j<ev.n;j++) v[j] = q[j][i];
      Vector v1 = a * v;
      cout << "a.v=" << v1;
      Vector v2 = v1 / ev[i];
      cout << "a.v/e[i]=" << v2;
   }
}
return 0;
}
