gpt4 book ai didi

c++ - 如何使用内在函数对 double 执行绝对值?

转载 作者:行者123 更新时间:2023-11-28 00:24:49 25 4
gpt4 key购买 nike

<分区>

我们正在尝试制作一个包含不同操作的 vector 内部库,其中之一是获取数字的绝对值。但是,我的教授将其限制为仅 double

我对 x86 内部指令集还很陌生,所以我希望有人能启发我。

这是我目前所拥有的:

 void vectorAbs(double *x, double *y, unsigned int N);
int main()
{
double x[] = { -1, -2, -3, -4, -5, -6 };
double y[] = { 2, 2, 2, 2, 2, 2 };
double *pX = x, *pY = y;

vectorAbs(pX, pY, 6);
}

void vectorAbs(double *x, double *y, unsigned int N)
{
__m128d xVar;
__m128d yVar;

printf("\nSquare of x : \n");
for (int i = 0; i < N; i += 2)
{
xVar = _mm_loadu_pd(&x[i]); // load *x[i] to xVar

yVar = _mm_abs_epi16(xVar); // abs of x
_mm_storeu_pd(&y[i], yVar); // store yVar to y[i]

printf("%lf, %lf, ", y[i], y[i + 1]);
}
system("pause");

}

我得到的错误是:

no operator "=" matches these operands

operand types are: __m128d = __m128i

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com