【发布时间】:2018-05-25 05:54:11
【问题描述】:
我一直在学习使用英特尔数学核心函数库。直到现在我需要高效时一切都很好:
- 将双精度数组乘以 MKL_Complex16 数组。
- 计算 iy 的指数,其中 y 是双精度数组。
具体来说,我需要执行 a = x * exp(iy),其中 x 和 y 是相同大小的双精度数组,a 应该是 MKL_Complex16 的数组。
由于 MKL_Complex16 = struct { double real, imag } 我可以手动创建新的 MKL_Complex16 数组并将实际值写入真实成员,但这似乎非常低效。这种计算需要执行数千次。我也可以手动将指数计算为正弦和余弦,然后再次使用循环,但这也不好。也许有一个例程可以只复制到“真实”成员中,但由于结构可能存在填充,我认为这行不通。
x 和 y 数组都被有效地评估,但我怎样才能有效地计算“a”呢? (这是使用 MKL 将部分输入用于反向 FFT)。
谢谢!
【问题讨论】:
标签: intel exponential intel-mkl