在简单向量和数组上运行的C#数学库

c#有几个数学库,但它们似乎都定义了自己的向量和矩阵类型,或者对已建立的c#类(如Vector3D或Vector)进行操作.

是否有任何数学库操作“简单”向量和矩阵类型,如double []和double [,]

一些“好有”功能的例子就是

double[] v = new double[3];
double[] w = new double[3];
double m[,] = new double[3,3];

double vDOTv = DesiredClass.Dot(v); // v.v

double[] normV = DesiredClass.Normalize(v); // normalize vector

double[] cCROSSw = DesiredClass.Cross(v,w);  // v x w

double vDOTm = DesiredClass.Dot(v,m,i); // v.m[i] - dot product of v with ith row of m

最佳答案 您可以为这些类型创建自己的类,并为它们提供从双数组到双数组的隐式转换,然后创建那些接受您自己类型的参数的实用程序方法,这些参数可以在这些数组上运行,因为存在隐式转换.

但这有点可疑,为什么不在普通类型上工作.

点赞