You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
382 B
26 lines
382 B
/* Implementation of fast inverse square root. |
|
* See http://en.wikipedia.org/wiki/Fast_inverse_square_root |
|
*/ |
|
|
|
float fisqrt(float n) |
|
{ |
|
long i; |
|
float x2, y; |
|
union { |
|
float f; |
|
long l; |
|
} u; |
|
|
|
x2 = n * 0.5f; |
|
y = n; |
|
/* i = *(long *)&y; */ |
|
u.f = y; |
|
i = u.l; |
|
i = 0x5f3759df - (i>>1); |
|
/* y = *(float *)&i; */ |
|
u.l = i; |
|
y = u.f; |
|
y = y * (1.5f - (x2*y*y)); |
|
|
|
return y; |
|
}
|
|
|