private boolean nextSearchItemset(BitVector bv, int[] scratchi, int[] iters) {
    final int last = scratchi.length - 1;
    for(int j = last; j >= 0; j--) {
      int n = bv.iterAdvance(iters[j]);
      if(n >= 0 && (j == last || n != iters[j + 1])) {
        iters[j] = n;
        scratchi[j] = bv.iterDim(n);
        return true; // Success
      }
    }
    return false;
  }
private boolean nextSearchItemset ( BitVector bv , int [ ] scratchi , int [ ] iters ) { final int last = scratchi . length - 1 ; for ( int j = last ; j >= 0 ; j -- ) { int n = bv . iterAdvance ( iters [ j ] ) ; if ( n >= 0 && ( j == last || n != iters [ j + 1 ] ) ) { iters [ j ] = n ; scratchi [ j ] = bv . iterDim ( n ) ; return true ; } } return false ; }
Advance scratch itemset to the next.

@param bv Bit vector data source
@param scratchi Scratch itemset
@param iters Iterator array
@return {@code true} if the itemset had minimum length