【发布时间】:2012-08-24 03:50:03
【问题描述】:
我必须计算 N 维空间中两点之间的欧几里得距离,速度至关重要。我有两个 C 风格的浮点数组,代表 N 维空间中的两个点。
它们之间距离的公式是(^ 仅表示次方,而不是 XOR): sqrt(sum((p1-q1)^2 + (p2-q1)^2 + .... (pn-qn)^2))
我当前的代码如下所示:
sum = 0;
for(int i=0;i<N;++i){
sum += pow(p[i]-q[i],2);
sqrt(sum)
这段代码很慢,我想知道是否有任何库可以加快速度?我想有人已经编写了一个关于在 c 中对数组执行数学运算的快速库,它可以让我快速对数组进行元素运算。
编辑: 作为对 nevsan 的回答,我正在用一个小的 N 进行许多计算,大约为 10 或 20。
【问题讨论】:
标签: objective-c euclidean-distance