张量乘法库

我在c中编写了一个科学代码,它需要很多张量积,高阶张量运算,例如收缩,kronecker积等等。我打算用文献中的高效算法自己实现这个,并采用一个好的BLAS图书馆。 我做了一些看,并没有真正找到任何c(大量的c ++,python等)。 我是否遗漏了某些东西,或者这在c中实施得不是很好?

谢谢。

也许你可以调查GSL的 张量扩展 – GNU科学图书馆。

在科学计算中有许多不同的张量用法,所以如果没有更多细节,这个问题很难回答。

SciComp上有一个相关的答案提到了Eigen,Armadillo,deal.II,libtensor和libdynd。

如果您有兴趣并行收缩大型张量,请查看Cyclops Tensor Framework (CTF),它是多量子化学代码的后端。 如果你想做大量的小收缩,CTF可能对你没有帮助。

其他开源张量库包括libtensor和TiledArray ,它们也用于量子化学。

如果对小尺寸感兴趣, MADNESS项目有一个张量等级可以满足您的需求。

itensor是另一个张量库,旨在支持DMRG计算。

FTensor是一个面向广义相对论的C ++张量库。

由于张量操作对机器学习很重要,Facebook和谷歌等公司分别发布了THPP和TensorFlow等张量库。

有一个名为POOMA的非常古老的项目可能支持 小型张量器来满足您的需求,但是这个项目不再有效,您应该不会得到任何支持。

当所有其他方法都失败时,请参阅维基百科或谷歌(这里的大约一半信息是通过在谷歌上搜索“张量库”来确定的,尽管我对它的大部分都有历史熟悉程度)。

你也可以使用元素http://libelemental.org/about/

即使它是用C ++编写的,它也有一个C接口:“C ++ 11 API是迄今为止最完整的,但很大一部分库也暴露给C和Python接口。”

另外,请在github页面上的开发分支上使用最新版本: https : //github.com/elemental/Elemental/

我遇到了一些使用最新版本解决的兼容性问题!