【发布时间】:2016-10-25 10:32:36
【问题描述】:
我正在尝试使用__m128 向量单位对复数浮点数进行一些计算。使用__m128,我可以存储两个complex floats,因为每个复数由两个浮点数组成,一个实部和一个虚部。
到目前为止,一切都很好。
当我必须将我的答案“收集”到 one complex float 时,我的问题就出现了。假设我有两个 __m128 向量,以及存储在这两个向量中的四个复数。例如,我可以使用 _mm_add_ps 内在函数将两个向量(两个和两个浮点数)相加,但是如何将结果向量中的两个复数“减少”为一个复数(两个 floats)和将其存储在数组中?
同样,如果我想从我的数组中获取一个复数并将其存储在一个向量中两次(实部在第 1 块和第 3 块中,虚部在第 2 块和第 4 块中),我该怎么做完成这个?
【问题讨论】:
标签: c vector floating-point complex-numbers intrinsics