Class ForUtil
java.lang.Object
org.apache.lucene.backward_codecs.lucene912.ForUtil
Inspired from https://fulmicoton.com/posts/bitpacking/ Encodes multiple integers in a long to get
SIMD-like speedups. If bitsPerValue <= 8 then we pack 8 ints per long else if bitsPerValue
<= 16 we pack 4 ints per long else we pack 2 ints per long
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int(package private) static final int(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long(package private) static final long[](package private) static final long[](package private) static final long[]private final long[] -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static voidcollapse16(long[] arr) (package private) static voidcollapse32(long[] arr) (package private) static voidcollapse8(long[] arr) (package private) voiddecode(int bitsPerValue, IndexInput in, long[] longs) Decode 128 integers intolongs.(package private) static voiddecode1(IndexInput in, long[] longs) (package private) static voiddecode10(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode11(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode12(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode13(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode14(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode15(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode16(IndexInput in, long[] longs) (package private) static voiddecode17(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode18(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode19(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode2(IndexInput in, long[] longs) (package private) static voiddecode20(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode21(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode22(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode23(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode24(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode3(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode4(IndexInput in, long[] longs) (package private) static voiddecode5(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode6(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode7(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecode8(IndexInput in, long[] longs) (package private) static voiddecode9(IndexInput in, long[] tmp, long[] longs) (package private) static voiddecodeSlow(int bitsPerValue, IndexInput in, long[] tmp, long[] longs) (package private) static voidencode(long[] longs, int bitsPerValue, int primitiveSize, DataOutput out, long[] tmp) (package private) voidencode(long[] longs, int bitsPerValue, DataOutput out) Encode 128 integers fromlongsintoout.(package private) static voidexpand16(long[] arr) (package private) static voidexpand32(long[] arr) (package private) static voidexpand8(long[] arr) (package private) static longexpandMask16(long mask16) (package private) static longexpandMask32(long mask32) (package private) static longexpandMask8(long mask8) (package private) static longmask16(int bitsPerValue) (package private) static longmask32(int bitsPerValue) (package private) static longmask8(int bitsPerValue) (package private) static intnumBytes(int bitsPerValue) Number of bytes required to encode 128 integers ofbitsPerValuebits per value.(package private) static voidsplitLongs(IndexInput in, int count, long[] b, int bShift, int dec, long bMask, long[] c, int cIndex, long cMask)
-
Field Details
-
BLOCK_SIZE
public static final int BLOCK_SIZE- See Also:
-
BLOCK_SIZE_LOG2
static final int BLOCK_SIZE_LOG2- See Also:
-
tmp
private final long[] tmp -
MASKS8
static final long[] MASKS8 -
MASKS16
static final long[] MASKS16 -
MASKS32
static final long[] MASKS32 -
MASK8_1
static final long MASK8_1 -
MASK8_2
static final long MASK8_2 -
MASK8_3
static final long MASK8_3 -
MASK8_4
static final long MASK8_4 -
MASK8_5
static final long MASK8_5 -
MASK8_6
static final long MASK8_6 -
MASK8_7
static final long MASK8_7 -
MASK16_1
static final long MASK16_1 -
MASK16_2
static final long MASK16_2 -
MASK16_3
static final long MASK16_3 -
MASK16_4
static final long MASK16_4 -
MASK16_5
static final long MASK16_5 -
MASK16_6
static final long MASK16_6 -
MASK16_7
static final long MASK16_7 -
MASK16_8
static final long MASK16_8 -
MASK16_9
static final long MASK16_9 -
MASK16_10
static final long MASK16_10 -
MASK16_11
static final long MASK16_11 -
MASK16_12
static final long MASK16_12 -
MASK16_13
static final long MASK16_13 -
MASK16_14
static final long MASK16_14 -
MASK16_15
static final long MASK16_15 -
MASK32_1
static final long MASK32_1 -
MASK32_2
static final long MASK32_2 -
MASK32_3
static final long MASK32_3 -
MASK32_4
static final long MASK32_4 -
MASK32_5
static final long MASK32_5 -
MASK32_6
static final long MASK32_6 -
MASK32_7
static final long MASK32_7 -
MASK32_8
static final long MASK32_8 -
MASK32_9
static final long MASK32_9 -
MASK32_10
static final long MASK32_10 -
MASK32_11
static final long MASK32_11 -
MASK32_12
static final long MASK32_12 -
MASK32_13
static final long MASK32_13 -
MASK32_14
static final long MASK32_14 -
MASK32_15
static final long MASK32_15 -
MASK32_16
static final long MASK32_16 -
MASK32_17
static final long MASK32_17 -
MASK32_18
static final long MASK32_18 -
MASK32_19
static final long MASK32_19 -
MASK32_20
static final long MASK32_20 -
MASK32_21
static final long MASK32_21 -
MASK32_22
static final long MASK32_22 -
MASK32_23
static final long MASK32_23 -
MASK32_24
static final long MASK32_24
-
-
Constructor Details
-
ForUtil
ForUtil()
-
-
Method Details
-
expandMask32
static long expandMask32(long mask32) -
expandMask16
static long expandMask16(long mask16) -
expandMask8
static long expandMask8(long mask8) -
mask32
static long mask32(int bitsPerValue) -
mask16
static long mask16(int bitsPerValue) -
mask8
static long mask8(int bitsPerValue) -
expand8
static void expand8(long[] arr) -
collapse8
static void collapse8(long[] arr) -
expand16
static void expand16(long[] arr) -
collapse16
static void collapse16(long[] arr) -
expand32
static void expand32(long[] arr) -
collapse32
static void collapse32(long[] arr) -
encode
Encode 128 integers fromlongsintoout.- Throws:
IOException
-
encode
static void encode(long[] longs, int bitsPerValue, int primitiveSize, DataOutput out, long[] tmp) throws IOException - Throws:
IOException
-
numBytes
static int numBytes(int bitsPerValue) Number of bytes required to encode 128 integers ofbitsPerValuebits per value. -
decodeSlow
static void decodeSlow(int bitsPerValue, IndexInput in, long[] tmp, long[] longs) throws IOException - Throws:
IOException
-
splitLongs
static void splitLongs(IndexInput in, int count, long[] b, int bShift, int dec, long bMask, long[] c, int cIndex, long cMask) throws IOException - Throws:
IOException
-
decode
Decode 128 integers intolongs.- Throws:
IOException
-
decode1
- Throws:
IOException
-
decode2
- Throws:
IOException
-
decode3
- Throws:
IOException
-
decode4
- Throws:
IOException
-
decode5
- Throws:
IOException
-
decode6
- Throws:
IOException
-
decode7
- Throws:
IOException
-
decode8
- Throws:
IOException
-
decode9
- Throws:
IOException
-
decode10
- Throws:
IOException
-
decode11
- Throws:
IOException
-
decode12
- Throws:
IOException
-
decode13
- Throws:
IOException
-
decode14
- Throws:
IOException
-
decode15
- Throws:
IOException
-
decode16
- Throws:
IOException
-
decode17
- Throws:
IOException
-
decode18
- Throws:
IOException
-
decode19
- Throws:
IOException
-
decode20
- Throws:
IOException
-
decode21
- Throws:
IOException
-
decode22
- Throws:
IOException
-
decode23
- Throws:
IOException
-
decode24
- Throws:
IOException
-