我正在使用广告库http://hackage.haskell.org/package/ad,我正在寻找最快的可遍历传递给它的各种功能。
理想情况下,它将是一个使用连续内存数组的数据结构,因此我可以将其传递给 C++ 世界中的数值求解器。
我最好的选择是什么?
我正在使用广告库http://hackage.haskell.org/package/ad,我正在寻找最快的可遍历传递给它的各种功能。
理想情况下,它将是一个使用连续内存数组的数据结构,因此我可以将其传递给 C++ 世界中的数值求解器。
我最好的选择是什么?
一种使用连续内存数组的数据结构,因此我可以将其传递给 C++ 世界中的数值求解器。
“可存储”约束——能够传递给 C——极大地限制了您的可用数据类型。向量支持非常快速的批量操作。另一种选择是 Repa 数组。
但是,您将受到限制,因为该ad
包需要 Functor 和 Traversable,但它们只是为了完整性而提供 - 并且实际上序列化为列表以获取可遍历的实例。Traversable 和 Storable 永远不会混合使用,因为 Storable 仅限于某些未装箱的类型。
instance Traversable (Data.Functor.Constant a)
(对不起!)