#include "header.h" int QREvals (gsl_matrix *A,gsl_vector *seigen,int n,float Tol) { ///////////////////////////// allocate int i,j,count,max=1000,ss=0; double tempa0,tempa1,temp0; //get the diagonal element of A and A0 double static error; gsl_matrix *tempA,*invR,*Q,*A0,*S,*AA; //S is used to check the Q and R is right gsl_vector *tau,*a0,*a1,*eigen; tau=gsl_vector_alloc(n); tempA=gsl_matrix_alloc(n,n); invR=gsl_matrix_alloc(n,n); A0=gsl_matrix_alloc(n,n); AA=gsl_matrix_alloc(n,n); S=gsl_matrix_alloc(n,n); Q=gsl_matrix_alloc(n,n); gsl_matrix_set_all(S,0.0); a0=gsl_vector_alloc(n); a1=gsl_vector_alloc(n); eigen=gsl_vector_alloc(n); for(count=0;count