_mm_rsqrt_pd()的数据类型错误?

时间:2016-02-27 18:53:07

标签: c intrinsics

我是这些内在学的新手,但想知道你是否可以帮助我。由于此错误,我的程序无法编译。关于如何修复它的任何想法?我认为这应该有效,因为r2_v也是数据类型__m128d

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);

1 个答案:

答案 0 :(得分:1)

您需要创建__m128d类型的变量。您可以使用

创建一个
  

__m128d _mm_set_pd (double e1, double e0)

或直接在通话中使用

_mm_rsqrt_pd( _mm_set_pd( d1, d2 ) );