When there are too many lines of files displayed, GitHub gives
up. So I can't see the diffs here. I'll just dive into the
code and take a look and do this the old fashioned way because
I don't know how to deal with GitHub not allowing us to comment
because there are too many files.
One option might be to break this down into two commits, one
for the library by itself, and one for the actual ODE solver.
git diff --summary develop # to see the files that were changed
git diff develop stan/ # to exclude changes to lib/
The bulk of the CVODES code is in the files under stan/math/rev/arr/functor/:
- integrate_ode_cvodes.hpp : user-facing function
- cvodes_integrator.hpp : CVODES integrator interface
- ode_model.hpp : helper object to get easily the Jacobian of the ODE RHS function wrt to states and parameters
- decouple_states.hpp : helper which takes output from cvodes_integrator and creates with precomputed_gradient the output for integrate_ode_cvodes
The helper objects I had to introduce as I needed the mathematical objects a bit more granular than I would get it from the coupled_ode_system. It would make sense in going forward to refactor the coupled_ode_model object implementation using the two helpers I introduced, but that can be done at a later stage.
Sebastian