Добавление векторизованных массивов C #

Есть ли способ "векторизовать" добавление элементов по массивам в режиме SIMD?

Например, я хотел бы превратить:

var a = new[] { 1, 2, 3, 4 };
var b = new[] { 1, 2, 3, 4 };
var c = new[] { 1, 2, 3, 4 };
var d = new[] { 1, 2, 3, 4 };

var e = new int[4];

for (int i = 0; i < a.Length; i++)
{
    e[i] = a[i] + b[i] + c[i] + d[i];
}

// e should equal { 4, 8, 12, 16 }

во что-то вроде :

var e = VectorAdd(a,b,c,d);

Я знаю, что что-то может существовать в библиотеках C ++ / XNA, но я не знал, есть ли это в стандартных библиотеках .Net.

Спасибо!

10
задан Alex Moore 21 November 2011 в 16:11
поделиться