【发布时间】:2012-10-29 07:10:34
【问题描述】:
我知道有几个关于类似主题的线程(What's the best (for speed) arbitrary-precision library for C++? 和The best cross platform (portable) arbitrary precision math library),我从这些线程中获取比 GMP 或基于它的东西,比如 MPFR 是最快的库,但我特别想知道:如果我只想说 30 dec 的位置,quadmath 库的 __float128 会更快吗?
另外,MAPM 如何与 MPFR 相提并论?
从这个网站看:
http://pari.math.u-bordeaux.fr/benchs/timings-mpfr.html
那个MPFR做的不错,但是还有CLN和apfloat?
【问题讨论】:
-
附带说明(您可能已经意识到这一点,但只是为了确定),四精度浮点数不会给您约 30 个小数位,而是 113 个二进制位。
-
我知道 quad 总共是 120 位,但我认为大概等于 30 分贝?
-
你当然是对的(不过,它总共是 128 位)。我只是想让你记住,二进制浮点数不会给你实际的十进制精度。您很可能已经知道这一点,但只是为了确定。因此,不要指望您的 30 位精确十进制数以二进制四精度精确表示,它们只会大致相等彼此。
-
双双库可能是最快的(比 float128 精度稍低,但使用 FPU),除非您有硬件 float128(我认为是一些 IBM 计算机)。但是,如果您需要许多奇怪的功能,可用性可能是您负担得起的唯一标准。
标签: c++ gmp bignum arbitrary-precision mpfr