gpt4 book ai didi

c++ - 战俘(1,信息)==南?

转载 作者:搜寻专家 更新时间:2023-10-31 00:32:16 28 4
gpt4 key购买 nike

我注意到我的一个计算着色器有一些奇怪的行为,它们会意外地返回 nan。仔细调查时,我发现 pow成为罪魁祸首:

pow(1, inf) == NaN

来自C/C++我期望的观点pow(1, inf) == 1 :

pow(+1, exponent) returns 1 for any exponent, even when exponent is NaN

是GLSL的pow为此输入定义?

我只找到了 base < 0 的常见异常(exception)情况, 和 base == 0 && exponent <= 0在规范中。

最佳答案

@Damon's answer很接近,但从规范中复制了一个错误:

pow(x, y) == exp2(x *  log2 (y))

交换了 x 和 y。应该是

pow(x, y) == exp2(y *  log2 (x))

(测试例如 pow(2, 3))

使用正确的公式我们得到

pow(1, inf) == exp2(inf * log2(1)) == exp2(inf * 0) == exp2(nan) == nan

关于c++ - 战俘(1,信息)==南?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31915601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com