Подробнее
float Q rsqrt( float number ) < long i; float x2, y; const float threehalfs - x2 ■ number • O.SF; y “ number; 1 - • ( long • ) ty; 1 - 0x5f3759df - ( 1 » y - • ( float • ) 41; y - y • ( threehalfs - ( // y - y * ( threehalfs - ( 1. SF; l ); x2 * y * y ) >; x2 • y • y ) ): ) return y; Это • оригинальный кусок кода игры Quake 3 с комментариями Джона Кармака без каких либо изменений. // evil floating point bit level hacking // vhat the fuck? // 1st iteration // 2nd iteration, this can be removed
программирование,Магия,wtf
Еще на тему
пардоньте, я тут пива попил и нихуя не понял. алгоритм матлаба быстрее алгоритма кваки или чо?
._.
А вообще для не слишком скилового разработчика там весь код примерно так выглядит.
Не знаю, как там в Си, но предположу, что
1) Если не написать, получится double
2) При приведении double->float потеряешь точность, и *ненависть* у тебя получится совсем не полтора...
А что этот код делает - гуглится на раз по запросу "быстрый обратный квадратный корень"