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 void
collapse16
(long[] arr) (package private) static void
collapse32
(long[] arr) (package private) static void
collapse8
(long[] arr) (package private) void
decode
(int bitsPerValue, IndexInput in, long[] longs) Decode 128 integers intolongs
.(package private) static void
decode1
(IndexInput in, long[] longs) (package private) static void
decode10
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode11
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode12
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode13
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode14
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode15
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode16
(IndexInput in, long[] longs) (package private) static void
decode17
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode18
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode19
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode2
(IndexInput in, long[] longs) (package private) static void
decode20
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode21
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode22
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode23
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode24
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode3
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode4
(IndexInput in, long[] longs) (package private) static void
decode5
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode6
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode7
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decode8
(IndexInput in, long[] longs) (package private) static void
decode9
(IndexInput in, long[] tmp, long[] longs) (package private) static void
decodeSlow
(int bitsPerValue, IndexInput in, 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.(package private) static void
splitLongs
(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 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, 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
-