예제 #1
0
 @Override
 public <Col extends Column, N extends Number> boolean traverseI(
     ColumnHome<N, Col> columnHome, AdjEnumModel<Col> iterationModel, T token, InterNode node)
     throws IOException {
   if (intersectionSet.isSubSetOf(node.unionPattern())) {
     return super.traverseI(columnHome, iterationModel, token, node);
   }
   return true;
 }
예제 #2
0
 public <Col extends Column, N extends Number> boolean traverseL(
     ColumnHome<N, Col> columnHome, AdjEnumModel<Col> iterationModel, T token, LeafNode node)
     throws IOException {
   if (intersectionSet.isSubSetOf(node.unionPattern())) {
     final int start = node.getLeafColumnStart();
     final int end = node.getLeafColumnEnd();
     final SortableMemory<Col> mem = iterationModel.getMemory(memoryPartId);
     for (int i = start; i < end; i++) {
       if (i != ignoreColumn) {
         final IBitSet superCandidate = mem.getColumn(i).bitValues();
         if (intersectionSet.isSubSetOf(superCandidate)) {
           superSetFound = true;
           return false;
         }
       }
     }
   }
   return true;
 }
예제 #3
0
 @Override
 public IBitSet filterAdjacentPairs(
     IBitSet filterCutPattern, SortableMemory<Column> cols, AdjCandidates<Column> adjCandidates)
     throws IOException {
   for (int i = 0; i < children.length && filterCutPattern != null; i++) {
     final Node<T> child = children[i];
     if (child != null && filterCutPattern.isSubSetOf(child.unionPattern)) {
       filterCutPattern = child.filterAdjacentPairs(filterCutPattern, cols, adjCandidates);
     }
   }
   return filterCutPattern;
 }