java.lang.Object
org.apache.lucene.codecs.lucene101.ForUtil
Inspired from https://fulmicoton.com/posts/bitpacking/ Encodes multiple integers in one to get
SIMD-like speedups. If bitsPerValue <= 8 then we pack 4 ints per Java int else if bitsPerValue
<= 16 we pack 2 ints per Java int else we do scalar operations.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int[]
(package private) static final int[]
(package private) static final int[]
private final int[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static void
collapse16
(int[] arr) (package private) static void
collapse8
(int[] arr) (package private) void
decode
(int bitsPerValue, PostingDecodingUtil pdu, int[] ints) Decode 128 integers intoints
.(package private) static void
decode1
(PostingDecodingUtil pdu, int[] ints) (package private) static void
decode10
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode11
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode12
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode13
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode14
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode15
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode16
(PostingDecodingUtil pdu, int[] ints) (package private) static void
decode2
(PostingDecodingUtil pdu, int[] ints) (package private) static void
decode3
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode4
(PostingDecodingUtil pdu, int[] ints) (package private) static void
decode5
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode6
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode7
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decode8
(PostingDecodingUtil pdu, int[] ints) (package private) static void
decode9
(PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
decodeSlow
(int bitsPerValue, PostingDecodingUtil pdu, int[] tmp, int[] ints) (package private) static void
encode
(int[] ints, int bitsPerValue, int primitiveSize, DataOutput out, int[] tmp) (package private) void
encode
(int[] ints, int bitsPerValue, DataOutput out) Encode 128 integers fromints
intoout
.(package private) static void
expand16
(int[] arr) (package private) static void
expand8
(int[] arr) (package private) static int
expandMask16
(int mask16) (package private) static int
expandMask8
(int mask8) (package private) static int
mask16
(int bitsPerValue) (package private) static int
mask32
(int bitsPerValue) (package private) static int
mask8
(int bitsPerValue) (package private) static int
numBytes
(int bitsPerValue) Number of bytes required to encode 128 integers ofbitsPerValue
bits per value.
-
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 int[] tmp -
MASKS8
static final int[] MASKS8 -
MASKS16
static final int[] MASKS16 -
MASKS32
static final int[] MASKS32 -
MASK8_1
static final int MASK8_1 -
MASK8_2
static final int MASK8_2 -
MASK8_3
static final int MASK8_3 -
MASK8_4
static final int MASK8_4 -
MASK8_5
static final int MASK8_5 -
MASK8_6
static final int MASK8_6 -
MASK8_7
static final int MASK8_7 -
MASK16_1
static final int MASK16_1 -
MASK16_2
static final int MASK16_2 -
MASK16_3
static final int MASK16_3 -
MASK16_4
static final int MASK16_4 -
MASK16_5
static final int MASK16_5 -
MASK16_6
static final int MASK16_6 -
MASK16_7
static final int MASK16_7 -
MASK16_8
static final int MASK16_8 -
MASK16_9
static final int MASK16_9 -
MASK16_10
static final int MASK16_10 -
MASK16_11
static final int MASK16_11 -
MASK16_12
static final int MASK16_12 -
MASK16_13
static final int MASK16_13 -
MASK16_14
static final int MASK16_14 -
MASK16_15
static final int MASK16_15 -
MASK32_1
static final int MASK32_1 -
MASK32_2
static final int MASK32_2 -
MASK32_3
static final int MASK32_3 -
MASK32_4
static final int MASK32_4 -
MASK32_5
static final int MASK32_5 -
MASK32_6
static final int MASK32_6 -
MASK32_7
static final int MASK32_7 -
MASK32_8
static final int MASK32_8 -
MASK32_9
static final int MASK32_9 -
MASK32_10
static final int MASK32_10 -
MASK32_11
static final int MASK32_11 -
MASK32_12
static final int MASK32_12 -
MASK32_13
static final int MASK32_13 -
MASK32_14
static final int MASK32_14 -
MASK32_15
static final int MASK32_15 -
MASK32_16
static final int MASK32_16
-
-
Constructor Details
-
ForUtil
public ForUtil()
-
-
Method Details
-
expandMask16
static int expandMask16(int mask16) -
expandMask8
static int expandMask8(int mask8) -
mask32
static int mask32(int bitsPerValue) -
mask16
static int mask16(int bitsPerValue) -
mask8
static int mask8(int bitsPerValue) -
expand8
static void expand8(int[] arr) -
collapse8
static void collapse8(int[] arr) -
expand16
static void expand16(int[] arr) -
collapse16
static void collapse16(int[] arr) -
encode
Encode 128 integers fromints
intoout
.- Throws:
IOException
-
encode
static void encode(int[] ints, int bitsPerValue, int primitiveSize, DataOutput out, int[] tmp) throws IOException - Throws:
IOException
-
numBytes
static int numBytes(int bitsPerValue) Number of bytes required to encode 128 integers ofbitsPerValue
bits per value. -
decodeSlow
static void decodeSlow(int bitsPerValue, PostingDecodingUtil pdu, int[] tmp, int[] ints) throws IOException - Throws:
IOException
-
decode
Decode 128 integers intoints
.- 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
-