球形高斯近似
之前提到,这篇文章 介绍了通过 球形高斯近似 来优化 pow 的计算,代码如下:
优化前:
// Generalized Power Function
float pow(float x, float n)
{
return exp(log(x) * n);
}
优化后:
// Spherical Gaussian Power Function
float pow(float x, float n)
{
n = n * 1.4427f + 1.4427f; // 1.4427f --> 1/ln(2)
return exp2(x * n - n);
}
推导
关于上面代码的推导,可以参考 这篇文章,这里再列一下主要推导过程:
pow 的 球形高斯近似:
pow(nh, K) = exp(-K*(1-nh))
其中 exp