Oracle® Solaris Studio 12.4:数值计算指南

退出打印视图

更新时间: 2015 年 1 月
 
 

2.3.6 下溢有问题吗?

尽管举了以上示例,但下溢算法基本上没有任何问题,因此,我们有什么理由不使用它呢?事实上,这一观点是不言而喻的。

如果没有渐进下溢,用户程序需要对隐含的精确度阈值特别敏感。 例如,在单精度计算中,如果计算的某些部分发生了下溢,在使用突然下溢的情况下,会将下溢结果替换为 0,则所能保证的精确度只能达到大约 10-31,而不是 10-38,即单精度指数的一般下限。

这意味着,编程人员需要在接近不准确阈值时实施自己的检测方法,否则,将不得不放弃寻求强大、稳定的实施其算法的努力。

我们可以缩放某些算法,这样,在接近零的限定区域将不会执行计算。不过,缩放算法和检测不准确阈值都比较困难且耗时,即使对于大多数数据而言也是没有必要的。