han*_*nes 6 c c++ numerical cuda
在CUDA程序中,我最近从使用的测试转换为无限性
return x==INFINITY || x==-INFINITY;
Run Code Online (Sandbox Code Playgroud)
其中INFINITY是从math.h中,至
return !isfinite(x);
Run Code Online (Sandbox Code Playgroud)
得到不同的结果,我感到非常惊讶.gnu.org建议他们实际应该表现得相似.我错过了什么吗?是不允许INFINITY在CUDA内核中使用?
编辑:
我刚发现isinf并注意到使用检查
return isinf(x);
Run Code Online (Sandbox Code Playgroud)
给出与INFINITY检查相同的结果.为什么不
isfinite(x)==!isinf(x)呢?
isfinite(a)是一样的!isnan(a) && !isinf(a).如果x为NaN,那么这两个isfinite(x)和isinf(x)是假的.