问题标签 [floating-point-exceptions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
432 浏览

floating-point - 完美的除法引发浮点异常

我有一个神秘的浮点异常。我通过这样做来抓住它:

然后是这段代码中的第二个分区(最后一行):

如下抛出 SIGFPE:

在此处输入图像描述

除数(在控制台中打印,也由 gdb 打印)是 1.0839119,分子是 -1.05979919,所以我看不出有什么问题。

对于额外的怪异:

  • 在 -O0 调试版本中不会发生。
  • 如果我通过 valgrind 运行应用程序,则不会发生

编译器:

和编译器选项:

为什么会发生这种 FPE?我能想到的唯一原因是,即使它是一个标量除法,clang 也会生成一个 SIMD 除法。如果 XMM 寄存器中的其他通道包含零分母怎么办?如果任何通道被零除,SIMD 划分是否会生成 FPE?如果是这样,我怎么能捕获 FPE?

0 投票
3 回答
1253 浏览

c - 为什么我会收到“浮点异常(核心转储)”?

因此,当我输入正数或正数和负数时,代码可以正常工作,但仅输入负数会导致浮点错误,我知道除以零会导致这种情况,但我正在按输入数潜水

所以输入 -3 -2 -1 0 的输出应该是“负均值:-2”

0 投票
1 回答
271 浏览

c - C:无序浮点比较不会引发 FE_INVALID

我遇到了浮点比较的问题。使用<运算符将​​值与 NaN 进行比较时,我希望FE_INVALID设置该标志。操作员应根据<C11 标准(也根据 IEEE-754)升旗:

宏确定它的isless第一个参数是否小于它的第二个参数。的值isless(x, y)始终等于 (x) < (y); 但是,与 不同(x) < (y)的是 ,当和无序isless(x, y)时不会 引发“无效”浮点异常xy

这是一个重现我的问题的示例程序:

在我的机器(Linux,march=broadwell)上,它返回“Not invalid”。我使用 GCC v7.2.0 编译它,使用-std=c11选项(不使用它并没有改变结果中的任何内容)。发出的 x86 指令UCOMISS仅引发信号 NaN 的异常 - 我希望看到COMISS这会引发所有 NaN 比较的异常,因为无论它们是否发出信号,NaN 都是无序的。

我是否在代码中犯了错误或忘记了一些编译器选项以使行为符合 IEEE 标准?忽略此处引发异常的需要可能是编译器中的错误(或性能优化)吗?

0 投票
0 回答
235 浏览

c++ - 运行程序时出现浮点异常

我正在尝试使用 OpenMP 执行程序并查看执行时间,但我不断收到浮点异常。

如果没有 design.cpp 文件,我将无法在测试台中实例化 DUT。所以将该文件包含在其他 CPP 中。

我能够在没有 OpenMP 的情况下运行这个文件。

关于我在哪里实施错误的任何帮助。

//设计.cpp

0 投票
2 回答
672 浏览

rust - 奇数大小对齐向量的“安全”SIMD算法?

假设我有一些 16 字节对齐的结构,它只包装 3xFloat32 数组:

现在我想划分它的两个实例,如下所示:

它会除法,但有一个问题:第 4 个元素包含垃圾,除其他外,它可能发出 NaN 信号。如果某些异常标志未被屏蔽,则将触发 SIGFPE。我想以某种方式避免这种情况,而无需完全消除信号。即我要么只想在第 4 对元素上使其静音,要么放一些理智的值。最好、最快的方法是什么?或者也许有更好的方法?

0 投票
0 回答
672 浏览

c++ - (C++) 如何修复错误:因信号终止:浮点异常 (8)

我正在练习一些书本问题,但我无法理解为什么会出现“由于信号而终止:浮点异常(8)”错误。

如果可能,您能否解释一下为什么会出现错误以及如何修复它。

感谢您的时间。

我不明白这个错误。因此,我没有尝试任何东西

我希望检查质数,并且使用适当的策略我无法输出任何内容。

0 投票
1 回答
146 浏览

assembly - 浮点异常程序集 64 位

浮点异常核心转储。我正在使用 64 位汇编。我想我在使用 div 指令时遇到了错误,从我所看到的错误中,(人们似乎在不清除 RDX 时得到它)但是当我使用 xor 函数清除它时,我没有不知道我的代码有什么问题。

0 投票
0 回答
73 浏览

c++ - 将整数更改为长整数时出现大数字的浮点异常和不准确的结果

我遇到了这个问题,它给你 2 个整数nmn代表第二个数字的位数,第二个数字是二进制数。例如:

计算出二进制数后,您必须将该数设为 0。您只能从二进制数中减去 1 或除以 2。例如,在这种情况下,它将是:

我的程序确实可以工作并显示二进制数和操作数。但是当给定大数字时,它会抛出浮点异常。我的理论是,这是因为ints 太短了。但是当我将它们更改为longs 时,它会抛出一个完全不准确的结果。

0 投票
0 回答
235 浏览

python - 使用带有 keras 的 CNN 时出现浮点异常

我正在尝试在 keras 中实现一个简单的 CNN 进行回归。但是,当我增加网络的层数时,它会给出一个浮点异常。

我的模型定义如下


模型.py


并且超参数配置在以下文件中定义


配置文件


堆栈跟踪:

0 投票
0 回答
144 浏览

assembly - 汇编中的浮点异常 [NASM]

根据我看过的一些教程,在组装中有很多方法可以做事。我在这里的一个标记是我是否可以做到这一点。我正在订购一本关于组装的书,但现在我需要知道我的高 - 低游戏出了什么问题。它的目的是找到用户选择的数字。除了我还没有真正做任何事情的事实之外,我还陷入了浮点异常。我使用的是 32 位寄存器,我决定尝试将它们移动到 64 位,但这根本没有帮助。我期待它运行,并继续运行,直到他们不在输入点按“Y”或“N”。现在,正如我所说,它提供了 FPEx 并在没有任何用户输入的情况下转储。

我试过 YouTube 上的教程和一些备忘单。但是他们只是没有能力将我限制在我的错误所在的区域。不过,我已经做到了。非常有帮助,但我现在需要得到一些 1:1。