X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ad1e38f1a4dd835c65da9e4f56538a14d370d16..5bb24107d10842e458665a0a6c489a44d6108796:/src/surf/cpu_ti.c diff --git a/src/surf/cpu_ti.c b/src/surf/cpu_ti.c index 13ccde8b54..f40d1c62a6 100644 --- a/src/surf/cpu_ti.c +++ b/src/surf/cpu_ti.c @@ -1103,22 +1103,21 @@ static double surf_cpu_ti_solve_trace_simple(surf_cpu_ti_trace_t trace, static int surf_cpu_ti_binary_search(double *array, double a, int low, int high) { - xbt_assert(low a) - return mid; - - if (array[mid] < a) - low = mid + 1; - else - high = mid - 1; + xbt_assert(low < high, "Wrong parameters: low (%d) should be smaller than" + " high (%d)", low, high); + + int mid; + do { + mid = low + (high - low) / 2; + XBT_DEBUG("a %lf low %d high %d mid %d value %lf", a, low, high, mid, + array[mid]); + + if (array[mid] > a) + high = mid; + else + low = mid; } + while (low < high - 1); + + return low; }