kategorie: ANSI C, Asembler, C++
[#1] [C, C++] Szybki algorytm na obliczanie 1/sqrt(x)
Pewnie cześć z Was to zna, ja dopiero widziałem filmik, więc na wszelki wypadek się dzielę,
może Ktoś sobie to zaimplementuje i coś mu tam przyśpieszy :)
To jest szybki algorytm 1/sqrt(x) użyty m.in. w Quake3, choć John Carmack nie jest jego autorem.

Przyznam że zapis, mnie wywalił z krzesła, bo nawet nie wiem co oznacza :D
* (long * ) &y


może Ktoś się pokusi o jakiś teścik? tzn. porównać zwykłe działanie 1/sqrt(x)
z tą szybszą implementacją i podzieli się wynikami? :)

artykuł opisujący na wiki:
https://pl.wikipedia.org/wiki/Szybka_odwrotno%C5%9B%C4%87_pierwiastka_kwadratowego

filmik objasniający
[#2] Re: [C, C++] Szybki algorytm na obliczanie 1/sqrt(x)

@mateusz_s, post #1

Ten algorytm widzialem juz dawno temu ale zadnych testow nie robilem.
A zapis ktory przytoczyles oznacza ze z pod zmiennej y ktora jest zdefinowana jako rzeczywiscta (z przecinkiem).
odczytujesz zawrtosc ale przypisujesz ja do typu calkowitego.
Ale nie przez obciecie tego co jest po przeciunku tylko intereseujecie sposob zapisu liczby zmiennoprzecinkowej.
[#3] Re: [C, C++] Szybki algorytm na obliczanie 1/sqrt(x)

@mateusz_s, post #1

Ten trick dziala tylko na 32bitowych liczbach zminnoprzecinkowych w formacie IEEE754. FPU Motoroli obsluguje kilka formatow (takze ten 32bitowy zwany single) ale wewnetrznie operacje wykonywane sa w formacie extended czyli 80 bitow i wyniki w rejestrach sa w takim wlasnie formacie. Trzeba to brac pod uwage we wszelkich testach.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem