"Lomont then searched for a constant optimal even after one and two Newton iterations and found 0x5F375A86, which is more accurate than the original at every iteration stage."

git-svn-id: https://svn.eduke32.com/eduke32@6958 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
terminx 2018-07-29 19:31:12 +00:00
parent ddd8b7e5bb
commit e92e9d4f04

View file

@ -159,7 +159,7 @@ static inline float polymost_invsqrt_approximation(float x)
#ifdef B_LITTLE_ENDIAN
float const haf = x * .5f;
struct conv { union { uint32_t i; float f; } ; } * const n = (struct conv *)&x;
n->i = 0x5f3759df - (n->i >> 1);
n->i = 0x5f375a86 - (n->i >> 1);
return n->f * (1.5f - haf * (n->f * n->f));
#else
// this is the comment