private static ByteSlice decompressNumber(ByteSlice cmpData, int itemSize, int byteSizeShift, long maxVal, NumberDecompressor decompressor) {
        if (itemSize == 0) {
            return ByteSlice.empty();
        }
        if (maxVal == 0) {
            return ByteSlice.allocateDirect(itemSize << byteSizeShift);
        }
        long native_p = decompressor.decompress(cmpData.address(), itemSize);
        if (native_p == 0) {
            throw new RuntimeException("decompress number err, check the std output for error code");
        }
        return ByteSlice.fromAddress(native_p, itemSize << byteSizeShift, true);
    }
Wrapper of brighthouse compression.
This class is closely linked to cpp code and native data structure, don't touch it unless you know what you are doing.

Note that all values here are in unsigned form, including max_val.
indexr-segment/src/main/java/io/indexr/compress/bh/BHCompressor.java