#include "RungeKutta.hpp" #include using namespace std; template RungeKutta::RungeKutta(int dim) { m = dim; k1 = new double[m]; k2 = new double[m]; k3 = new double[m]; k4 = new double[m]; y = new double[m]; y_tmp = new double[m]; } template RungeKutta::~RungeKutta() { delete [] k1; delete [] k2; delete [] k3; delete [] k4; delete [] y; delete [] y_tmp; } template void RungeKutta::set ( E * tmp , double * y0 , double beg , double end ) { unit=tmp; x0=beg; xn=end; x=x0; h=double(xn-x0)/double(N_INTER); for (i=0;i bool RungeKutta::run() { for(j=0;jxn) { h = xn-x; j = MAX_ITER_RK; } //Compute k1, k2, k3, k4 for(i=0;if(i, x, y); for(i=0;if(i, x+h/2.0, y_tmp); for(i=0;if(i, x+h/2.0, y_tmp); for(i=0;if ( i , x+h , y_tmp ); //Compute the new y for(i=0;i