#include #include #include #include "nr.h" using namespace std; void NR::solvde(const int itmax, const DP conv, const DP slowc, Vec_I_DP &scalv, Vec_I_INT &indexv, const int nb, Mat_IO_DP &y) { int ic1,ic2,ic3,ic4,it,j,j1,j2,j3,j4,j5,j6,j7,j8,j9; int jc1,jcf,jv,k,k1,k2,km,kp,nvars; DP err,errj,fac,vmax,vz; int ne=y.nrows(); int m=y.ncols(); Vec_INT kmax(ne); Vec_DP ermax(ne); Mat3D_DP c(ne,ne-nb+1,m+1); Mat_DP s(ne,2*ne+1); k1=0; k2=m; nvars=ne*m; j1=0,j2=nb,j3=nb,j4=ne,j5=j4+j1; j6=j4+j2,j7=j4+j3,j8=j4+j4,j9=j8+j1; ic1=0,ic2=ne-nb,ic3=ic2,ic4=ne; jc1=0,jcf=ic3; for (it=0;it vmax) { vmax=vz; km=k+1; } errj += vz; } err += errj/scalv[j]; ermax[j]=c[jv][0][km-1]/scalv[j]; kmax[j]=km; } err /= nvars; fac=(err > slowc ? slowc/err : 1.0); for (j=0;j