Ньютон Рафсон с SSE2 - может кто-нибудь объяснить мне эти 3 строки

Я читаю этот документ:http://software.intel.com/en-us/articles/interactive-ray-tracing

и я наткнулся на эти три строки кода:

SIMD-версия уже немного быстрее, но мы можем добиться большего. Intel добавила быструю функцию 1 / sqrt (x) в набор инструкций SSE2. Единственным недостатком является то, что его точность ограничена. Нам нужна точность, поэтому мы уточняем ее с помощью 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 ) ); 

Этот код предполагает существование переменной __m128 с именем 'половина» (четыре раза по 0,5f) и переменная 'три' (четыре раза 3.0f).

Я знаю, как использовать Ньютона Рафсона для вычисления функцииноль, и я знаю, как использовать его для вычисления квадратного корня числа, но я просто могуне вижу, как этот код выполняет это.

Может кто-нибудь объяснить это мне, пожалуйста?

Ответы на вопрос(2)

Ваш ответ на вопрос