Tag Archives: numerics

odeint v2 released

We have worked for one year on a new version of odeint – a highly flexible library for solving ordinary differential equations. It was hidden in some branch of the boost sandbox. Today, we put this version into the github:


It is not compatible with the old version such that we call the library odeint v2. Some nice and new features are:

  • Algebras and operations which can be adapted for nearly all container types. For example, a specialized algebra for thrust exists, such that you can use the power of modern graphics cards and CUDA for solving ODEs.
  • A generic implementation of the Runge-Kutta solvers. Any Butcher tableau can now be used without any performance loss.
  • Methods with dense output for example the Dopri5 solver.
  • Methods for stiff ODEs.

Numerical algorithms and template meta programmiming

Here is an article about template-meta-programming and numerical algorithms. It illustrates how one can construct an numerical algorithm during compile-time. The example for this technique is the family of explicit Runge-Kutta solvers for ordinary differential equation.


Sorry, it is only in German.

Run-time performance of expression trees

A few days ago, I played around with proto, a C++ library the for construction and evaluation of expression trees. I wanted to write a small application allowing me to write classical vector operations in a neat way like b+2*c+d*e. With proto this is possible with only a few lines of code. Surprisingly, it turned out that the run-time performance for large expressions was about 10 to 20 percent better than a naive implementation. Continue reading