2016-02-27 1 views
0

Je suis nouveau à ces Intrinsics mais je me demandais si vous pouviez m'aider. Mon programme ne compilera pas à cause de cette erreur. Des idées sur la façon de le réparer? Je suppose que cela devrait fonctionner parce que r2_v est également de type de données __m128dMauvais type de données pour _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); 
          ^  ~~~~~~~~~~~~~~~~~~ 

Merci.

Ceci est le code il des erreurs autour

__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

L'erreur sans le code n'est pas beaucoup d'aide. On dirait que vous essayez d'utiliser un entier où il faut un vecteur de doubles -Prenez un coup d'oeil à https://software.intel.com/sites/landingpage/IntrinsicsGuide/#cats=Set – technosaurus

Répondre

1

Vous devez créer une variable de type __m128d. Vous pouvez en créer un en utilisant

__m128d _mm_set_pd (double e1, double e0)

ou l'utiliser directement dans l'appel

_mm_rsqrt_pd(_mm_set_pd(d1, d2));