protected static int shrinkActiveSet(DBIDArrayIter ix, PointerHierarchyRepresentationBuilder builder, int end, int x) {
    if(x == end - 1) { // Can truncate active set.
      while(builder.isLinked(ix.seek(--end - 1))) {
        // Everything happens in while condition already.
      }
    }
    return end;
  }
protected static int shrinkActiveSet ( DBIDArrayIter ix , PointerHierarchyRepresentationBuilder builder , int end , int x ) { if ( x == end - 1 ) { while ( builder . isLinked ( ix . seek ( -- end - 1 ) ) ) { } } return end ; }
Shrink the active set: if the last x objects are all merged, we can reduce
the working size accordingly.

@param ix Object iterator
@param builder Builder to detect merged status
@param end Current active set size
@param x Last merged object
@return New active set size