.NET 4.6中System.Numerics.Vector <T>中的元素总和

Ant*_*n K 2 c# simd system.numerics

我无法找出一种方法来获取System.Numerics.Vector类型的向量中的元素总和。

double sum(System.Numerics.Vector<double> vect)
{
     // Something like 
     // double sum = 0;
     // foreach e in vect { sum += e; } 
     // return sum;

     // Vector.method???
     // For loop ???
}
Run Code Online (Sandbox Code Playgroud)

如果真的可能吗?我怎样才能做到这一点?

sau*_*rol 5

假设您确实打算拥有一个Vector可能包含(在当今的硬件中)2或4个双精度值的,这将对它们进行求和。

double vectorSum = Vector.Dot(yourDoubleVector, Vector<double>.One);
Run Code Online (Sandbox Code Playgroud)

Dot方法计算两个向量的点积,这是为两个向量定义AB大小的n作为A1 * B1 + A2 * B2 + ... + An * Bn

因此,一个向量A与另一个全为1的向量的点积将只是vector中各项的总和A