Tag: method

Newton Raphson与SSE2 – 有人可以解释我这3行

我正在阅读这份文件: http : //software.intel.com/en-us/articles/interactive-ray-tracing 我偶然发现了这三行代码: SIMD版本已经快了很多,但我们可以做得更好。 英特尔为SSE2指令集添加了快速1 / sqrt(x)函数。 唯一的缺点是它的精度有限。 我们需要精度,所以我们使用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 ) ); 此代码假定存在名为“half”(四次0.5f)和变量“three”(四次3.0f)的__m128变量。 我知道如何使用Newton Raphson计算函数的零,我知道如何使用它来计算数字的平方根,但我只是看不出这个代码如何执行它。 有人可以向我解释一下吗?