c++ - 快速将数组 float 到双数组并返回

标签 c++ visual-c++ sse

我需要将内存中的大型 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/

相关文章:

c++ - 可变参数模板成员函数的部分特化

c++ - 使用++ 运算符递增 map<string, int>

c++ - 类包含复制构造函数和赋值运算符时的继承行为

visual-studio - 在 Visual Studio 中粘贴到 .h 文件时保留空格

c++ - C++ 中 SSE 的内存对齐,_aligned_malloc 等效?

c# - 缺少 System.Numerics.Vectors.Vector<T>

c++ - 参数化非类型模板参数?

c++ - 获取所有访问的 URL,以及响应时间?

c++ - 生成不同的随机数

c++ - 在 SSE 整数寄存器之间洗牌