Ast*_*oth 14 c math floating-point ieee-754
以下C函数来自fastapprox项目.
static inline float
fasterlog2 (float x)
{
union { float f; uint32_t i; } vx = { x };
float y = vx.i;
y *= 1.1920928955078125e-7f;
return y - 126.94269504f;
}
Run Code Online (Sandbox Code Playgroud)
有些专家可以解释一下为什么上面代码中使用的指数偏差是126.94269504而不是127?是否更准确的偏差值?
在您链接的项目中,它们包括一个Mathematica笔记本,其中包含对其算法的解释,其中包含"神秘" -126.94269值.
如果您需要观看者,可以从Mathematica网站免费获取一个.
编辑:由于我感觉很慷慨,这是截图表格中的相关部分.
简单地说,他们解释说价值"更简单,更快,更准确".
他们没有-126.94269代替-127使用它们,而是使用它代替以下计算的结果(为简洁而舍入的值):
-124.2255 - 1.498 * mx - (1.72588 / (0.35201 + mx))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |