setIdx = gbKeysDeleted.nextSetBit(setIdx); if(setIdx != -1) { updatedGroupFields = updatedGroupFields.clear(setIdx); setIdx++;
@Test public void testClear() { final ImmutableBitSet bitSet = ImmutableBitSet.of(29, 4, 1969); final ImmutableBitSet bitSet2 = ImmutableBitSet.of(4, 1969); assertThat(bitSet.clear(29), equalTo(bitSet2)); assertThat(bitSet.clear(29).clear(29), equalTo(bitSet2)); assertThat(bitSet.clear(29).clear(4).clear(29).clear(1969), equalTo(ImmutableBitSet.of())); assertThat(bitSet.clearIf(29, false), equalTo(bitSet)); assertThat(bitSet.clearIf(29, true), equalTo(bitSet2)); }
/** Returns a bit set the same as this but with a given bit set (if b is * true) or unset (if b is false). */ public ImmutableBitSet set(int i, boolean b) { if (get(i) == b) { return this; } return b ? set(i) : clear(i); }
@Test public void testClear() { final ImmutableBitSet bitSet = ImmutableBitSet.of(29, 4, 1969); final ImmutableBitSet bitSet2 = ImmutableBitSet.of(4, 1969); assertThat(bitSet.clear(29), equalTo(bitSet2)); assertThat(bitSet.clear(29).clear(29), equalTo(bitSet2)); assertThat(bitSet.clear(29).clear(4).clear(29).clear(1969), equalTo(ImmutableBitSet.of())); assertThat(bitSet.clearIf(29, false), equalTo(bitSet)); assertThat(bitSet.clearIf(29, true), equalTo(bitSet2)); }
/** Returns a bit set the same as this but with a given bit set (if b is * true) or unset (if b is false). */ public ImmutableBitSet set(int i, boolean b) { if (get(i) == b) { return this; } return b ? set(i) : clear(i); }
public double cardinality(ImmutableBitSet columnOrdinals) { final ImmutableBitSet originalOrdinals = columnOrdinals; for (;;) { final Distribution distribution = distributionMap.get(columnOrdinals); if (distribution != null) { if (columnOrdinals == originalOrdinals) { return distribution.cardinality; } else { final List<Double> cardinalityList = new ArrayList<>(); cardinalityList.add(distribution.cardinality); for (int ordinal : originalOrdinals.except(columnOrdinals)) { final Distribution d = singletonDistributionList.get(ordinal); cardinalityList.add(d.cardinality); } return Lattice.getRowCount(rowCount.rowCount, cardinalityList); } } // Clear the last bit and iterate. // Better would be to combine all of our nearest ancestors. final List<Integer> list = columnOrdinals.asList(); columnOrdinals = columnOrdinals.clear(Util.last(list)); } } }
public double cardinality(ImmutableBitSet columnOrdinals) { final ImmutableBitSet originalOrdinals = columnOrdinals; for (;;) { final Distribution distribution = distributionMap.get(columnOrdinals); if (distribution != null) { if (columnOrdinals == originalOrdinals) { return distribution.cardinality; } else { final List<Double> cardinalityList = new ArrayList<>(); cardinalityList.add(distribution.cardinality); for (int ordinal : originalOrdinals.except(columnOrdinals)) { final Distribution d = singletonDistributionList.get(ordinal); cardinalityList.add(d.cardinality); } return Lattice.getRowCount(rowCount.rowCount, cardinalityList); } } // Clear the last bit and iterate. // Better would be to combine all of our nearest ancestors. final List<Integer> list = columnOrdinals.asList(); columnOrdinals = columnOrdinals.clear(Util.last(list)); } } }
public static Group induce(ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets) { if (!ImmutableBitSet.ORDERING.isStrictlyOrdered(groupSets)) { throw new IllegalArgumentException("must be sorted: " + groupSets); } if (groupSets.size() == 1 && groupSets.get(0).equals(groupSet)) { return SIMPLE; } if (groupSets.size() == IntMath.pow(2, groupSet.cardinality())) { return CUBE; } checkRollup: if (groupSets.size() == groupSet.cardinality() + 1) { ImmutableBitSet g = groupSet; for (ImmutableBitSet bitSet : groupSets) { if (!bitSet.equals(g)) { break checkRollup; } g = g.clear(g.length() - 1); } assert g.isEmpty(); return ROLLUP; } return OTHER; } }
public static Group induce(ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets) { if (!ImmutableBitSet.ORDERING.isStrictlyOrdered(groupSets)) { throw new IllegalArgumentException("must be sorted: " + groupSets); } if (groupSets.size() == 1 && groupSets.get(0).equals(groupSet)) { return SIMPLE; } if (groupSets.size() == IntMath.pow(2, groupSet.cardinality())) { return CUBE; } checkRollup: if (groupSets.size() == groupSet.cardinality() + 1) { ImmutableBitSet g = groupSet; for (ImmutableBitSet bitSet : groupSets) { if (!bitSet.equals(g)) { break checkRollup; } g = g.clear(g.length() - 1); } assert g.isEmpty(); return ROLLUP; } return OTHER; } }
for (int i : s.columnOrdinals) { final Space s1 = singletonSpaces.get(i); final ImmutableBitSet rest = s.columnOrdinals.clear(i); for (ImmutableBitSet dependent : s1.dependents) { if (rest.contains(dependent)) { distributions.get(ImmutableBitSet.of(column.ordinal)); final Distribution d2 = distributions.get(space.columnOrdinals.clear(column.ordinal)); final double d = Lattice.getRowCount(rowCount, d1.cardinality, d2.cardinality);
dependentFactors = dependentFactors.clear(i); outerJoinFactors[i] = dependentFactors;
dependentFactors = dependentFactors.clear(i); outerJoinFactors[i] = dependentFactors;
for (int i : s.columnOrdinals) { final Space s1 = singletonSpaces.get(i); final ImmutableBitSet rest = s.columnOrdinals.clear(i); for (ImmutableBitSet dependent : s1.dependents) { if (rest.contains(dependent)) { distributions.get(ImmutableBitSet.of(column.ordinal)); final Distribution d2 = distributions.get(space.columnOrdinals.clear(column.ordinal)); final double d = Lattice.getRowCount(rowCount, d1.cardinality, d2.cardinality);
for (int i : s.columnOrdinals) { final Space s1 = singletonSpaces.get(i); final ImmutableBitSet rest = s.columnOrdinals.clear(i); for (ImmutableBitSet dependent : s1.dependents) { if (rest.contains(dependent)) {
for (int i : s.columnOrdinals) { final Space s1 = singletonSpaces.get(i); final ImmutableBitSet rest = s.columnOrdinals.clear(i); for (ImmutableBitSet dependent : s1.dependents) { if (rest.contains(dependent)) {
newGroupSet = newGroupSet.clear(key);
newGroupSet = newGroupSet.clear(key);