#include #include #include #include "sgeev.cc" #include "dgemm.cc" #define DBG 0 /* CODING: need to: 0. set up chebychev spacing grid Te[i] 1. set up the matrixes for De=>DD=>A. 2. solve for eigenvalues, and eigenvectors. */ double De[130][130],Dee[130][130],DD[130][130]; float A[130][130]; double *Te,te[521]; double so=1.; void cheby(double a,double b,int n, double ti[]) { int i,j; for (i=0;i<=n;i++) ti[i]=a+(1+cos(M_PI*(i*1./n-1.)))*(b-a)/2; } void make_Te(int dim) { cheby(-so,so,dim+1,te); Te=&(te[1]); } void make_D(int); /* makes the spectral deriv matrix */ void make_DD(int dim) /* makes the spec 2nd deriv matrix */ { int i; make_D(dim); dgemmSimple dgemmy(dim); dgemmy.mul(De,Dee,DD); } /* a is the chopped off (by 2 dim's) DD matrix */ void make_A(int dim) { int i,j; make_DD(dim+2); for (i=0;i