嘿,我正在尝试使用 Mono 的 SIMD 在我的项目中处理坐标(X,Y,Z),但我只看到对 Vector2 和 Vector4 类型的支持。以前有没有人遇到过这种情况,有什么解决方法吗?
提前致谢。
这与寄存器的工作方式有关。您可以只使用 Vector4f 并将该W
部分设置为 0 或 1(取决于您要对矢量做什么),一切都会好起来的。
http://tirania.org/blog/archive/2008/Nov-03.html解释:
在 x86 处理器上,这些指令使用新的寄存器组(XMM 寄存器),并且可以使用多种可能的组合配置为一次处理 16 个字节:
* byte-level operations on 16 elements. * short-level operations on 8 elements. * single precision or integer-level operations on 4 elements. * double precision or long-integer operations on 2 elements.