MCPcopy Create free account
hub / github.com/RoaringBitmap/roaring / binarySearch

Method binarySearch

roaring64/roaringarray64.go:278–303  ·  view source on GitHub ↗
(begin, end int64, ikey uint32)

Source from the content-addressed store, hash-verified

276}
277
278func (ra *roaringArray64) binarySearch(begin, end int64, ikey uint32) int {
279 low := begin
280 high := end - 1
281 for low+16 <= high {
282 middleIndex := low + (high-low)/2 // avoid overflow
283 middleValue := ra.keys[middleIndex]
284
285 if middleValue < ikey {
286 low = middleIndex + 1
287 } else if middleValue > ikey {
288 high = middleIndex - 1
289 } else {
290 return int(middleIndex)
291 }
292 }
293 for ; low <= high; low++ {
294 val := ra.keys[low]
295 if val >= ikey {
296 if val == ikey {
297 return int(low)
298 }
299 break
300 }
301 }
302 return -int(low + 1)
303}
304
305func (ra *roaringArray64) equals(o interface{}) bool {
306 srb, ok := o.(roaringArray64)

Callers 3

getContainerMethod · 0.95
getIndexMethod · 0.95
removeMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected