private int lastDoc(int i4096){
  long index;
  while (i4096 >= 0) {
    index=indices[i4096];
    if (index != 0) {
      final int i64=63 - Long.numberOfLeadingZeros(index);
      final long bits=this.bits[i4096][Long.bitCount(index) - 1];
      return (i4096 << 12) | (i64 << 6) | (63 - Long.numberOfLeadingZeros(bits));
    }
    i4096-=1;
  }
  return -1;
}

private int lastDoc ( int i4096 ) { long index ; while ( i4096 >= 0 ) { index = indices [ i4096 ] ; if ( index != 0 ) { final int i64 = 63 - Long . numberOfLeadingZeros ( index ) ; final long bits = this . bits [ i4096 ] [ Long . bitCount ( index ) - 1 ] ; return ( i4096 << 12 ) | ( i64 << 6 ) | ( 63 - Long . numberOfLeadingZeros ( bits ) ) ; } i4096 -= 1 ; } return - 1 ; }
return the last document that occurs on or before the provided block index .
