From f153a66e1b211abf1c0517798e6653709e8cc137 Mon Sep 17 00:00:00 2001 From: andreselcientifico <102382273+andreselcientifico@users.noreply.github.com> Date: Thu, 1 Aug 2024 19:19:49 -0500 Subject: [PATCH] Update q_math.c Q_rsqrt 10x Removing unnecessary variables increases speed 10x from 1000 ns to 100 ns. --- code/game/q_math.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/game/q_math.c b/code/game/q_math.c index bb0faf69..ecd68b24 100644 --- a/code/game/q_math.c +++ b/code/game/q_math.c @@ -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