CasADi
CasADi is a symbolic framework for numeric optimization
...These expression graphs, encapsulated in Function objects, can be evaluated in a virtual machine or exported to stand-alone C code. Initial value problems in ordinary or differential-algebraic equations (ODE/DAE) can be calculated using explicit or implicit Runge-Kutta methods or interfaces to IDAS/CVODES from the SUNDIALS suite. Derivatives are calculated using sensitivity equations, up to arbitrary order.