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

Function onesidedgallopingintersect2by2Cardinality

setutil.go:510–555  ·  view source on GitHub ↗
(
	smallset []uint16,
	largeset []uint16,
)

Source from the content-addressed store, hash-verified

508}
509
510func onesidedgallopingintersect2by2Cardinality(
511 smallset []uint16,
512 largeset []uint16,
513) int {
514 if 0 == len(smallset) {
515 return 0
516 }
517 k1 := 0
518 k2 := 0
519 pos := 0
520 s1 := largeset[k1]
521 s2 := smallset[k2]
522mainwhile:
523
524 for {
525 if s1 < s2 {
526 k1 = advanceUntil(largeset, k1, len(largeset), s2)
527 if k1 == len(largeset) {
528 break mainwhile
529 }
530 s1 = largeset[k1]
531 }
532 if s2 < s1 {
533 k2++
534 if k2 == len(smallset) {
535 break mainwhile
536 }
537 s2 = smallset[k2]
538 } else {
539
540 pos++
541 k2++
542 if k2 == len(smallset) {
543 break
544 }
545 s2 = smallset[k2]
546 k1 = advanceUntil(largeset, k1, len(largeset), s2)
547 if k1 == len(largeset) {
548 break mainwhile
549 }
550 s1 = largeset[k1]
551 }
552
553 }
554 return pos
555}
556
557func binarySearch(array []uint16, ikey uint16) int {
558 low := 0

Callers 1

Calls 1

advanceUntilFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…