我个人的感觉是外界的科学计算,可以.我也认为,严重的金融应用程序使用固定点而不是浮点数.
当然,如果你想在你的项目中使用它,最终的答案就是对你的项目进行测试,看看它影响了多少.但是,我认为一般答案可以由尝试并具有这种优化经验的人给出:
可以将ffast数学安全地用于正常的项目?
鉴于IEEE 754浮点数有四舍五入错误,假设您已经有不精确的计算.
This answer特别关注的事实是,非常数学的做法不仅仅是重新排序操作,导致结果略有不同(不检查NaN或零,禁用有符号的零仅仅举几个例子),但是我看不到这些影响最终将在真正的代码中.
我试图想到浮点的典型用法,这就是我想出来的:
> GUI(2D,3D,物理引擎,动画)
>自动化(例如汽车电子)
>机器人
>工业测量(例如电压)
和学校项目,但这些在这里并不重要.
解决方法
这可以得到非常明显的结果,例如,NaN在以前在某些时候被过滤掉时会让用户冒泡.那当然不好,但是你可能会注意到并修复它.
当NaN检查在那里进行错误检查时,会出现一个更为阴险的问题,因为真的不应该是NaN.但是,也许通过一些bug,糟糕的数据,或者通过其他非常数学的影响,NaN无论如何也是NaN.现在你没有检查它,因为假设没有任何东西是NaN,所以isnan是虚构的同义词.事情会发生错误,在您已经运送软件后发生错误,很长时间,您将收到一个“不可能”的错误报告 – 您确实检查了NaN,它在代码中是正确的,它不能失败!但是,因为有人有一天在标记中添加了数学数学,也许你甚至自己做了,不知道它会做什么,或者忘记了你使用NaN检查.
那么我们可能会问,是正常吗?这是相当主观的,但我不会说,检查NaN是特别异常.完全循环并断言这是不正常的,因为 – 数学打破它可能是一个坏主意.
它也做了很多其他可怕的事情,在其他答案中详细说明.