Listing 1: Finding the nearest neighbor with and without sqrt


/* find nearest neighbor as
 * min(curr_min, sqrt(dx*dx + dy*dy))
 * and as min(curr_min, dx*dx + dy*dy)
 * ARR_SIZE is 500000 */
  start_clock = clock();
  dx = arr[0][0] - ptx;
  dy = arr[0][1] - pty;
  min_dist = sqrt(dx*dx + dy*dy);
  for (i = 0; i < ARR_SIZE; i++)
  {
    dx = arr[i][0] - ptx;
    dy = arr[i][1] - pty;
    dist = sqrt(dx*dx + dy*dy);
    if (dist < min_dist)
      min_dist = dist;
  }
  end_clock = clock();
  clock_sqrt = end_clock - start_clock;
  start_clock = end_clock;
  dx = arr[0][0] - ptx;
  dy = arr[0][1] - pty;
  min_dist2 = dx*dx + dy*dy;
  for (i = 0; i < ARR_SIZE; i++)
  {
    dx = arr[i][0] - ptx;
    dy = arr[i][1] - pty;
    dist2 = dx*dx + dy*dy;
    if (dist2 < min_dist2)
      min_dist2 = dist2;
  }
  end_clock = clock();
  clock_no_sqrt = end_clock - start_clock;

/* End of File */