Guest User

Untitled

a guest
Oct 18th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. struct Compare {double val; size_t index;};
  2. #pragma omp declare reduction(minimum : struct Compare : omp_out = omp_in.val < omp_out.val ? omp_in : omp_out)
  3.  
  4. size_t FindNearestCentroid(const Points& centroids, const Point& point) {
  5. struct Compare min;
  6. min.val = Distance(point, centroids[1]);
  7. min.index = 1;
  8.  
  9. #pragma omp parallel for reduction(minimum: min)
  10. for (size_t i = 1; i < centroids.size(); ++i) {
  11. double distance = Distance(point, centroids[i]);
  12. if (distance < min.val) {
  13. min.val = distance;
  14. min.index = i;
  15. }
  16. }
  17. return min.index;
  18. }
Add Comment
Please, Sign In to add comment