java.lang.Object
org.apache.lucene.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 void
collapse16
(long[] arr) (package private) static void
collapse32
(long[] arr) (package private) static void
collapse8
(long[] arr) (package private) void
decode
(int bitsPerValue, PostingDecodingUtil pdu, long[] longs) Decode 128 integers intolongs
.(package private) static void
decode1
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode10
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode11
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode12
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode13
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode14
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode15
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode16
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode17
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode18
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode19
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode2
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode20
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode21
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode22
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode23
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode24
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode3
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode4
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode5
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode6
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode7
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode8
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decode9
(PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
decodeSlow
(int bitsPerValue, PostingDecodingUtil pdu, long[] tmp, long[] longs) (package private) static void
encode
(long[] longs, int bitsPerValue, int primitiveSize, DataOutput out, long[] tmp) (package private) void
encode
(long[] longs, int bitsPerValue, DataOutput out) Encode 128 integers fromlongs
intoout
.(package private) static void
expand16
(long[] arr) (package private) static void
expand32
(long[] arr) (package private) static void
expand8
(long[] arr) (package private) static long
expandMask16
(long mask16) (package private) static long
expandMask32
(long mask32) (package private) static long
expandMask8
(long mask8) (package private) static long
mask16
(int bitsPerValue) (package private) static long
mask32
(int bitsPerValue) (package private) static long
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 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
public 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 fromlongs
intoout
.- 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 ofbitsPerValue
bits per value. -
decodeSlow
static void decodeSlow(int bitsPerValue, PostingDecodingUtil pdu, long[] tmp, long[] longs) 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
-