Newton Raphson z SSE2 - czy ktoś może mi wyjaśnić te 3 linie

Czytam ten dokument:http://software.intel.com/en-us/articles/interactive-ray-tracing

natknąłem się na te trzy linie kodu:

Wersja SIMD jest już nieco szybsza, ale możemy zrobić lepiej. Intel dodał funkcję szybkiego 1 / sqrt (x) do zestawu instrukcji SSE2. Jedyną wadą jest to, że jego precyzja jest ograniczona. Potrzebujemy precyzji, więc udoskonalamy ją za pomocą Newton-Rhapson:

 __m128 nr = _mm_rsqrt_ps( x ); 
 __m128 muls = _mm_mul_ps( _mm_mul_ps( x, nr ), nr ); 
 result = _mm_mul_ps( _mm_mul_ps( half, nr ), _mm_sub_ps( three, muls ) ); 

Ten kod zakłada istnienie zmiennej __m128 o nazwie „połowa” (cztery razy 0,5f) i zmiennej „trzy” (cztery razy 3,0f).

Wiem, jak używać Newtona Raphsona do obliczania zera funkcji i wiem, jak go użyć do obliczenia pierwiastka kwadratowego z liczby, ale nie widzę, jak ten kod go wykonuje.

Czy ktoś może mi to wyjaśnić?

questionAnswers(2)

yourAnswerToTheQuestion