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

Function onesidedgallopingintersect2by2

setutil.go:460–508  ·  view source on GitHub ↗
(
	smallset []uint16,
	largeset []uint16,
	buffer []uint16,
)

Source from the content-addressed store, hash-verified

458}
459
460func onesidedgallopingintersect2by2(
461 smallset []uint16,
462 largeset []uint16,
463 buffer []uint16,
464) int {
465 if 0 == len(smallset) {
466 return 0
467 }
468 buffer = buffer[:cap(buffer)]
469 k1 := 0
470 k2 := 0
471 pos := 0
472 s1 := largeset[k1]
473 s2 := smallset[k2]
474mainwhile:
475
476 for {
477 if s1 < s2 {
478 k1 = advanceUntil(largeset, k1, len(largeset), s2)
479 if k1 == len(largeset) {
480 break mainwhile
481 }
482 s1 = largeset[k1]
483 }
484 if s2 < s1 {
485 k2++
486 if k2 == len(smallset) {
487 break mainwhile
488 }
489 s2 = smallset[k2]
490 } else {
491
492 buffer[pos] = s2
493 pos++
494 k2++
495 if k2 == len(smallset) {
496 break
497 }
498 s2 = smallset[k2]
499 k1 = advanceUntil(largeset, k1, len(largeset), s2)
500 if k1 == len(largeset) {
501 break mainwhile
502 }
503 s1 = largeset[k1]
504 }
505
506 }
507 return pos
508}
509
510func onesidedgallopingintersect2by2Cardinality(
511 smallset []uint16,

Callers 1

intersection2by2Function · 0.85

Calls 1

advanceUntilFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…