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

public 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 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