Update q_math.c Q_rsqrt 10x
Removing unnecessary variables increases speed 10x from 1000 ns to 100 ns.
This commit is contained in:
parent
dbe4ddb103
commit
f153a66e1b
1 changed files with 3 additions and 6 deletions
|
@ -553,14 +553,11 @@ float Q_rsqrt( float number )
|
||||||
{
|
{
|
||||||
long i;
|
long i;
|
||||||
float x2, y;
|
float x2, y;
|
||||||
const float threehalfs = 1.5F;
|
|
||||||
|
|
||||||
x2 = number * 0.5F;
|
x2 = number * 0.5F;
|
||||||
y = number;
|
i = 0x5f3759df - ( * ( long * ) &number >> 1 ); // evil floating point bit level hacking // what the fuck? 10x
|
||||||
i = * ( long * ) &y; // evil floating point bit level hacking
|
|
||||||
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
|
|
||||||
y = * ( float * ) &i;
|
y = * ( float * ) &i;
|
||||||
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
|
y = y * ( 1.5F - ( x2 * y * y ) ); // 1st iteration
|
||||||
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
|
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
|
||||||
|
|
||||||
#ifndef Q3_VM
|
#ifndef Q3_VM
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue