12 void eulerODE(vector<double>& y, double& t, double& dt);
13 void midpointODE(vector<double>& y, double& t, double& dt);
16 void (ODEsolver::*useMethod)(vector<double>&, double&, double&);
21 void timeloop(vector<double>& y, double ts, double te, double dt);
25 ODEsolver::ODEsolver()
31 void ODEsolver::eulerODE(vector<double>& y, double& t, double& dt)
36 void ODEsolver::midpointODE(vector<double>& y, double& t, double& dt)
43 void ODEsolver::init()
45 ODEsolver::useMethod = &ODEsolver::midpointODE;
48 void ODEsolver::timeloop(vector<double>& y, double ts, double te, double dt)
50 (ODEsolver::useMethod)(y,ts,dt); // ERROR - should use this->*
53 int main (int nargs, char** args)
56 vector<double> y(2); double t_start=5.; double t_end=7.; double dt=2.;
57 solver.timeloop(y,t_start,t_end,dt);