具有复数的任意精度线性代数c/c++库

arbitrary precision linear algebra c/c++ library with complex numbers

本文关键字:线性代数 c++ 精度 任意      更新时间:2023-10-16

我正在做一项研究,涉及4维相空间中具有复系数的线性微分方程。为了能够检验关于解的根的一些假设,我需要能够以任意精度数值求解这些方程。我曾经使用mpmathPython模块,但它工作缓慢,所以我更喜欢用C/C++重写我的程序,以实现最大的性能。所以我有一个问题:

是否存在同时支持任意精度算术和复数的C/C++线性代数库?我需要一些基本的功能,比如点积等等。(实际上,我也需要矩阵指数,但如果需要,我可以自己实现)。

我尝试将EigenMPFR C++一起使用,但由于它不支持复数,所以失败了(像complex <mpreal>这样的构造不起作用,因为它假设基类型是标准浮点)。

尝试使用任意精度的数字库(例如GMPhttp://gmplib.org/)具有支持复数的线性代数数学库(例如Eigenhttp://eigen.tuxfamily.org/)

最后,zkcm似乎做到了我想要的。我不确定从性能的角度来看它是否好(没有做任何基准测试),但至少它能工作并提供所有必要的功能。

您可以从boost中查看uBLAS。