Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Compare {double val; size_t index;};
- #pragma omp declare reduction(minimum : struct Compare : omp_out = omp_in.val < omp_out.val ? omp_in : omp_out)
- size_t FindNearestCentroid(const Points& centroids, const Point& point) {
- struct Compare min;
- min.val = Distance(point, centroids[1]);
- min.index = 1;
- #pragma omp parallel for reduction(minimum: min)
- for (size_t i = 1; i < centroids.size(); ++i) {
- double distance = Distance(point, centroids[i]);
- if (distance < min.val) {
- min.val = distance;
- min.index = i;
- }
- }
- return min.index;
- }
Add Comment
Please, Sign In to add comment