【发布时间】:2016-08-28 09:02:14
【问题描述】:
由于 SIMD,我正在尝试使用 System.Numerics 库制作具有 4 个双打的向量。所以我做了这个结构:
public struct Vector4D
{
System.Numerics.Vector<double> vecXY, vecZW;
...
}
在这个阶段,我将其编码为 128 位 SIMD 寄存器。 它工作正常,但是当我想要这样的东西时:
Vector4D* pntr = stackalloc Vector4D[8];
我明白了:
无法获取托管类型 ('Vector4D') 的地址、大小或声明指向托管类型的指针
知道如何将 stackalloc 与 System.Numerics.Vector 一起使用吗?使用 System.Numerics.Vector4(浮点精度),指针没有问题,但我需要双精度。
【问题讨论】:
-
见stackoverflow.com/questions/1631754/…。不能取泛型类型的地址。
-
我明白了,但是有什么办法让它工作吗?
标签: c# pointers simd stackalloc system.numerics