问题标签 [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.
floating-point - 完美的除法引发浮点异常
我有一个神秘的浮点异常。我通过这样做来抓住它:
然后是这段代码中的第二个分区(最后一行):
如下抛出 SIGFPE:
除数(在控制台中打印,也由 gdb 打印)是 1.0839119,分子是 -1.05979919,所以我看不出有什么问题。
对于额外的怪异:
- 在 -O0 调试版本中不会发生。
- 如果我通过 valgrind 运行应用程序,则不会发生
编译器:
和编译器选项:
为什么会发生这种 FPE?我能想到的唯一原因是,即使它是一个标量除法,clang 也会生成一个 SIMD 除法。如果 XMM 寄存器中的其他通道包含零分母怎么办?如果任何通道被零除,SIMD 划分是否会生成 FPE?如果是这样,我怎么能捕获 FPE?
c - 为什么我会收到“浮点异常(核心转储)”?
因此,当我输入正数或正数和负数时,代码可以正常工作,但仅输入负数会导致浮点错误,我知道除以零会导致这种情况,但我正在按输入数潜水
所以输入 -3 -2 -1 0 的输出应该是“负均值:-2”
c - C:无序浮点比较不会引发 FE_INVALID
我遇到了浮点比较的问题。使用<
运算符将值与 NaN 进行比较时,我希望FE_INVALID
设置该标志。操作员应根据<
C11 标准(也根据 IEEE-754)升旗:
宏确定它的
isless
第一个参数是否小于它的第二个参数。的值isless(x, y)
始终等于(x) < (y)
; 但是,与 不同(x) < (y)
的是 ,当和无序isless(x, y)
时不会 引发“无效”浮点异常。x
y
这是一个重现我的问题的示例程序:
在我的机器(Linux,march=broadwell
)上,它返回“Not invalid”。我使用 GCC v7.2.0 编译它,使用-std=c11
选项(不使用它并没有改变结果中的任何内容)。发出的 x86 指令UCOMISS
仅引发信号 NaN 的异常 - 我希望看到COMISS
这会引发所有 NaN 比较的异常,因为无论它们是否发出信号,NaN 都是无序的。
我是否在代码中犯了错误或忘记了一些编译器选项以使行为符合 IEEE 标准?忽略此处引发异常的需要可能是编译器中的错误(或性能优化)吗?
c++ - 运行程序时出现浮点异常
我正在尝试使用 OpenMP 执行程序并查看执行时间,但我不断收到浮点异常。
如果没有 design.cpp 文件,我将无法在测试台中实例化 DUT。所以将该文件包含在其他 CPP 中。
我能够在没有 OpenMP 的情况下运行这个文件。
关于我在哪里实施错误的任何帮助。
//设计.cpp
rust - 奇数大小对齐向量的“安全”SIMD算法?
假设我有一些 16 字节对齐的结构,它只包装 3xFloat32 数组:
现在我想划分它的两个实例,如下所示:
它会除法,但有一个问题:第 4 个元素包含垃圾,除其他外,它可能发出 NaN 信号。如果某些异常标志未被屏蔽,则将触发 SIGFPE。我想以某种方式避免这种情况,而无需完全消除信号。即我要么只想在第 4 对元素上使其静音,要么放一些理智的值。最好、最快的方法是什么?或者也许有更好的方法?
c++ - (C++) 如何修复错误:因信号终止:浮点异常 (8)
我正在练习一些书本问题,但我无法理解为什么会出现“由于信号而终止:浮点异常(8)”错误。
如果可能,您能否解释一下为什么会出现错误以及如何修复它。
感谢您的时间。
我不明白这个错误。因此,我没有尝试任何东西
我希望检查质数,并且使用适当的策略我无法输出任何内容。
assembly - 浮点异常程序集 64 位
浮点异常核心转储。我正在使用 64 位汇编。我想我在使用 div 指令时遇到了错误,从我所看到的错误中,(人们似乎在不清除 RDX 时得到它)但是当我使用 xor 函数清除它时,我没有不知道我的代码有什么问题。
c++ - 将整数更改为长整数时出现大数字的浮点异常和不准确的结果
我遇到了这个问题,它给你 2 个整数n
和m
,n
代表第二个数字的位数,第二个数字是二进制数。例如:
计算出二进制数后,您必须将该数设为 0。您只能从二进制数中减去 1 或除以 2。例如,在这种情况下,它将是:
我的程序确实可以工作并显示二进制数和操作数。但是当给定大数字时,它会抛出浮点异常。我的理论是,这是因为int
s 太短了。但是当我将它们更改为long
s 时,它会抛出一个完全不准确的结果。
python - 使用带有 keras 的 CNN 时出现浮点异常
我正在尝试在 keras 中实现一个简单的 CNN 进行回归。但是,当我增加网络的层数时,它会给出一个浮点异常。
我的模型定义如下
模型.py
并且超参数配置在以下文件中定义
配置文件
堆栈跟踪:
assembly - 汇编中的浮点异常 [NASM]
根据我看过的一些教程,在组装中有很多方法可以做事。我在这里的一个标记是我是否可以做到这一点。我正在订购一本关于组装的书,但现在我需要知道我的高 - 低游戏出了什么问题。它的目的是找到用户选择的数字。除了我还没有真正做任何事情的事实之外,我还陷入了浮点异常。我使用的是 32 位寄存器,我决定尝试将它们移动到 64 位,但这根本没有帮助。我期待它运行,并继续运行,直到他们不在输入点按“Y”或“N”。现在,正如我所说,它提供了 FPEx 并在没有任何用户输入的情况下转储。
我试过 YouTube 上的教程和一些备忘单。但是他们只是没有能力将我限制在我的错误所在的区域。不过,我已经做到了。非常有帮助,但我现在需要得到一些 1:1。