code: static DirectCompactUnorderedSketch compact(final long[] cache, final boolean empty,
        final short seedHash, final int curCount, final long thetaLong, final WritableMemory dstMem) {
      final int preLongs = computeCompactPreLongs(thetaLong, empty, curCount);
      final int requiredFlags = READ_ONLY_FLAG_MASK | COMPACT_FLAG_MASK;
      final byte flags = (byte) (requiredFlags | (empty ? EMPTY_FLAG_MASK : 0));
      loadCompactMemory(cache, seedHash, curCount, thetaLong, dstMem, flags, preLongs);
      return new DirectCompactUnorderedSketch(dstMem);
    }
docs: Constructs this sketch from correct, valid components.
  @param cache in compact, ordered form
  @param empty The correct <a href="{@docRoot}/resources/dictionary.html#empty">Empty</a>.
  @param seedHash The correct
  <a href="{@docRoot}/resources/dictionary.html#seedHash">Seed Hash</a>.
  @param curCount correct value
  @param thetaLong The correct
  <a href="{@docRoot}/resources/dictionary.html#thetaLong">thetaLong</a>.
  @param dstMem the given destination Memory. This clears it before use.
  @return a DirectCompactUnorderedSketch