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;
|
||||
float x2, y;
|
||||
const float threehalfs = 1.5F;
|
||||
|
||||
x2 = number * 0.5F;
|
||||
y = number;
|
||||
i = * ( long * ) &y; // evil floating point bit level hacking
|
||||
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
|
||||
x2 = number * 0.5F;
|
||||
i = 0x5f3759df - ( * ( long * ) &number >> 1 ); // evil floating point bit level hacking // what the fuck? 10x
|
||||
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
|
||||
|
||||
#ifndef Q3_VM
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue