2016-02-27 30 views
0

我是新來的這些Intrinsics,但想知道如果你能幫我。由於這個錯誤,我的程序不會編譯。任何想法如何解決它?我會假設這應該工作,因爲r2_v也是數據類型__m128d_mm_rsqrt_pd()的數據類型錯誤?

error: initializing '__m128d' (vector of 2 'double' values) 
with an expression of incompatible type 'int' 
        __m128d r2inv_v = _mm_rsqrt_pd(r2_v); 
          ^  ~~~~~~~~~~~~~~~~~~ 

謝謝。

這是圍繞

__m128d r2_v = _mm_add_pd(_mm_add_pd(_mm_mul_pd(rx_v, rx_v),_mm_mul_pd(ry_v, ry_v)),_mm_add_pd(_mm_mul_pd(rz_v, rz_v),eps_v)); 
__m128d r2inv_v = _mm_rsqrt_pd(r2_v); 
+0

錯誤沒有代碼中使用它是不是一個很大的幫助。它看起來像你正在嘗試使用一個整數,它需要一個雙精度的向量 - 看看https://software.intel.com/sites/landingpage/IntrinsicsGuide/#cats=Set – technosaurus

回答

1

它的代碼錯誤,你需要創建類型__m128d的變量。您可以使用

__m128d _mm_set_pd (double e1, double e0)

或直接呼叫

_mm_rsqrt_pd(_mm_set_pd(d1, d2));