我正在寻找可在 Linux (Fedora) 系统上使用的 C++ 矩阵库。目的是为计算神经科学实现连续吸引子神经网络等。我已经开始使用Eigen了。然而,我意识到我的任务也需要微分方程求解器并遇到了Odeint(最近似乎已被 boost 接受)。Odeint 与 MTL4 一起使用作为此页面的详细信息。我现在想知道是否应该使用 MTL4 而不是 Eigen 重写我的代码,以便能够正确使用 odeint。
我查看了 google 和 stackoverflow 本身,但没有找到比较
我很确定 Eigen 也可以与 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 的大小调整机制。查看 odeint 中的 MTL 绑定以了解其工作原理。这很简单。