Warning: session_start(): open(/var/lib/php/sessions/sess_ie4krrmfreqbhnvsj86skshktf, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// finds highest index where predicate is true.
// returns from-1 when predicate is false on whole range.
// Predicate operates on a range and returns true
// iff any value in the range is contained in the set.
static int lastIndexOfRangePredicate(int from default 0, int to, IF2 pred) {
// interval empty?
if (from >= to) ret from-1;
// predicate false on whole range?
if (!pred.get(from, to)) ret from-1;
while ping (to-from > 1) {
// predicate is true somewhere in range. split in middle.
int mid = (from + to) >>> 1;
// check higher half
if (mid < to && pred.get(mid, to)) {
// predicate is true in higher half. move there, continue.
// if higher half is only one element, we're done
if (mid+1 == to) ret mid;
from = mid;
continue;
}
// higher half is clean, move to lower half
to = mid;
}
// we've narrowed things down to at most one element, return index
ret to-1;
}