Question

I'm looking for C++ matrix libraries to work with on a Linux (Fedora) system. The intention is to implement continuous attractor neural networks and such for computational neuroscience. I've already begun using Eigen. However, I realized I need differential equation solvers too for my task and ran into Odeint (which recently seems to have been accepted into boost). Odeint works with MTL4 as this page details. I'm now wondering if I should rewrite my code using MTL4 instead of Eigen to be able to make use of odeint properly.

I've looked on both google and stackoverflow itself but failed to find a comparison

Was it helpful?

Solution

I am pretty sure that Eigen will also work with odeint. So it is up to you if you want to change to MTL.

The documentation of odeint http://headmyshoulder.github.com/odeint-v2/doc/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html shows how to adapt an arbitrary type to odeint. I think Eigen supports expression templates (so you can write vector or matrix expression like M1=a*M2+b*M3;) such that you can use odeint with the vector_space_algebra and the default_operations. All you have to do is to adapt the resizing mechanism of odeint. Have a look at the MTL bindings in odeint to see how this works. It is straightforward.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top