ben*_*ope 5 floating-point opencl
在OpenCL中,有两个表示无穷大的浮点数学常量.其中一个很简单INFINITY.另一方面,HUGE_VALF"评估"无限.
这两者有什么区别?"评估"无限是什么意思?
HUGE_VALF是一个遗留名称,允许不支持无穷大的浮点系统.例如,C标准指定HUGE_VALF在某些溢出情况下返回.当C实现不支持无穷大时,HUGE_VALF将是最大的可表示值.当一个实现确实支持无穷大时,HUGE_VALF将是无限的.C标准仍然允许这样,我想有一些实现仍然不支持无穷大.
OpenCL使用IEEE 754(或多或少),因此它确实具有无穷大,因此HUGE_VALF无穷大.通过定义HUGE_VALF,OpenCL有助于支持将旧C代码移植到OpenCL.
关于" HUGE_VALF评估为+无穷大"但是INFINITY"表示正或无符号无穷大的float类型的常量表达式"的措辞,我想知道这是否意图允许某些运行时准备HUGE_VALF(例如,表达为1./0.) .然而,该文件也说HUGE_VALF是"一个正浮点常量表达式."在资产,这让我想到的措辞仅仅是一个有点草率,这HUGE_VALF和INFINITY是等价的.