java.lang.Object
org.apache.lucene.backward_codecs.lucene912.ForUtil

final class ForUtil extends Object
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

    Fields
    Modifier and Type
    Field
    Description
    static 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
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    (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 into longs.
    (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 from longs into out.
    (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 of bitsPerValue 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)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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