double calculateRSS(cluster& c) { double result = 0; for (int i=0; i<c.members.size(); i++) { result += distanceSQ(c.centroid, c.members.get(i)->v); } return result; }
cluster& findBestCluster(cluster* clusters, int k, vector& v) { int best_cl = 0; double best_dist = INFINITY; for(int i=0; i<k; i++) { double dist = distanceSQ(v, clusters[i].centroid); if(dist < best_dist) { best_dist = dist; best_cl = i; } } return clusters[best_cl]; }
int GameObject::distanceSQ(const GameObject &other) const { return distanceSQ( other.x(), other.y() ); }