Я пытаюсь сделать вектор с 4 двойными с помощью библиотеки System.Numerics из-за SIMD. Поэтому я создал эту структуру:Указатель на структуру, содержащую System.Numerics.Vector <double> в C#
public struct Vector4D
{
System.Numerics.Vector<double> vecXY, vecZW;
...
}
На этом этапе я кодирую его для 128-битного регистра SIMD. Он отлично работает, но когда я хочу что-то вроде этого:
Vector4D* pntr = stackalloc Vector4D[8];
я получаю это:
Не можете взять адрес, получить размер или объявить указатель на управляемый тип (» Vector4D ')
Любая идея использования stackalloc с System.Numerics.Vector? С System.Numerics.Vector4 (который является float-precision) нет проблем с указателями, но мне нужна двойная точность.
См. Http://stackoverflow.com/questions/1631754/c-using-a-generic-to-create-a-pointer-array. Вы не можете использовать адрес общего типа. – Rotem
Я вижу, но есть ли способ заставить его работать? –