use a modified (guess-based) binary search to speed up iteration