【发布时间】:2010-12-03 22:04:42
【问题描述】:
在 CUDA 程序中,我最近从使用无穷大测试切换
return x==INFINITY || x==-INFINITY;
INFINITY 是从 math.h 到
return !isfinite(x);
并且对得到不同的结果感到非常惊讶。 gnu.org 建议他们实际上应该表现得相似。我错过了什么吗? CUDA内核中不允许使用INFINITY吗?
编辑:
我刚刚发现 isinf 并注意到使用检查
return isinf(x);
给出与 INFINITY 检查相同的结果。为什么不是
isfinite(x)==!isinf(x)?
【问题讨论】:
-
结果有什么不同?结果如何?预期的结果是什么?
-
我还不确定,但似乎 isfinite 比 INFINITY 测试更严格。
-
@stephen canon:授予,但 Cg 文档没有提到 math.h 中的 INFINITY 宏,这是我要问的区别。显然 INFINITY 宏确实像 isinf 一样工作(请参阅我的编辑),因此它具有一定的相关性。