#include <string.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
using namespace std;

#include "matrix_2.h"
using namespace math;

#include "eigen.cpp"

int main(){
  cout<<setprecision(7); cout<<fixed;
  const int n = 5; int niter;
  matrix<double> A(n,n);
  fstream Af;
  Af.open("A_practica11.txt",fstream::in);
  Af>>A;
  double eps = 1.E-7; matrix<double> eigenval(n,1), eigenvect(n,n);

  eigen(A,eps,eigenval,eigenvect,niter);
  cout<<"Eigen. N itera = "<<niter<<endl;
  cout<<"Autovalores: \n"<<eigenval<<endl;
  cout<<"\n Autovectores: \n"<<eigenvect<<endl;

  cout<<"check results"<<endl;
  matrix<double> v(n,1);
  for(int k=0;k<n;k+=1){
    for(int i=0;i<n;i+=1) v(i,0) = eigenvect(i,k);
    cout<<k<<"\n"<<A*v - eigenval(k,0)*v<<endl;
  }
  
  
  
}
