0

假设我们有一组浮点数,尾数为“m”,指数为“e”。假设我们想要逼近一个函数“f”。

从理论上我们知道,通常使用“范围缩减函数”,然后从这样的函数中我们得出全局函数值。

例如 let x = (sx,ex,mx) (sign exp and mantissa) then... log2(x) = ex + log2(1.mx) 所以基本上范围缩小函数是“log2(1.mx)” .

目前我已经实现了倒数、平方根、log2 和 exp2,最近我开始使用三角函数。但是,如果给定一个全局误差界限(尤其是 ulp 误差),我可能会为范围缩减函数推导出一个误差界限,是否有一些关于此类问题的研究?说到 log2(x)(例如),我想说...

“好的,我想要带有 k ulp 错误的 log2(x),为了实现这一点,考虑到我们的浮点系统,我们需要用 p ulp 错误来近似 log2(1.mx)”

请记住,正如我所说,我们知道我们正在使用浮点数,但格式是通用的,所以它可能是经典的 F32,但即使例如 e=10,m = 8 end 等等。

我实际上找不到任何显示此类研究的参考资料。我拥有的参考资料(即穆勒书)没有以这种方式处理该主题,因此我正在寻找某种论文或类似的东西。你知道有什么参考吗?

我也试图自己推导出这样的约束,但这并不容易......

4

1 回答 1

0

在https://hal.inria.fr/ensl-00086904/document上有对当前实践的描述,以及提议的改进和错误分析。当前实践的描述似乎与https://docs.oracle.com/cd/E37069_01/html/E39019/z4000ac119729.html上的概述一致,这与我记忆中最受关注的问题是 mod pi 范围一致减少三角函数。

我认为 IEEE 浮点是向前迈出的一大步,因为它在有多种计算机体系结构的时候标准化了事物,因此降低了它们之间移植代码的风险,但是这隐含的准确性要求可能有点矫枉过正:因为许多问题对输出精度的约束是输入数据的精度,而不是中间值计算的精度。

于 2015-06-14T05:03:04.377 回答