Lines Matching defs:i0
128 for (uptr i0 = 0; i0 < kLevel1Size; i0++) {
129 l1_[i0].setAll();
131 l2_[i0][i1].setAll();
145 uptr i0 = idx0(idx);
148 if (!l1_[i0].getBit(i1)) {
149 l1_[i0].setBit(i1);
150 l2_[i0][i1].clear();
152 bool res = l2_[i0][i1].setBit(i2);
154 // idx, i0, i1, i2, res);
160 uptr i0 = idx0(idx);
164 if (l1_[i0].getBit(i1)) {
165 res = l2_[i0][i1].clearBit(i2);
166 if (l2_[i0][i1].empty())
167 l1_[i0].clearBit(i1);
174 uptr i0 = idx0(idx);
177 // Printf("%s: %zd => %zd %zd %zd\n", __func__, idx, i0, i1, i2);
178 return l1_[i0].getBit(i1) && l2_[i0][i1].getBit(i2);
182 for (uptr i0 = 0; i0 < kLevel1Size; i0++) {
183 if (l1_[i0].empty()) continue;
184 uptr i1 = l1_[i0].getAndClearFirstOne();
185 uptr i2 = l2_[i0][i1].getAndClearFirstOne();
186 if (!l2_[i0][i1].empty())
187 l1_[i0].setBit(i1);
188 uptr res = i0 * BV::kSize * BV::kSize + i1 * BV::kSize + i2;
189 // Printf("getAndClearFirstOne: %zd %zd %zd => %zd\n", i0, i1, i2, res);
199 for (uptr i0 = 0; i0 < kLevel1Size; i0++) {
200 BV t = v.l1_[i0];
203 if (l1_[i0].setBit(i1))
204 l2_[i0][i1].clear();
205 if (l2_[i0][i1].setUnion(v.l2_[i0][i1]))
215 for (uptr i0 = 0; i0 < kLevel1Size; i0++) {
216 if (l1_[i0].setIntersection(v.l1_[i0]))
218 if (!l1_[i0].empty()) {
219 BV t = l1_[i0];
222 if (l2_[i0][i1].setIntersection(v.l2_[i0][i1]))
224 if (l2_[i0][i1].empty())
225 l1_[i0].clearBit(i1);
235 for (uptr i0 = 0; i0 < kLevel1Size; i0++) {
236 BV t = l1_[i0];
237 t.setIntersection(v.l1_[i0]);
240 if (l2_[i0][i1].setDifference(v.l2_[i0][i1]))
242 if (l2_[i0][i1].empty())
243 l1_[i0].clearBit(i1);
256 for (uptr i0 = 0; i0 < kLevel1Size; i0++) {
257 BV t = l1_[i0];
258 t.setIntersection(v.l1_[i0]);
261 if (!v.l1_[i0].getBit(i1)) continue;
262 if (l2_[i0][i1].intersectsWith(v.l2_[i0][i1]))
295 // Printf("+i0: %zd %zd; %d %d; size %zd\n", i0_, i1_, it1_.hasNext(),