我正在研究涉及四维相空间中具有复系数的线性微分方程。为了能够检查关于解的根的一些假设,我需要能够以任意精度以数字方式求解这些方程。我以前使用mpmath
Python模块,但它运行缓慢,所以我更喜欢用C / C ++重写我的程序以实现最大性能。所以我有一个问题:
是否存在支持任意精度算术和复数的C / C ++线性代数库?我需要一些基本的功能,如点积等。 (实际上,我也需要矩阵指数,但如果需要,我可以自己实现)。
我尝试将Eigen
与MPFR C++
一起使用,但由于它不支持复杂的数字而失败(而complex <mpreal>
这样的结构不起作用,因为它假定基类型是标准浮点数。
答案 0 :(得分:1)
您可以查看uBLAS from boost。
答案 1 :(得分:1)
尝试使用任意精度数字库(例如GMP http://gmplib.org/)和支持复数的线性代数数学库(例如Eigen http://eigen.tuxfamily.org/)
答案 2 :(得分:1)
最后,似乎zkcm做了我想要的。我不确定它是否从性能角度看是好的(没有做任何基准测试),但至少它可以工作并提供所有必要的功能。