是什么导致浮点异常“1.#IO”
What leads to the floating point exception "1.#IO"
我正在调试一个模拟,其中包含许多 Fortran 文件中的许多计算。我习惯于看到一些浮点异常(-1.#QNB 或 1.#QNAN),因为这些错误涉及被零除或超过浮点数最大大小的操作。我假设 -1.#IO 表示无效操作,但我不确定从数学上讲是什么导致了这种情况,而不是 QNB、QNAN 或 QINF。
什么会导致异常-1.#IO?
根据IEEE 754 Standard for Floating Point Operations,无效操作发出信号
when a NaN or infinite operand cannot be represented in the destination format and this cannot otherwise
be indicated [...] When a numeric operand would convert to
an integer outside the range of the destination format, the invalid operation exception shall be signaled if
this situation cannot otherwise be indicated.
This page举几个例子:
- 零 * 无穷大
- 零/零
- 无穷大/无穷大
- 负操作数的平方根
- [还有一些]
我正在调试一个模拟,其中包含许多 Fortran 文件中的许多计算。我习惯于看到一些浮点异常(-1.#QNB 或 1.#QNAN),因为这些错误涉及被零除或超过浮点数最大大小的操作。我假设 -1.#IO 表示无效操作,但我不确定从数学上讲是什么导致了这种情况,而不是 QNB、QNAN 或 QINF。
什么会导致异常-1.#IO?
根据IEEE 754 Standard for Floating Point Operations,无效操作发出信号
when a NaN or infinite operand cannot be represented in the destination format and this cannot otherwise be indicated [...] When a numeric operand would convert to an integer outside the range of the destination format, the invalid operation exception shall be signaled if this situation cannot otherwise be indicated.
This page举几个例子:
- 零 * 无穷大
- 零/零
- 无穷大/无穷大
- 负操作数的平方根
- [还有一些]