question: private ArrayList < Signature > constructOneSignatures ( SetDBIDs [ ] [ ] partitions , final long [ ] [ ] markers ) { final int dim = partitions . length ; ArrayList < Signature > signatures = new ArrayList < > ( ) ; for ( int d = 0 ; d < dim ; d ++ ) { final DBIDs [ ] parts = partitions [ d ] ; if ( parts == null ) { continue ; } final long [ ] marked = markers [ d ] ; for ( int start = BitsUtil . nextSetBit ( marked , 0 ) ; start >= 0 ; ) { int end = BitsUtil . nextClearBit ( marked , start + 1 ) ; end = ( end == - 1 ) ? dim : end ; int [ ] signature = new int [ dim << 1 ] ; Arrays . fill ( signature , - 1 ) ; signature [ d << 1 ] = start ; signature [ ( d << 1 ) + 1 ] = end - 1 ; HashSetModifiableDBIDs sids = unionDBIDs ( parts , start , end ) ; if ( LOG . isDebugging ( ) ) { LOG . debug ( "1-signature: " + d + " " + start + "-" + ( end - 1 ) ) ; } signatures . add ( new Signature ( signature , sids ) ) ; start = ( end < dim ) ? BitsUtil . nextSetBit ( marked , end + 1 ) : - 1 ; } } return signatures ; }
target:  Construct the 1-signatures by merging adjacent dense bins.