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

时间:2016-02-19 20:45:52

标签: 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 ???
}

如果它真的可能吗?我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

假设你确实想要一个Vector可以包含(在今天的硬件中)2或4个双打,这将是它们的总和。

double vectorSum = Vector.Dot(yourDoubleVector, Vector<double>.One);

Dot方法计算两个向量的点积,为两个向量AB定义nA1 * B1 + A2 * B2 + ... + An * Bn < / p>

因此,向量A和所有1的另一个向量的点积将只是向量A中项目的总和。