gpt4 book ai didi

c - 如何在 __m128 变量中包含整个复数?

转载 作者:行者123 更新时间:2023-11-30 15:04:59 25 4
gpt4 key购买 nike

我没有太多在 C 中使用内在函数的经验。我的问题是拥有这个函数

void function(complex float* A, complex float* B, complex float alpha) {

我想使用像 __m128 这样的 alpha,但如果我这样做

__m128 alfa = _mm_load_ps((float const *)&alpha);

alfa 只获取复数的实部。

我怎样才能在__m128 alfa中得到整个复数?

最佳答案

这段代码对我来说效果很好:

complex float a __attribute__ ((aligned (16))) = 5 + 10*I;
__m128 f = _mm_load_ps((float const *)&a); // requires 16B alignment
float *p = (float *)&f;
printf("real(0): %f, imag(1): %f, (2): %f, (3): %f\n", p[0], p[1], p[2], p[3]);

打印

real(0): 5.000000, imag(1): 10.000000, (2): 0.000000, (3): 0.000000

您确定alpha有一个非零虚部吗?你怎么知道你只得到了真正的部分?

关于c - 如何在 __m128 变量中包含整个复数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40051461/

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