Rup*_*nes 8 c++ matrix sparse-matrix lapack umfpack
我正在寻找一个好的(在最好的情况下积极维护)C++矩阵库.因此它应该是模板化的,因为我想使用复数的有理数作为数字类型.我正在处理的矩阵主要是稀疏和单一的.
你能否建议图书馆,并给出一个小解释,为什么要使用它们,因为我知道如何找到它们,但我无法真正决定什么适合我,因为我错过了它们的经验.
编辑:
我正在处理的主要操作是矩阵乘法,带矢量和kronecker乘积的标量乘法.矩阵的大小是指数级的,我想至少能够处理高达1024x1024个条目的矩阵.
ste*_*han 10
许多人在做"严肃"的矩阵事物,依赖于BLAS,添加LAPACK/ATLAS(普通矩阵)或UMFPACK(稀疏矩阵)以获得更高级的数学.原因是此代码经过了充分测试,稳定,可靠且速度非常快.此外,您可以直接从针对您的架构调整的供应商(例如英特尔MKL)购买它们,但也可以免费获得它们.在Manuel的回答中提到的uBLAS可能是标准的C++ BLAS实现.如果你以后需要像LAPACK这样的东西,那么就有绑定.
但是,这些标准库(BLAS/LAPACK/ATLAS或uBLAS +绑定+ LAPACK/ATLAS)都没有标记为模板化和易于使用(除非uBLAS是您所需要的全部).实际上,我必须承认,当我使用BLAS/LAPACK实现时,我倾向于直接调用C/Fortran接口,因为我经常在uBLAS +绑定组合中看不到更多的额外优势.
如果我需要一个简单易用的通用C++矩阵库,我倾向于使用Eigen(过去我曾经使用过NewMat).好处:
缺点(IMO):
编辑:即将推出的Eigen 3.1允许某些功能使用英特尔MKL(或任何其他BLAS/LAPACK实现).
| 归档时间: |
|
| 查看次数: |
11152 次 |
| 最近记录: |