在x86处理器,fsincos上,在什么地方可以找到三角函数指令的误差范围信息?
发布于 2014-02-20 14:05:23
你所问的很少是一个有趣的问题,而且很可能你真的想知道一些不同的事情。所以让我先回答不同的问题:
如何计算三角函数以达到一定的精度?
只需使用更长的数据类型。有了x86,如果你需要双精度的结果,做一个80位扩展的双重计算,你是安全的一面。
如何获得平台无关的精度?
为此您需要一个专门的软件解决方案,比如MPFR。
话虽如此,让我回到你最初的问题。简短的回答:对于小操作数,通常应该在1 ulp之内。对于较大的操作数,情况越来越糟。唯一确定的方法是自己测试,比如这家伙做了。没有来自处理器供应商的可靠信息。
发布于 2014-02-20 14:01:58
您可以阅读Intel 64和IA-32建筑开发商手册:第1卷关于超验指令准确性的8.3.10节。有一个精确的公式,但也有更容易理解的语句。
对于奔腾处理器和后来的IA-32处理器,当舍入最近(偶数)时,先验函数的最坏情况误差小于1 ulp,在其他模式下舍入时小于1.5 ulp。
https://stackoverflow.com/questions/21908949
复制相似问题