Subject: Re: [boost] library proposal: odeint
From: Mario Mulansky (mario.mulansky_at_[hidden])
Date: 2009-12-14 18:32:30
On Monday 14 December 2009 17:12:05 Rhys Ulerich wrote:
> > I am new on this list and want to start a discussion if a library for
> > solving ordinary differential equations (ODEs) would fit into boost.
> > ...
> > ODEs are usually solved iteratively. Therefore, we have introduced two
> > stepper concepts, one for steppers with- and one for steppers without
> > error estimation. At the moment some explicit solvers are implemented:
> > Euler, RK4, Cash Karp, RK78,midpoint and Burlisch-Stoer.
> Without meaning to be off putting, have you looked at pure C libraries
> like the GNU Scientific Library to see if they contain what you need?
> GSL's routines  are quite good and cover a large number of the
> features you mention. You might save yourself the trouble of writing
> and testing everything and instead only need to wrap the GSL routines
> with your C++ interface. If GSL doesn't contain exactly what you want
> (RK78 comes to mind), you'll probably find the GSL ODE framework quite
> useful for writing the stepper you want. If you choose to submit it
> there, then everyone in C- and C++-land benefits from the submission.
We are aware of the GSL and have used it for several problems. In our opinion,
the GSL has a major drawback: it uses its own, double based vector structure.
It also has a very bulky interface which is not very intuitive to use - at
least that's our impression. Say you want to solve a ode based for
N-dimensional complex valued vector - GSL requires you to transform to a 2N
dimensional real valued problem. odeint doesn't. Additionally, a header-only
library often leads to faster code, at least to my understanding.
Anyways, wrapping the GSL is not what we want to do.
> - Rhys