有任意精度算术影响数值分析软件吗?

Lir*_*evi 6 math numerical arbitrary-precision

任意精度算术影响数值分析软件吗?

我觉得大多数数值分析软件都使用相同的浮点数和双精度数.

如果我是对的,我很想知道原因,因为在我看来,有些计算可以从任意精度算术的使用中受益,特别是当它与有理数表示的结合使用时,在GNU多精度库上完成.

如果我错了,例子会很好.

bdo*_*lan 7

任意精度都很慢.非常慢.当你使用产生无理值的函数(例如大多数trig函数)时,你将失去任意的精度优势.

因此,如果您不需要或不能使用该精度,为什么要花费所有CPU时间呢?

  • 对.很多数值分析并不是为了得到快速的答案.它被用于一些非常大的问题,并且将其减慢一个数量级或更多是不可行的. (3认同)

Tho*_* S. 7

有任意精度算术影响数值分析软件吗?我觉得大多数数值分析软件都使用相同的浮点数和双精度数.

有几个不幸的原因,任意精度(ap)没有得到更广泛的使用.

  • 缺乏对重要功能的支持:缺少NaN/Infinities的值,没有复杂数字或特殊功能,缺乏或错误实现舍入模式(圆形半 - 甚至未在GMP中实现),缺少重要事件的处理程序(丢失有效数字) ,溢出,下溢...好吧,这甚至没有在大多数标准库中实现).为什么这很重要?因为没有它,你必须投入大量的精力来以任意精度制定你的问题(曾经写过复杂的数字库或ap?中的特殊函数),你不能重现你的双重结果,因为ap缺乏跟踪变化所需的功能.

  • 99.9%的程序员根本不对数字感兴趣.这里最常见的问题之一是:"为什么0.1 + 0.1不是0.2 ???? HELP !!!" 那么为什么程序员需要花时间学习特定的ap实现并在其中制定问题呢?如果您的ap结果与双重结果不同,并且您不了解数字,那么您如何找到错误?双精度是不是很不精确?ap库有bug吗?到底是怎么回事 ?!谁知道....

  • 许多知道如何计算的数字专家鼓励使用ap.由于FP的硬件实现而感到沮丧,他们坚持认为再现性无论如何都是"不可能"实现的,并且输入数据几乎总是只有少数有效数字.因此,他们主要分析精度损失并重写关键例程以最小化它.

  • 基准成瘾.哇,我的电脑比其他电脑快.正如其他评论员正确评论的那样,ap比硬件支持的浮点数据类型要慢得多,因为你必须用每手的整数数据类型对它进行编程.这种态度迫在眉睫的危险之一就是程序员完全没有意识到这些问题,他们会选择那些吐出令人印象深刻的无意义数字的解决方案.我对GPGPU非常谨慎.当然,图形卡比处理器快得多,但其原因是精度和准确性较低.如果使用浮点数(32位)而不是双精度数(64位),则计算和传输的位数要少得多.人眼是非常容错的,因此如果一个或两个结果是禁止的,则无关紧要.哎呀,作为硬件构造函数,你可以使用不精确,严格的计算来加速你的计算(这对图形来说真的很好).抛弃那些讨厌的次正规实现或舍入模式.处理器没有GPU那么快就有一个很好的理由.

我可以推荐William Kahans页面链接文本,以获取有关数字问题的一些信息.