Следующая функция 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;
}
Могут ли некоторые эксперты объяснить, почему погрешность экспоненты, используемая в приведенном выше коде, составляет 126.94269504 вместо 127? Это более точное значение смещения?