4

我无法弄清楚如何在 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 ???
}

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

4

1 回答 1

12

假设您确实打算拥有一个Vector可以包含(在今天的硬件中)2 个或 4 个双打的,这将把它们相加。

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

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

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

于 2017-01-24T20:06:52.900 回答