Korzyści w prędkości oferowane przez szybką odwrotność pierwiastka kwadratowego pochodzą od interpretowania słowa rozmiaru longUżycie typu long zmniejsza przenośność tego kodu na współczesnych maszynach. Aby kod wykonał się prawidłowo sizeof(long) musi zwracać 4 bajty, inaczej wyniki mogą być ujemne. W przypadku wielu współczesnych systemów 64-bitowych, sizeof(long) wynosi 8 bajtów. zawierającego liczbę zmiennoprzecinkową jako liczbę całkowitą, a następnie odjęcie jej od określonej stałej, 0x5f3759df. Dla osoby przeglądającej kod nie jest od razu jasne jaki jest cel wprowadzenia tej stałej, tak więc, jak wiele podobnych stałych w kodzie, nazywa się ją „liczbą magiczną”. To całkowitoliczbowe odejmowanie i przesunięcie bitowe zwraca słowo, które zinterpretowane jako liczba zmiennoprzecinkowa jest przybliżeniem odwrotności pierwiastka kwadratowego argumentu funkcji. Po wykonaniu jednej iteracji metodą Newtona wymagana dokładność jest osiągnięta a kod zakończony.
Źródło i licencja
Fragment artykułu Wikipedia — Szybka odwrotność pierwiastka kwadratowego · historia autorów.
Tekst: CC BY-SA 4.0. Wydzielono fragment z dłuższego artykułu.