Должен ли я перейти на 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, чтобы увидеть, как это работает. Это просто.

Другие вопросы по тегам