一个用户友好的C++混合稀疏矩阵类
摘要:一个用户友好的 C++ 稀疏矩阵类及其应用编程接口,用于实现需要稀疏矩阵功能的程序,其接口与广泛使用的 MATLAB 语言类似。该类内部使用了两种主要方法来实现高效执行:(一)混合存储框架,根据具体操作的最佳格式自动切换和无缝切换三种底层存储格式(压缩稀疏列、坐标列表、红黑树);(二)基于模板的元编程,自动检测和优化常见表达式模式的执行。为了便于将研究代码相对迅速地转换为生产环境,该类及其相关函数提供了一套基本的稀疏线性代数功能(如算术运算、子矩阵操作),以及用于稀疏特征分解和线性方程求解的高级函数。后者通过提供低级 ARPACK 和 SuperLU 库的易于使用的抽象实现。源代码是开源的,以宽松的 Apache 2.0 许可证提供,允许在商业产品中无限制使用。
作者:Conrad Sanderson, Ryan Curtin
论文ID:1805.03380
分类:Mathematical Software
分类简称:cs.MS
提交时间:2019-10-22