INNER CODE UNIT · Rust
lower_bound_by
kaist-ina/BWA-MEME · RMI/rmi_lib/src/models/mod.rs:407
pub fn lower_bound_by<F>(&self, f: F) -> usize
where F: Fn((T, usize)) -> Ordering {
let mut size = self.len();
if size == 0 { return 0; }
let mut base = 0usize;
while size > 1 {
let half = size / 2;
let mid = base + half;
let cmp = f(self.get(mid));
base = if cmp == Ordering::Less { mid } else { base };
size -= half;
}
let cmp = f(self.get(base));
base + (cmp == Ordering::Less) as usize
}
pub fn soft_copy(&self) -> RMITrainingData<T> {