diff --git a/src/utilities.h b/src/utilities.h index 28d6d28eae3eaafa6cdbe698fc6c1bee7d3b78ff..02124682eb45c6c10c0a1153abca63ce95363bf2 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -27,12 +27,11 @@ * @param x The value to find * @param array The array to search * @param n The length of the array - * @param index The found index * - * Set -1 and n for x below and above the array edge values respectively. + * Return -1 and n for x below and above the array edge values respectively. */ -INLINE static void find_value_in_monotonic_array( - const float x, const float *array, const int n, int *index) { +INLINE static int find_value_in_monotonic_array( + const float x, const float *array, const int n) { int index_mid, index_low = 0, index_high = n; @@ -49,11 +48,11 @@ INLINE static void find_value_in_monotonic_array( // Set index with the found index_low or an error value if outside the array if (x < array[0]) - *index = -1; + return -1; else if (array[n-1] <= x) - *index = n; + return n; else - *index = index_low; + return index_low; } #endif /* SWIFT_UTILITIES_H */ diff --git a/tests/testUtilities.c b/tests/testUtilities.c index 1f2f2cb57cd11b8637b3179e3ed40e8b5797bd8c..a08eec37ad5bd017b98c349f0ff76e641922903d 100644 --- a/tests/testUtilities.c +++ b/tests/testUtilities.c @@ -37,28 +37,28 @@ int main() { // Typical value x = 42.42f; - find_value_in_monotonic_array(x, array, n, &index); + index = find_value_in_monotonic_array(x, array, n); if (index != 42) { error("Failed with a typical value "); } // Value on array element x = 33.f; - find_value_in_monotonic_array(x, array, n, &index); + index = find_value_in_monotonic_array(x, array, n); if (index != 33) { error("Failed with an array element "); } // Value below array x = -123.f; - find_value_in_monotonic_array(x, array, n, &index); + index = find_value_in_monotonic_array(x, array, n); if (index != -1) { error("Failed with a value below the array "); } // Value above array x = 123.f; - find_value_in_monotonic_array(x, array, n, &index); + index = find_value_in_monotonic_array(x, array, n); if (index != n) { error("Failed with a value above the array "); } @@ -66,7 +66,7 @@ int main() { // Array slice with typical value x = 9.81f; n = 10; - find_value_in_monotonic_array(x, array + 5, n, &index); + index = find_value_in_monotonic_array(x, array + 5, n); if (index != 4) { error("Failed with an array slice "); }