(ac *arrayContainer)
| 1861 | } |
| 1862 | |
| 1863 | func (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] |
| 1871 | mainloop: |
| 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 | |
| 1892 | func (rc *runContainer16) iand(a container) container { |
| 1893 | if rc.isFull() { |
no test coverage detected