I'm working with the code on the GSL examples page to try to solve a system of four differential equations. I've been wrestling with passing five parameters to the ODE system, and have arrived at one final (I hope!) compile-time error. A snippet follows, giving me the error
114:57: error: invalid conversion from ‘int (*)(double, const double*,
double*, double**, void*)’ to ‘int (*)(double, const double*, double*,
double*, void*)’ [-fpermissive]
which corresponds to the line starting with gsl_odeiv2_system
:
int main()
{
double t = 0.0;
double y[4] = { 0.0, 0.0, 1.0, 1.0 };
int i, s;
struct pendula_params * info;
info->m2 = 1.0;
info->m1 = 1.0;
info->l1 = 1.0;
info->l2 = 1.0;
info->g = 1.0;
gsl_odeiv2_system sys = { pendula, jacobian, 4, &info };
gsl_odeiv2_driver *d =
gsl_odeiv2_driver_alloc_y_new (&sys, gsl_odeiv2_step_msadams,
1e-3, 1e-8, 1e-8);
Any thoughts on what might be going on?
Many thanks,
Mark C.