ODE solver with AD computation of derivatives w.r.t. IVs and parameters.
Phi=dy/dy0
Psi=dy/dp

Notes:
  Integration may be continued without resetting Phi and Psi

Needs:
  dopri5a.h and dopri5a.cc (my custom versions of Hairer's dopri5, included)
  newmat library (http://www.robertnz.net/nm_intro.htm)

Usage:
  #include "ode.h"
  void odes(int n, double x, ad y[], ad f[], ad p[]) {
    // ODE rhs functions
    f[0]  =(arbitrary expression using x,y,p);
    f[1]  =...;
    ...
    f[n-1]=...;
  }
  void ...() {
    const int n=(system state-space dimension), 
              m=(number of parameters in ODEs);
    double t_initial=..., t_final=...;
    RowVector y0(n),y(n),p(m);
    Matrix Psi(n,m), Phi(n,n);
    Psi=0.0; Phi=0.0; for (int i=1; i<=n; i++) Phi(i,i)=1.0;
    y0<<(IV);
    y=integrate(odes,t_initial,t_final,y0,p,Psi,Phi);
    // Now Phi=dy/dy0, Psi=dy/dp
  }
