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

Method andArrayCardinality

runcontainer.go:1863–1890  ·  view source on GitHub ↗
(ac *arrayContainer)

Source from the content-addressed store, hash-verified

1861}
1862
1863func (rc *runContainer16) andArrayCardinality(ac *arrayContainer) int {
1864 pos := 0
1865 answer := 0
1866 maxpos := ac.getCardinality()
1867 if maxpos == 0 {
1868 return 0 // won't happen in actual code
1869 }
1870 v := ac.content[pos]
1871mainloop:
1872 for _, p := range rc.iv {
1873 for v < p.start {
1874 pos++
1875 if pos == maxpos {
1876 break mainloop
1877 }
1878 v = ac.content[pos]
1879 }
1880 for v <= p.last() {
1881 answer++
1882 pos++
1883 if pos == maxpos {
1884 break mainloop
1885 }
1886 v = ac.content[pos]
1887 }
1888 }
1889 return answer
1890}
1891
1892func (rc *runContainer16) iand(a container) container {
1893 if rc.isFull() {

Callers 2

andCardinalityMethod · 0.95
orArrayCardinalityMethod · 0.95

Calls 2

lastMethod · 0.80
getCardinalityMethod · 0.65

Tested by

no test coverage detected