Я ищу матричные библиотеки C ++ для работы в системе Linux (Fedora). Намерение состоит в том, чтобы осуществить нейронные сети с непрерывным аттрактором и такой для вычислительной нейробиологии. Я уже начал использовать собственный. Тем не менее, я понял, что мне тоже нужны решатели дифференциальных уравнений для моей задачи и столкнулся с Odeint (который недавно, кажется, был принят в поддержку). Odeint работает с MTL4 как детали этой страницы. Теперь я задаюсь вопросом, должен ли я переписать свой код, используя MTL4 вместо Eigen, чтобы иметь возможность правильно использовать odeint.
Я посмотрел как Google, так и самого stackoverflow, но не смог найти сравнение
Я уверен, что Эйген также будет работать с 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, чтобы увидеть, как это работает. Это просто.
Других решений пока нет …