MCPcopy
hub / github.com/RoaringBitmap/roaring / toEfficientContainer

Method toEfficientContainer

bitmapcontainer.go:1275–1290  ·  view source on GitHub ↗

convert to run or array *if needed*

()

Source from the content-addressed store, hash-verified

1273
1274// convert to run or array *if needed*
1275func (bc *bitmapContainer) toEfficientContainer() container {
1276 numRuns := bc.numberOfRuns()
1277
1278 sizeAsRunContainer := runContainer16SerializedSizeInBytes(numRuns)
1279 sizeAsBitmapContainer := bitmapContainerSizeInBytes()
1280 card := bc.getCardinality()
1281 sizeAsArrayContainer := arrayContainerSizeInBytes(card)
1282
1283 if sizeAsRunContainer < minOfInt(sizeAsBitmapContainer, sizeAsArrayContainer) {
1284 return newRunContainer16FromBitmapContainer(bc)
1285 }
1286 if card <= arrayDefaultMaxSize {
1287 return bc.toArrayContainer()
1288 }
1289 return bc
1290}
1291
1292func newBitmapContainerFromRun(rc *runContainer16) *bitmapContainer {
1293 if len(rc.iv) == 1 {

Callers

nothing calls this directly

Calls 8

numberOfRunsMethod · 0.95
getCardinalityMethod · 0.95
toArrayContainerMethod · 0.95
minOfIntFunction · 0.70

Tested by

no test coverage detected