Должен ли я перейти на MTL4 с Eigen, если мне также нужно использовать ODE?
Я ищу матричные библиотеки C++ для работы в системе Linux (Fedora). Намерение состоит в том, чтобы реализовать непрерывные аттракторные нейронные сети и тому подобное для вычислительной нейробиологии. Я уже начал использовать Eigen. Тем не менее, я понял, что мне тоже нужны решатели дифференциальных уравнений для моей задачи, и столкнулся с Odeint (который недавно, похоже, был принят в поддержку). Odeint работает с MTL4, как подробно описано на этой странице. Теперь я задаюсь вопросом, должен ли я переписать свой код, используя MTL4 вместо Eigen, чтобы иметь возможность правильно использовать odeint.
Я посмотрел как Google, так и самого stackru, но не смог найти сравнение
1 ответ
Я уверен, что Эйген также будет работать с odeint. Так что это зависит от вас, если вы хотите перейти на MTL.
Документация odeint http://headmyshoulder.github.com/odeint-v2/doc/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html показывает, как адаптировать произвольный тип к odeint. Я думаю, что Eigen поддерживает шаблоны выражений (так что вы можете написать выражение вектора или матрицы как M1=a*M2+b*M3;
) такой, что вы можете использовать Odeint с vector_space_algebra
и default_operations
, Все, что вам нужно сделать, это адаптировать механизм изменения размера odeint. Посмотрите на привязки MTL в odeint, чтобы увидеть, как это работает. Это просто.