#include #include #include #include #include #include #include using namespace std; #include typedef vector PDoubleVector; #define PI 3.14159265359 // NR p.797 void voltra(const double h, PDoubleVector &t, PDoubleVector ¶m, PDoubleVector &f, double g(const int, const PDoubleVector &, const PDoubleVector &, const PDoubleVector &), PDoubleVector &gi) { int i,j; double sum; int n = f.size(); double a; t[0] = 0.0; f[0]=g(0,t,param,gi); for (i=1; i(val); // nu/Delta criteria if (param[1] != 0.0) { // Delta != 0 val = param[2]/param[1]; // nu/Delta if (val > 5.0) { useKeren = true; N = 3000; } } } if (argc > 4) { if (*argv[4] == 'L') { gaussian = false; } } char fln[128]; if (gaussian) snprintf(fln, sizeof(fln), "dynKT_LF_w0_%1.1f_width%1.1f_nu%1.1f_N%d_G.dat", param[0], param[1], param[2], N); else snprintf(fln, sizeof(fln), "dynKT_LF_w0_%1.1f_width%1.1f_nu%1.1f_N%d_L.dat", param[0], param[1], param[2], N); const double H = Tmax/N; PDoubleVector t(N); PDoubleVector f(N); PDoubleVector gi(N); PDoubleVector keren(N); // get start time struct timeval tv_start, tv_stop; double t1, t2; gettimeofday(&tv_start, 0); // feed time vector for (unsigned int i=0; i