in uforwarder-core/src/main/java/com/uber/data/kafka/datatransfer/controller/autoscalar/ScalePredictionUtils.java [100:122]
public static int findFirstSmaller(double[] arr, double target) {
if (arr == null || arr.length == 0) {
return -1;
}
int low = 0;
int high = arr.length - 1;
while (low < high - 1) {
int mid = low + (high - low) / 2;
if (arr[mid] < target) {
high = mid;
} else {
low = mid + 1;
}
}
if (arr[low] < target) {
return low;
} else if (arr[high] < target) {
return high;
} else {
return -1;
}
}