Eci*_*ana 3 math floating-point biginteger intervals
什么是优势球算术(ARB)在区间运算(MPFI) ?
换句话说,将间隔表示为[中心,半径]而不是[左,右]有什么好处?
这与特定库(Arb与MPFI)无关,而与特定表示的优点有关。
我特别感兴趣的是,一种表示形式是否允许更快的算术(更少的原始运算),更少的错误过高估计和更多的节俭内存使用。
在任意精度算术中,球形算术的速度大约是间隔算术的两倍,并且占用的空间只有一半。原因是只有球的中心需要高精度,而在区间算术中,两个端点都需要高精度。当然,细节取决于实现。(实际上,Arb比MPFI快两倍多,但这在很大程度上是由于实现工作所致。)
在硬件算术中,球在间隔上并没有真正的速度优势,至少对于标量算术而言。如果您看一下球运算的更一般形式并考虑将球矩阵作为浮点矩阵+一个浮点数作为某个矩阵中整个矩阵的误差范围,则有明显的优势。与单个间隔或球的矩阵一起工作。
Joris van der Hoeven的有关球算术的文章很好地说明了球算术和区间算术之间的区别:http : //www.texmacs.org/joris/ball/ball.html
一个重要的报价是:“大致来说,应该使用球来可靠地近似数字,而间隔主要用于依赖于空间细分的认证算法。”
忽略性能问题,球和间隔通常可以互换,尽管间隔更适合细分算法。从概念上讲,球很适合表示数字,因为中心半径形式自然对应于我们对数学近似的看法。这个概念自然也扩展到更一般的范数向量空间。
就我个人而言,我经常将球算术视为浮点算术+误差分析,但是误差界限的传播是由计算机而不是人工自动完成的。从这个意义上讲,这是进行浮点算术的一种更好的方法(对于某些应用程序!),而不仅仅是一种进行区间算术的更好的方法。
对于单数计算,误差高估更多地与算法有关,而不是与表示有关。MPFI保证其所有原子函数都计算出最紧密的间隔,但是,一旦开始编写函数,该属性就不会保留。无论是球算术还是区间算术,只要您使用许多相关步骤来运行计算,爆炸就会以相同的方式发生。为了跟踪由于初始条件中的较大不确定性而导致的误差范围,诸如泰勒模型之类的技术通常比直接区间或球算术更好。
真正的复数球(复数中心+单半径)有时会比矩形复数间隔更好地表示复数,因为乘法的环绕效果较小。(但是,Arb对复数使用矩形“球”,因此它没有此特殊优点。)