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

4
我正在做一个涉及4维相空间中复数系数线性微分方程的研究。为了验证某些关于解根的假设,我需要能够使用任意精度数值求解这些方程。我曾经使用过Python模块mpmath,但它运行速度较慢,因此我更喜欢用C/C++重新编写我的程序以实现最大的性能优化。所以我有一个问题:
是否存在支持任意精度算术和复数的C/C++线性代数库?我需要一些基本功能,如点积等。(实际上,我也需要矩阵指数,但如果必要,我可以自己实现)。
我尝试过用MPFR C++和Eigen,但由于它不支持复数(并且类似于>的构造也无法使用,因为它假定基础类型是标准浮点数),所以失败了。

你可以使用带有MPFR的Eigen。 - Cornstalks
抱歉,Eigen+MPFR目前不支持复数(至少我没有找到如何使其工作的方法)。 - Ilya V. Schurov
3个回答

1

谢谢。看起来可以做到,但需要升级我的系统上的很多东西(至少应该使用相当现代的gcc)。 - Ilya V. Schurov

1

不幸的是,似乎它不起作用。至少我没有用 MPFR C++ 完成它,并且不知道使用 Eigen 进行任意精度计算的其他方法。 - Ilya V. Schurov
它应该能够与不支持的模块http://eigen.tuxfamily.org/dox/unsupported/group__MPRealSupport__Module.html一起使用。 - RamblingMad
我已经尝试过了(甚至联系了MPFR C++的作者),它目前还不支持复数,只支持实数(请注意示例代码中的'mpreal'类型)。无论如何,谢谢。 - Ilya V. Schurov

1

最终,zkcm 看起来做到了我想要的。我不确定它在性能方面是否好(没有进行任何基准测试),但至少它可以工作并提供所有必要的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接