【问题标题】:What library for arbitrary precision library should I use?我应该使用哪个任意精度库的库?
【发布时间】:2011-02-21 14:37:46
【问题描述】:

我需要编写一些程序来计算任意精度的数字...

但我需要它将已经“确定”的数字(即低于某些错误范围)输出到文件中,以便在程序继续运行时有数字可以处理。

此外,大多数任意精度的库似乎都需要固定精度,但如果我想要动态精度怎么办,也就是说,它会一直持续下去......

【问题讨论】:

  • 您可能使用哪些语言?对于 C 中的任意精度整数、有理数和浮点数,有 GMPMPFR,但据我所知,这些并没有解决完全表示可计算数字集的能力。

标签: math arbitrary-precision


【解决方案1】:

大多数将数字计算到扩展精度的算法都要求所有中间计算都以更高的精度进行,以保证准确的结果。您通常会指定最终所需的精度,这就是您得到的结果。如果要在计算过程中输出“已知”的准确数字,一般需要自己实现算法并跟踪准确数字。

不知道你要计算什么数字,我无法提供更好的建议。

GMP/MPIR 仅支持非常基本的浮点计算。 MPFR 需要 GMP 或 MPIR,提供更广泛的浮点运算集。

【讨论】:

    【解决方案2】:

    我的建议是使用MPIR。它是 GMP 的一个分支,但(在我看来)拥有更乐于助人和对开发人员友好的团队。

    【讨论】:

    • 我不认为这涉及第二段。我认为@llru 正在寻找一些东西,例如,允许打印 π 的前这么多数字,同时仍在计算更多数字。 AFAIK、GMP/MPFR/MPIR 只是为您提供整数和有理数集的任意精度算术。
    • 可以随时使用mpf_set_default_prec 更改精度,这样您就不会被特定的编译时精度所束缚。它不会自动提高运算的精度,但无论如何这样做都是一件坏事——如果你想看到一个咆哮,你应该有一天问问数学家 :-)
    • 你知道我是否能够在计算仍在运行时“看到”展开的开始部分吗?
    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多