首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ieee754浮点异常的用途是什么?(NAN、OVERFLOW、INEXACT、INEXACT、UNDERFLOW、DIV0)

ieee754浮点异常的用途是什么?(NAN、OVERFLOW、INEXACT、INEXACT、UNDERFLOW、DIV0)
EN

Stack Overflow用户
提问于 2021-04-19 10:26:34
回答 1查看 73关注 0票数 1

我知道浮点异常的含义,也知道如何在C++编程中获取这些异常( function: fetestexcept(FE_INEXACT/FE_UNDERFLOW/...))

但是你能告诉我你在你的项目或编程过程中用过这些异常吗?浮点异常的用途是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 12:19:06

浮点异常通常用于提高数值计算的速度/精度。例如,如果默认情况下使用较小大小的浮点数(比方说单精度),而处理器告诉您计算不精确,或者发生了下溢或溢出,则可以使用较大大小的浮点数(比方说双精度)重新计算,甚至可以根据需要使用软件仿真来计算精度更高的答案。假设计算大部分都适合较小的格式,它会运行得更快,或者你会有更多的机会向量化。(想象一下SSE2/AVX/AVX512指令行。)然后,您可以使用更大的大小捕获并“重复”有问题的代码。

但你是对的,对于大多数程序来说,这些异常是不会被捕获的,人们通常会忽略它们。可以说,这是一件合理的事情,因为大多数程序都不会进行密集的数值分析。这里有一篇1996年的论文,你应该阅读一下,了解如何很好地利用这些异常的细节:https://people.eecs.berkeley.edu/~fateman/264/papers/hauser.pdf

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67155241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档