×

C++中一个用户友好的混合稀疏矩阵类。 (英语) Zbl 1397.65343号

Davenport,James H.(编辑)等人,《数学软件–ICMS 2018》。第六届国际会议,2018年7月24日至27日,美国印第安纳州南本德。诉讼程序。查姆:施普林格(ISBN 978-3-319-96417-1/pbk;978-3-3169-96418-8/电子书)。计算机科学课堂讲稿10931,422-430(2018)。
摘要:在实现需要稀疏矩阵的功能时,有许多存储格式可供选择,每种格式都有优缺点。为了获得良好的性能,可能需要在一个程序中使用几种格式,这需要在格式之间进行明确的选择和转换。这可能既繁琐又容易出错,尤其是对于非专业用户。受此问题的启发,我们为C++语言提供了一个用户友好的稀疏矩阵类,该类具有与广泛使用的MATLAB语言类似的高级应用程序编程接口。该类内部使用两种主要方法来实现高效执行:(i)混合存储框架,根据最适合特定操作的格式,在三种底层存储格式(压缩稀疏列、坐标列表、红黑树)之间自动无缝切换,以及(ii)基于模板的元编程,自动检测和优化常见表达式模式的执行。为了便于将研究代码相对快速地转换为生产环境,该类及其相关函数提供了一套基本的稀疏线性代数功能(例如算术运算、子矩阵操作)以及稀疏特征分解和线性方程求解器的高级函数。后者是通过提供低级ARPACK和SuperLU库的易于使用的抽象来实现的。源代码是开放的,并根据许可的Apache 2.0许可证提供,允许在商业产品中自由使用。
关于整个系列,请参见[Zbl 1391.68004号].

理学硕士:

65日元 数值算法的封装方法
05元50分 图和线性代数(矩阵、特征值等)
65传真 数值线性代数
PDF格式BibTeX公司 XML格式引用