我需要将内存中的大型 float
数组转换为 double
数组并返回。 Visual C++ 15 update 3 中是否有任何 SSE 编译器内部函数有帮助?
编辑:这是两种有线格式之间的转换,因此#define 无济于事。数据结构存储为 float ,但第三方处理库需要一个 double 组。
最佳答案
您可以为此使用 SSE:
float
-> double
:_mm_cvtps_pd
double
-> float
:_mm_cvtpd_ps
首先尝试一个简单的标量循环,因为 (a) 编译器可能无论如何都会为您进行矢量化,并且 (b) 您很可能受内存限制,因此 SIMD 优化可能没有多大帮助。
关于c++ - 快速将数组 float 到双数组并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40638826/