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

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