blob: 764fe78cd02eaa9066666ed508b0674c34e505d8 [file] [log] [blame]
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked7.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked7.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked7.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked7 extends BulkOperation {
- @Override
- public int blockCount() {
- return 7;
- }
+final class BulkOperationPacked7 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked7() {
+ super(7);
+ assert blockCount() == 7;
+ assert valueCount() == 64;
}
@Override
@@ -447,34 +444,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 7) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 53) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 11) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 55) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 7) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py (copie de travail)
@@ -19,6 +19,7 @@
"""Code generation for bulk operations"""
+MAX_SPECIALIZED_BITS_PER_VALUE = 24;
PACKED_64_SINGLE_BLOCK_BPV = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 21, 32]
OUTPUT_FILE = "BulkOperation.java"
HEADER = """// This file has been automatically generated, DO NOT EDIT
@@ -45,34 +46,13 @@
"""
FOOTER="""
-
- private static long[] toLongArray(int[] ints, int offset, int length) {
- long[] arr = new long[length];
- for (int i = 0; i < length; ++i) {
- arr[i] = ints[offset + i];
+ protected int writeLong(long block, byte[] blocks, int blocksOffset) {
+ for (int j = 1; j <= 8; ++j) {
+ blocks[blocksOffset++] = (byte) (block >>> (64 - (j << 3)));
}
- return arr;
+ return blocksOffset;
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- encode(toLongArray(values, valuesOffset, iterations * valueCount()), 0, blocks, blocksOffset, iterations);
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, byte[] blocks, int blocksOffset, int iterations) {
- final long[] longBLocks = new long[blockCount() * iterations];
- encode(values, valuesOffset, longBLocks, 0, iterations);
- ByteBuffer.wrap(blocks, blocksOffset, 8 * iterations * blockCount()).asLongBuffer().put(longBLocks);
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, byte[] blocks, int blocksOffset, int iterations) {
- final long[] longBLocks = new long[blockCount() * iterations];
- encode(values, valuesOffset, longBLocks, 0, iterations);
- ByteBuffer.wrap(blocks, blocksOffset, 8 * iterations * blockCount()).asLongBuffer().put(longBLocks);
- }
-
/**
* For every number of bits per value, there is a minimum number of
* blocks (b) / values (v) you need to write in order to reach the next block
@@ -140,18 +120,12 @@
def packed64singleblock(bpv, f):
values = 64 / bpv
- f.write(" @Override\n")
- f.write(" public int blockCount() {\n")
- f.write(" return 1;\n")
- f.write(" }\n\n")
- f.write(" @Override\n")
- f.write(" public int valueCount() {\n")
- f.write(" return %d;\n" %values)
+ f.write("\n")
+ f.write(" public BulkOperationPackedSingleBlock%d() {\n" %bpv)
+ f.write(" super(%d);\n" %bpv)
f.write(" }\n\n")
p64sb_decode(bpv, f, 32)
p64sb_decode(bpv, f, 64)
- p64sb_encode(bpv, f, 32)
- p64sb_encode(bpv, f, 64)
def p64sb_decode(bpv, f, bits):
values = 64 / bpv
@@ -227,31 +201,6 @@
f.write(" }\n")
f.write(" }\n\n")
-def p64sb_encode(bpv, f, bits):
- values = 64 / bpv
- typ = get_type(bits)
- mask_start, mask_end = masks(bits)
- f.write(" @Override\n")
- f.write(" public void encode(%s[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {\n" %typ)
- if bits < bpv:
- f.write(" throw new UnsupportedOperationException();\n")
- f.write(" }\n\n")
- return
- f.write(" assert blocksOffset + iterations * blockCount() <= blocks.length;\n")
- f.write(" assert valuesOffset + iterations * valueCount() <= values.length;\n")
- f.write(" for (int i = 0; i < iterations; ++i) {\n")
- for i in xrange(values):
- block_offset = i / values
- offset_in_block = i % values
- if i == 0:
- f.write(" blocks[blocksOffset++] = %svalues[valuesOffset++]%s" %(mask_start, mask_end))
- else:
- f.write(" | (%svalues[valuesOffset++]%s << %d)" %(mask_start, mask_end, i * bpv))
- if i == values - 1:
- f.write(";\n")
- f.write(" }\n")
- f.write(" }\n\n")
-
def packed64(bpv, f):
blocks = bpv
values = blocks * 64 / bpv
@@ -260,14 +209,13 @@
values /= 2
assert values * bpv == 64 * blocks, "%d values, %d blocks, %d bits per value" %(values, blocks, bpv)
mask = (1 << bpv) - 1
- f.write(" @Override\n")
- f.write(" public int blockCount() {\n")
- f.write(" return %d;\n" %blocks)
+
+ f.write("\n")
+ f.write(" public BulkOperationPacked%d() {\n" %bpv)
+ f.write(" super(%d);\n" %bpv)
+ f.write(" assert blockCount() == %d;\n" %blocks)
+ f.write(" assert valueCount() == %d;\n" %values)
f.write(" }\n\n")
- f.write(" @Override\n")
- f.write(" public int valueCount() {\n")
- f.write(" return %d;\n" %values)
- f.write(" }\n\n")
if bpv == 64:
f.write(""" @Override
@@ -289,17 +237,10 @@
public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
LongBuffer.wrap(values, valuesOffset, iterations * valueCount()).put(ByteBuffer.wrap(blocks, blocksOffset, 8 * iterations * blockCount()).asLongBuffer());
}
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- System.arraycopy(values, valuesOffset, blocks, blocksOffset, valueCount() * iterations);
- }
""")
else:
p64_decode(bpv, f, 32, values)
p64_decode(bpv, f, 64, values)
- p64_encode(bpv, f, 32, values)
- p64_encode(bpv, f, 64, values)
def p64_decode(bpv, f, bits, values):
typ = get_type(bits)
@@ -383,41 +324,11 @@
f.write(" }\n")
f.write(" }\n\n")
-def p64_encode(bpv, f, bits, values):
- typ = get_type(bits)
- mask_start, mask_end = masks(bits)
- f.write(" @Override\n")
- f.write(" public void encode(%s[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {\n" %typ)
- f.write(" assert blocksOffset + iterations * blockCount() <= blocks.length;\n")
- f.write(" assert valuesOffset + iterations * valueCount() <= values.length;\n")
- f.write(" for (int i = 0; i < iterations; ++i) {\n")
- for i in xrange(0, values):
- block_offset = i * bpv / 64
- bit_offset = (i * bpv) % 64
- if bit_offset == 0:
- # start of block
- f.write(" blocks[blocksOffset++] = (%svalues[valuesOffset++]%s << %d)" %(mask_start, mask_end, 64 - bpv))
- elif bit_offset + bpv == 64:
- # end of block
- f.write(" | %svalues[valuesOffset++]%s;\n" %(mask_start, mask_end))
- elif bit_offset + bpv < 64:
- # inside a block
- f.write(" | (%svalues[valuesOffset++]%s << %d)" %(mask_start, mask_end, 64 - bit_offset - bpv))
- else:
- # value spans across 2 blocks
- right_bits = bit_offset + bpv - 64
- f.write(" | (%svalues[valuesOffset]%s >>> %d);\n" %(mask_start, mask_end, right_bits))
- f.write(" blocks[blocksOffset++] = (%svalues[valuesOffset++]%s << %d)" %(mask_start, mask_end, 64 - right_bits))
- f.write(" }\n")
- f.write(" }\n\n")
-
-
if __name__ == '__main__':
p64_bpv = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 21, 32]
f = open(OUTPUT_FILE, 'w')
f.write(HEADER)
- f.write('import java.nio.ByteBuffer;\n')
f.write('\n')
f.write('''/**
* Efficient sequential read/write of packed integers.
@@ -427,6 +338,9 @@
f.write(' private static final BulkOperation[] packedBulkOps = new BulkOperation[] {\n')
for bpv in xrange(1, 65):
+ if bpv > MAX_SPECIALIZED_BITS_PER_VALUE:
+ f.write(' new BulkOperationPacked(%d),\n' % bpv)
+ continue
f2 = open('BulkOperationPacked%d.java' % bpv, 'w')
f2.write(HEADER)
if bpv == 64:
@@ -436,7 +350,7 @@
f2.write('''/**
* Efficient sequential read/write of packed integers.
*/\n''')
- f2.write('final class BulkOperationPacked%d extends BulkOperation {\n' % bpv)
+ f2.write('final class BulkOperationPacked%d extends BulkOperationPacked {\n' % bpv)
packed64(bpv, f2)
f2.write('}\n')
f2.close()
@@ -449,12 +363,15 @@
f.write(' private static final BulkOperation[] packedSingleBlockBulkOps = new BulkOperation[] {\n')
for bpv in xrange(1, max(PACKED_64_SINGLE_BLOCK_BPV)+1):
if bpv in PACKED_64_SINGLE_BLOCK_BPV:
+ if bpv > MAX_SPECIALIZED_BITS_PER_VALUE:
+ f.write(' new BulkOperationPackedSingleBlock(%d),\n' % bpv)
+ continue
f2 = open('BulkOperationPackedSingleBlock%d.java' % bpv, 'w')
f2.write(HEADER)
f2.write('''/**
* Efficient sequential read/write of packed integers.
*/\n''')
- f2.write('final class BulkOperationPackedSingleBlock%d extends BulkOperation {\n' % bpv)
+ f2.write('final class BulkOperationPackedSingleBlock%d extends BulkOperationPackedSingleBlock {\n' % bpv)
packed64singleblock(bpv,f2)
f2.write('}\n')
f2.close()
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java (copie de travail)
@@ -19,7 +19,6 @@
* limitations under the License.
*/
-import java.nio.ByteBuffer;
/**
* Efficient sequential read/write of packed integers.
@@ -50,46 +49,46 @@
new BulkOperationPacked22(),
new BulkOperationPacked23(),
new BulkOperationPacked24(),
- new BulkOperationPacked25(),
- new BulkOperationPacked26(),
- new BulkOperationPacked27(),
- new BulkOperationPacked28(),
- new BulkOperationPacked29(),
- new BulkOperationPacked30(),
- new BulkOperationPacked31(),
- new BulkOperationPacked32(),
- new BulkOperationPacked33(),
- new BulkOperationPacked34(),
- new BulkOperationPacked35(),
- new BulkOperationPacked36(),
- new BulkOperationPacked37(),
- new BulkOperationPacked38(),
- new BulkOperationPacked39(),
- new BulkOperationPacked40(),
- new BulkOperationPacked41(),
- new BulkOperationPacked42(),
- new BulkOperationPacked43(),
- new BulkOperationPacked44(),
- new BulkOperationPacked45(),
- new BulkOperationPacked46(),
- new BulkOperationPacked47(),
- new BulkOperationPacked48(),
- new BulkOperationPacked49(),
- new BulkOperationPacked50(),
- new BulkOperationPacked51(),
- new BulkOperationPacked52(),
- new BulkOperationPacked53(),
- new BulkOperationPacked54(),
- new BulkOperationPacked55(),
- new BulkOperationPacked56(),
- new BulkOperationPacked57(),
- new BulkOperationPacked58(),
- new BulkOperationPacked59(),
- new BulkOperationPacked60(),
- new BulkOperationPacked61(),
- new BulkOperationPacked62(),
- new BulkOperationPacked63(),
- new BulkOperationPacked64(),
+ new BulkOperationPacked(25),
+ new BulkOperationPacked(26),
+ new BulkOperationPacked(27),
+ new BulkOperationPacked(28),
+ new BulkOperationPacked(29),
+ new BulkOperationPacked(30),
+ new BulkOperationPacked(31),
+ new BulkOperationPacked(32),
+ new BulkOperationPacked(33),
+ new BulkOperationPacked(34),
+ new BulkOperationPacked(35),
+ new BulkOperationPacked(36),
+ new BulkOperationPacked(37),
+ new BulkOperationPacked(38),
+ new BulkOperationPacked(39),
+ new BulkOperationPacked(40),
+ new BulkOperationPacked(41),
+ new BulkOperationPacked(42),
+ new BulkOperationPacked(43),
+ new BulkOperationPacked(44),
+ new BulkOperationPacked(45),
+ new BulkOperationPacked(46),
+ new BulkOperationPacked(47),
+ new BulkOperationPacked(48),
+ new BulkOperationPacked(49),
+ new BulkOperationPacked(50),
+ new BulkOperationPacked(51),
+ new BulkOperationPacked(52),
+ new BulkOperationPacked(53),
+ new BulkOperationPacked(54),
+ new BulkOperationPacked(55),
+ new BulkOperationPacked(56),
+ new BulkOperationPacked(57),
+ new BulkOperationPacked(58),
+ new BulkOperationPacked(59),
+ new BulkOperationPacked(60),
+ new BulkOperationPacked(61),
+ new BulkOperationPacked(62),
+ new BulkOperationPacked(63),
+ new BulkOperationPacked(64),
};
// NOTE: this is sparse (some entries are null):
@@ -125,7 +124,7 @@
null,
null,
null,
- new BulkOperationPackedSingleBlock32(),
+ new BulkOperationPackedSingleBlock(32),
};
@@ -142,34 +141,13 @@
}
}
-
- private static long[] toLongArray(int[] ints, int offset, int length) {
- long[] arr = new long[length];
- for (int i = 0; i < length; ++i) {
- arr[i] = ints[offset + i];
+ protected int writeLong(long block, byte[] blocks, int blocksOffset) {
+ for (int j = 1; j <= 8; ++j) {
+ blocks[blocksOffset++] = (byte) (block >>> (64 - (j << 3)));
}
- return arr;
+ return blocksOffset;
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- encode(toLongArray(values, valuesOffset, iterations * valueCount()), 0, blocks, blocksOffset, iterations);
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, byte[] blocks, int blocksOffset, int iterations) {
- final long[] longBLocks = new long[blockCount() * iterations];
- encode(values, valuesOffset, longBLocks, 0, iterations);
- ByteBuffer.wrap(blocks, blocksOffset, 8 * iterations * blockCount()).asLongBuffer().put(longBLocks);
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, byte[] blocks, int blocksOffset, int iterations) {
- final long[] longBLocks = new long[blockCount() * iterations];
- encode(values, valuesOffset, longBLocks, 0, iterations);
- ByteBuffer.wrap(blocks, blocksOffset, 8 * iterations * blockCount()).asLongBuffer().put(longBLocks);
- }
-
/**
* For every number of bits per value, there is a minimum number of
* blocks (b) / values (v) you need to write in order to reach the next block
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked.java (révision 0)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked.java (révision 0)
@@ -0,0 +1,231 @@
+package org.apache.lucene.util.packed;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Non-specialized {@link BulkOperation} for {@link PackedInts.Format#PACKED}.
+ */
+class BulkOperationPacked extends BulkOperation {
+
+ private final int bitsPerValue;
+ private final int blockCount;
+ private final int valueCount;
+ private final long mask;
+
+ public BulkOperationPacked(int bitsPerValue) {
+ this.bitsPerValue = bitsPerValue;
+ assert bitsPerValue > 0 && bitsPerValue <= 64;
+ int blocks = bitsPerValue;
+ while ((blocks & 1) == 0) {
+ blocks >>>= 1;
+ }
+ this.blockCount = blocks;
+ this.valueCount = 64 * blockCount / bitsPerValue;
+ if (bitsPerValue == 64) {
+ this.mask = ~0L;
+ } else {
+ this.mask = (1L << bitsPerValue) - 1;
+ }
+ assert valueCount * bitsPerValue == 64 * blockCount;
+ }
+
+ @Override
+ public int blockCount() {
+ return blockCount;
+ }
+
+ @Override
+ public int valueCount() {
+ return valueCount;
+ }
+
+ @Override
+ public void decode(long[] blocks, int blocksOffset, long[] values,
+ int valuesOffset, int iterations) {
+ int bitsLeft = 64;
+ for (int i = 0; i < valueCount * iterations; ++i) {
+ bitsLeft -= bitsPerValue;
+ if (bitsLeft < 0) {
+ values[valuesOffset++] =
+ ((blocks[blocksOffset++] & ((1L << (bitsPerValue + bitsLeft)) - 1)) << -bitsLeft)
+ | (blocks[blocksOffset] >>> (64 + bitsLeft));
+ bitsLeft += 64;
+ } else {
+ values[valuesOffset++] = (blocks[blocksOffset] >>> bitsLeft) & mask;
+ }
+ }
+ }
+
+ @Override
+ public void decode(byte[] blocks, int blocksOffset, long[] values,
+ int valuesOffset, int iterations) {
+ int blockBitsLeft = 8;
+ int valueBitsLeft = bitsPerValue;
+ long nextValue = 0;
+ for (int end = valuesOffset + iterations * valueCount; valuesOffset < end; ) {
+ if (valueBitsLeft > blockBitsLeft) {
+ nextValue |= (blocks[blocksOffset++] & ((1L << blockBitsLeft) - 1)) << (valueBitsLeft - blockBitsLeft);
+ valueBitsLeft -= blockBitsLeft;
+ blockBitsLeft = 8;
+ } else {
+ nextValue |= ((blocks[blocksOffset] & 0xFFL) >>> (blockBitsLeft - valueBitsLeft)) & ((1L << valueBitsLeft) - 1);
+ values[valuesOffset++] = nextValue;
+ nextValue = 0;
+ blockBitsLeft -= valueBitsLeft;
+ valueBitsLeft = bitsPerValue;
+ }
+ }
+ }
+
+ @Override
+ public void decode(long[] blocks, int blocksOffset, int[] values,
+ int valuesOffset, int iterations) {
+ if (bitsPerValue > 32) {
+ throw new UnsupportedOperationException("Cannot decode " + bitsPerValue + "-bits values into an int[]");
+ }
+ int bitsLeft = 64;
+ for (int i = 0; i < valueCount * iterations; ++i) {
+ bitsLeft -= bitsPerValue;
+ if (bitsLeft < 0) {
+ values[valuesOffset++] = (int)
+ (((blocks[blocksOffset++] & ((1L << (bitsPerValue + bitsLeft)) - 1)) << -bitsLeft)
+ | (blocks[blocksOffset] >>> (64 + bitsLeft)));
+ bitsLeft += 64;
+ } else {
+ values[valuesOffset++] = (int) ((blocks[blocksOffset] >>> bitsLeft) & mask);
+ }
+ }
+ }
+
+ @Override
+ public void decode(byte[] blocks, int blocksOffset, int[] values,
+ int valuesOffset, int iterations) {
+ if (bitsPerValue > 32) {
+ throw new UnsupportedOperationException("Cannot decode " + bitsPerValue + "-bits values into an int[]");
+ }
+ int blockBitsLeft = 8;
+ int valueBitsLeft = bitsPerValue;
+ int nextValue = 0;
+ for (int end = valuesOffset + iterations * valueCount; valuesOffset < end; ) {
+ if (valueBitsLeft > blockBitsLeft) {
+ nextValue |= (blocks[blocksOffset++] & ((1L << blockBitsLeft) - 1)) << (valueBitsLeft - blockBitsLeft);
+ valueBitsLeft -= blockBitsLeft;
+ blockBitsLeft = 8;
+ } else {
+ nextValue |= ((blocks[blocksOffset] & 0xFFL) >>> (blockBitsLeft - valueBitsLeft)) & ((1L << valueBitsLeft) - 1);
+ values[valuesOffset++] = nextValue;
+ nextValue = 0;
+ blockBitsLeft -= valueBitsLeft;
+ valueBitsLeft = bitsPerValue;
+ }
+ }
+ }
+
+ @Override
+ public void encode(long[] values, int valuesOffset, long[] blocks,
+ int blocksOffset, int iterations) {
+ long nextBlock = 0;
+ int bitsLeft = 64;
+ for (int i = 0; i < valueCount * iterations; ++i) {
+ bitsLeft -= bitsPerValue;
+ if (bitsLeft > 0) {
+ nextBlock |= values[valuesOffset++] << bitsLeft;
+ } else if (bitsLeft == 0) {
+ nextBlock |= values[valuesOffset++];
+ blocks[blocksOffset++] = nextBlock;
+ nextBlock = 0;
+ bitsLeft = 64;
+ } else { // bitsLeft < 0
+ nextBlock |= values[valuesOffset] >>> -bitsLeft;
+ blocks[blocksOffset++] = nextBlock;
+ nextBlock = (values[valuesOffset++] & ((1L << -bitsLeft) - 1)) << (64 + bitsLeft);
+ bitsLeft += 64;
+ }
+ }
+ }
+
+ @Override
+ public void encode(int[] values, int valuesOffset, long[] blocks,
+ int blocksOffset, int iterations) {
+ long nextBlock = 0;
+ int bitsLeft = 64;
+ for (int i = 0; i < valueCount * iterations; ++i) {
+ bitsLeft -= bitsPerValue;
+ if (bitsLeft > 0) {
+ nextBlock |= (values[valuesOffset++] & 0xFFFFFFFFL) << bitsLeft;
+ } else if (bitsLeft == 0) {
+ nextBlock |= (values[valuesOffset++] & 0xFFFFFFFFL);
+ blocks[blocksOffset++] = nextBlock;
+ nextBlock = 0;
+ bitsLeft = 64;
+ } else { // bitsLeft < 0
+ nextBlock |= (values[valuesOffset] & 0xFFFFFFFFL) >>> -bitsLeft;
+ blocks[blocksOffset++] = nextBlock;
+ nextBlock = (values[valuesOffset++] & ((1L << -bitsLeft) - 1)) << (64 + bitsLeft);
+ bitsLeft += 64;
+ }
+ }
+ }
+
+ @Override
+ public void encode(long[] values, int valuesOffset, byte[] blocks,
+ int blocksOffset, int iterations) {
+ long nextBlock = 0;
+ int bitsLeft = 64;
+ for (int i = 0; i < valueCount * iterations; ++i) {
+ bitsLeft -= bitsPerValue;
+ if (bitsLeft > 0) {
+ nextBlock |= values[valuesOffset++] << bitsLeft;
+ } else if (bitsLeft == 0) {
+ nextBlock |= values[valuesOffset++];
+ blocksOffset = writeLong(nextBlock, blocks, blocksOffset);
+ nextBlock = 0;
+ bitsLeft = 64;
+ } else { // bitsLeft < 0
+ nextBlock |= values[valuesOffset] >>> -bitsLeft;
+ blocksOffset = writeLong(nextBlock, blocks, blocksOffset);
+ nextBlock = (values[valuesOffset++] & ((1L << -bitsLeft) - 1)) << (64 + bitsLeft);
+ bitsLeft += 64;
+ }
+ }
+ }
+
+ @Override
+ public void encode(int[] values, int valuesOffset, byte[] blocks,
+ int blocksOffset, int iterations) {
+ long nextBlock = 0;
+ int bitsLeft = 64;
+ for (int i = 0; i < valueCount * iterations; ++i) {
+ bitsLeft -= bitsPerValue;
+ if (bitsLeft > 0) {
+ nextBlock |= (values[valuesOffset++] & 0xFFFFFFFFL) << bitsLeft;
+ } else if (bitsLeft == 0) {
+ nextBlock |= (values[valuesOffset++] & 0xFFFFFFFFL);
+ blocksOffset = writeLong(nextBlock, blocks, blocksOffset);
+ nextBlock = 0;
+ bitsLeft = 64;
+ } else { // bitsLeft < 0
+ nextBlock |= (values[valuesOffset] & 0xFFFFFFFFL) >>> -bitsLeft;
+ blocksOffset = writeLong(nextBlock, blocks, blocksOffset);
+ nextBlock = (values[valuesOffset++] & ((1L << -bitsLeft) - 1)) << (64 + bitsLeft);
+ bitsLeft += 64;
+ }
+ }
+ }
+
+}
Modification de propriétés sur lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked.java
___________________________________________________________________
Ajouté : svn:eol-style
+ native
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock4.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock4.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock4.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock4 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock4 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 16;
+ public BulkOperationPackedSingleBlock4() {
+ super(4);
}
@Override
@@ -147,22 +142,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 60);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 4) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 60);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked11.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked11.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked11.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked11 extends BulkOperation {
- @Override
- public int blockCount() {
- return 11;
- }
+final class BulkOperationPacked11 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked11() {
+ super(11);
+ assert blockCount() == 11;
+ assert valueCount() == 64;
}
@Override
@@ -519,42 +516,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 11) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 11) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked31.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked31.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked31.java (copie de travail)
@@ -1,960 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked31 extends BulkOperation {
- @Override
- public int blockCount() {
- return 31;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 33);
- values[valuesOffset++] = (int) ((block0 >>> 2) & 2147483647L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 3L) << 29) | (block1 >>> 35));
- values[valuesOffset++] = (int) ((block1 >>> 4) & 2147483647L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 15L) << 27) | (block2 >>> 37));
- values[valuesOffset++] = (int) ((block2 >>> 6) & 2147483647L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 63L) << 25) | (block3 >>> 39));
- values[valuesOffset++] = (int) ((block3 >>> 8) & 2147483647L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 255L) << 23) | (block4 >>> 41));
- values[valuesOffset++] = (int) ((block4 >>> 10) & 2147483647L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 1023L) << 21) | (block5 >>> 43));
- values[valuesOffset++] = (int) ((block5 >>> 12) & 2147483647L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 4095L) << 19) | (block6 >>> 45));
- values[valuesOffset++] = (int) ((block6 >>> 14) & 2147483647L);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block6 & 16383L) << 17) | (block7 >>> 47));
- values[valuesOffset++] = (int) ((block7 >>> 16) & 2147483647L);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block7 & 65535L) << 15) | (block8 >>> 49));
- values[valuesOffset++] = (int) ((block8 >>> 18) & 2147483647L);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block8 & 262143L) << 13) | (block9 >>> 51));
- values[valuesOffset++] = (int) ((block9 >>> 20) & 2147483647L);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block9 & 1048575L) << 11) | (block10 >>> 53));
- values[valuesOffset++] = (int) ((block10 >>> 22) & 2147483647L);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block10 & 4194303L) << 9) | (block11 >>> 55));
- values[valuesOffset++] = (int) ((block11 >>> 24) & 2147483647L);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block11 & 16777215L) << 7) | (block12 >>> 57));
- values[valuesOffset++] = (int) ((block12 >>> 26) & 2147483647L);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block12 & 67108863L) << 5) | (block13 >>> 59));
- values[valuesOffset++] = (int) ((block13 >>> 28) & 2147483647L);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block13 & 268435455L) << 3) | (block14 >>> 61));
- values[valuesOffset++] = (int) ((block14 >>> 30) & 2147483647L);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block14 & 1073741823L) << 1) | (block15 >>> 63));
- values[valuesOffset++] = (int) ((block15 >>> 32) & 2147483647L);
- values[valuesOffset++] = (int) ((block15 >>> 1) & 2147483647L);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block15 & 1L) << 30) | (block16 >>> 34));
- values[valuesOffset++] = (int) ((block16 >>> 3) & 2147483647L);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block16 & 7L) << 28) | (block17 >>> 36));
- values[valuesOffset++] = (int) ((block17 >>> 5) & 2147483647L);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block17 & 31L) << 26) | (block18 >>> 38));
- values[valuesOffset++] = (int) ((block18 >>> 7) & 2147483647L);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block18 & 127L) << 24) | (block19 >>> 40));
- values[valuesOffset++] = (int) ((block19 >>> 9) & 2147483647L);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block19 & 511L) << 22) | (block20 >>> 42));
- values[valuesOffset++] = (int) ((block20 >>> 11) & 2147483647L);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block20 & 2047L) << 20) | (block21 >>> 44));
- values[valuesOffset++] = (int) ((block21 >>> 13) & 2147483647L);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block21 & 8191L) << 18) | (block22 >>> 46));
- values[valuesOffset++] = (int) ((block22 >>> 15) & 2147483647L);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block22 & 32767L) << 16) | (block23 >>> 48));
- values[valuesOffset++] = (int) ((block23 >>> 17) & 2147483647L);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block23 & 131071L) << 14) | (block24 >>> 50));
- values[valuesOffset++] = (int) ((block24 >>> 19) & 2147483647L);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block24 & 524287L) << 12) | (block25 >>> 52));
- values[valuesOffset++] = (int) ((block25 >>> 21) & 2147483647L);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block25 & 2097151L) << 10) | (block26 >>> 54));
- values[valuesOffset++] = (int) ((block26 >>> 23) & 2147483647L);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block26 & 8388607L) << 8) | (block27 >>> 56));
- values[valuesOffset++] = (int) ((block27 >>> 25) & 2147483647L);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block27 & 33554431L) << 6) | (block28 >>> 58));
- values[valuesOffset++] = (int) ((block28 >>> 27) & 2147483647L);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block28 & 134217727L) << 4) | (block29 >>> 60));
- values[valuesOffset++] = (int) ((block29 >>> 29) & 2147483647L);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block29 & 536870911L) << 2) | (block30 >>> 62));
- values[valuesOffset++] = (int) ((block30 >>> 31) & 2147483647L);
- values[valuesOffset++] = (int) (block30 & 2147483647L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 23) | (byte1 << 15) | (byte2 << 7) | (byte3 >>> 1);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 1) << 30) | (byte4 << 22) | (byte5 << 14) | (byte6 << 6) | (byte7 >>> 2);
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 3) << 29) | (byte8 << 21) | (byte9 << 13) | (byte10 << 5) | (byte11 >>> 3);
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 7) << 28) | (byte12 << 20) | (byte13 << 12) | (byte14 << 4) | (byte15 >>> 4);
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 15) << 27) | (byte16 << 19) | (byte17 << 11) | (byte18 << 3) | (byte19 >>> 5);
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 31) << 26) | (byte20 << 18) | (byte21 << 10) | (byte22 << 2) | (byte23 >>> 6);
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 63) << 25) | (byte24 << 17) | (byte25 << 9) | (byte26 << 1) | (byte27 >>> 7);
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte27 & 127) << 24) | (byte28 << 16) | (byte29 << 8) | byte30;
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte31 << 23) | (byte32 << 15) | (byte33 << 7) | (byte34 >>> 1);
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 1) << 30) | (byte35 << 22) | (byte36 << 14) | (byte37 << 6) | (byte38 >>> 2);
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 3) << 29) | (byte39 << 21) | (byte40 << 13) | (byte41 << 5) | (byte42 >>> 3);
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 7) << 28) | (byte43 << 20) | (byte44 << 12) | (byte45 << 4) | (byte46 >>> 4);
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 15) << 27) | (byte47 << 19) | (byte48 << 11) | (byte49 << 3) | (byte50 >>> 5);
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 31) << 26) | (byte51 << 18) | (byte52 << 10) | (byte53 << 2) | (byte54 >>> 6);
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- final int byte56 = blocks[blocksOffset++] & 0xFF;
- final int byte57 = blocks[blocksOffset++] & 0xFF;
- final int byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte54 & 63) << 25) | (byte55 << 17) | (byte56 << 9) | (byte57 << 1) | (byte58 >>> 7);
- final int byte59 = blocks[blocksOffset++] & 0xFF;
- final int byte60 = blocks[blocksOffset++] & 0xFF;
- final int byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 127) << 24) | (byte59 << 16) | (byte60 << 8) | byte61;
- final int byte62 = blocks[blocksOffset++] & 0xFF;
- final int byte63 = blocks[blocksOffset++] & 0xFF;
- final int byte64 = blocks[blocksOffset++] & 0xFF;
- final int byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte62 << 23) | (byte63 << 15) | (byte64 << 7) | (byte65 >>> 1);
- final int byte66 = blocks[blocksOffset++] & 0xFF;
- final int byte67 = blocks[blocksOffset++] & 0xFF;
- final int byte68 = blocks[blocksOffset++] & 0xFF;
- final int byte69 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 1) << 30) | (byte66 << 22) | (byte67 << 14) | (byte68 << 6) | (byte69 >>> 2);
- final int byte70 = blocks[blocksOffset++] & 0xFF;
- final int byte71 = blocks[blocksOffset++] & 0xFF;
- final int byte72 = blocks[blocksOffset++] & 0xFF;
- final int byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte69 & 3) << 29) | (byte70 << 21) | (byte71 << 13) | (byte72 << 5) | (byte73 >>> 3);
- final int byte74 = blocks[blocksOffset++] & 0xFF;
- final int byte75 = blocks[blocksOffset++] & 0xFF;
- final int byte76 = blocks[blocksOffset++] & 0xFF;
- final int byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 7) << 28) | (byte74 << 20) | (byte75 << 12) | (byte76 << 4) | (byte77 >>> 4);
- final int byte78 = blocks[blocksOffset++] & 0xFF;
- final int byte79 = blocks[blocksOffset++] & 0xFF;
- final int byte80 = blocks[blocksOffset++] & 0xFF;
- final int byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte77 & 15) << 27) | (byte78 << 19) | (byte79 << 11) | (byte80 << 3) | (byte81 >>> 5);
- final int byte82 = blocks[blocksOffset++] & 0xFF;
- final int byte83 = blocks[blocksOffset++] & 0xFF;
- final int byte84 = blocks[blocksOffset++] & 0xFF;
- final int byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 31) << 26) | (byte82 << 18) | (byte83 << 10) | (byte84 << 2) | (byte85 >>> 6);
- final int byte86 = blocks[blocksOffset++] & 0xFF;
- final int byte87 = blocks[blocksOffset++] & 0xFF;
- final int byte88 = blocks[blocksOffset++] & 0xFF;
- final int byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte85 & 63) << 25) | (byte86 << 17) | (byte87 << 9) | (byte88 << 1) | (byte89 >>> 7);
- final int byte90 = blocks[blocksOffset++] & 0xFF;
- final int byte91 = blocks[blocksOffset++] & 0xFF;
- final int byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte89 & 127) << 24) | (byte90 << 16) | (byte91 << 8) | byte92;
- final int byte93 = blocks[blocksOffset++] & 0xFF;
- final int byte94 = blocks[blocksOffset++] & 0xFF;
- final int byte95 = blocks[blocksOffset++] & 0xFF;
- final int byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte93 << 23) | (byte94 << 15) | (byte95 << 7) | (byte96 >>> 1);
- final int byte97 = blocks[blocksOffset++] & 0xFF;
- final int byte98 = blocks[blocksOffset++] & 0xFF;
- final int byte99 = blocks[blocksOffset++] & 0xFF;
- final int byte100 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 1) << 30) | (byte97 << 22) | (byte98 << 14) | (byte99 << 6) | (byte100 >>> 2);
- final int byte101 = blocks[blocksOffset++] & 0xFF;
- final int byte102 = blocks[blocksOffset++] & 0xFF;
- final int byte103 = blocks[blocksOffset++] & 0xFF;
- final int byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte100 & 3) << 29) | (byte101 << 21) | (byte102 << 13) | (byte103 << 5) | (byte104 >>> 3);
- final int byte105 = blocks[blocksOffset++] & 0xFF;
- final int byte106 = blocks[blocksOffset++] & 0xFF;
- final int byte107 = blocks[blocksOffset++] & 0xFF;
- final int byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte104 & 7) << 28) | (byte105 << 20) | (byte106 << 12) | (byte107 << 4) | (byte108 >>> 4);
- final int byte109 = blocks[blocksOffset++] & 0xFF;
- final int byte110 = blocks[blocksOffset++] & 0xFF;
- final int byte111 = blocks[blocksOffset++] & 0xFF;
- final int byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 15) << 27) | (byte109 << 19) | (byte110 << 11) | (byte111 << 3) | (byte112 >>> 5);
- final int byte113 = blocks[blocksOffset++] & 0xFF;
- final int byte114 = blocks[blocksOffset++] & 0xFF;
- final int byte115 = blocks[blocksOffset++] & 0xFF;
- final int byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 31) << 26) | (byte113 << 18) | (byte114 << 10) | (byte115 << 2) | (byte116 >>> 6);
- final int byte117 = blocks[blocksOffset++] & 0xFF;
- final int byte118 = blocks[blocksOffset++] & 0xFF;
- final int byte119 = blocks[blocksOffset++] & 0xFF;
- final int byte120 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 63) << 25) | (byte117 << 17) | (byte118 << 9) | (byte119 << 1) | (byte120 >>> 7);
- final int byte121 = blocks[blocksOffset++] & 0xFF;
- final int byte122 = blocks[blocksOffset++] & 0xFF;
- final int byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte120 & 127) << 24) | (byte121 << 16) | (byte122 << 8) | byte123;
- final int byte124 = blocks[blocksOffset++] & 0xFF;
- final int byte125 = blocks[blocksOffset++] & 0xFF;
- final int byte126 = blocks[blocksOffset++] & 0xFF;
- final int byte127 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte124 << 23) | (byte125 << 15) | (byte126 << 7) | (byte127 >>> 1);
- final int byte128 = blocks[blocksOffset++] & 0xFF;
- final int byte129 = blocks[blocksOffset++] & 0xFF;
- final int byte130 = blocks[blocksOffset++] & 0xFF;
- final int byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte127 & 1) << 30) | (byte128 << 22) | (byte129 << 14) | (byte130 << 6) | (byte131 >>> 2);
- final int byte132 = blocks[blocksOffset++] & 0xFF;
- final int byte133 = blocks[blocksOffset++] & 0xFF;
- final int byte134 = blocks[blocksOffset++] & 0xFF;
- final int byte135 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 3) << 29) | (byte132 << 21) | (byte133 << 13) | (byte134 << 5) | (byte135 >>> 3);
- final int byte136 = blocks[blocksOffset++] & 0xFF;
- final int byte137 = blocks[blocksOffset++] & 0xFF;
- final int byte138 = blocks[blocksOffset++] & 0xFF;
- final int byte139 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte135 & 7) << 28) | (byte136 << 20) | (byte137 << 12) | (byte138 << 4) | (byte139 >>> 4);
- final int byte140 = blocks[blocksOffset++] & 0xFF;
- final int byte141 = blocks[blocksOffset++] & 0xFF;
- final int byte142 = blocks[blocksOffset++] & 0xFF;
- final int byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte139 & 15) << 27) | (byte140 << 19) | (byte141 << 11) | (byte142 << 3) | (byte143 >>> 5);
- final int byte144 = blocks[blocksOffset++] & 0xFF;
- final int byte145 = blocks[blocksOffset++] & 0xFF;
- final int byte146 = blocks[blocksOffset++] & 0xFF;
- final int byte147 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 31) << 26) | (byte144 << 18) | (byte145 << 10) | (byte146 << 2) | (byte147 >>> 6);
- final int byte148 = blocks[blocksOffset++] & 0xFF;
- final int byte149 = blocks[blocksOffset++] & 0xFF;
- final int byte150 = blocks[blocksOffset++] & 0xFF;
- final int byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte147 & 63) << 25) | (byte148 << 17) | (byte149 << 9) | (byte150 << 1) | (byte151 >>> 7);
- final int byte152 = blocks[blocksOffset++] & 0xFF;
- final int byte153 = blocks[blocksOffset++] & 0xFF;
- final int byte154 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 127) << 24) | (byte152 << 16) | (byte153 << 8) | byte154;
- final int byte155 = blocks[blocksOffset++] & 0xFF;
- final int byte156 = blocks[blocksOffset++] & 0xFF;
- final int byte157 = blocks[blocksOffset++] & 0xFF;
- final int byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte155 << 23) | (byte156 << 15) | (byte157 << 7) | (byte158 >>> 1);
- final int byte159 = blocks[blocksOffset++] & 0xFF;
- final int byte160 = blocks[blocksOffset++] & 0xFF;
- final int byte161 = blocks[blocksOffset++] & 0xFF;
- final int byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 1) << 30) | (byte159 << 22) | (byte160 << 14) | (byte161 << 6) | (byte162 >>> 2);
- final int byte163 = blocks[blocksOffset++] & 0xFF;
- final int byte164 = blocks[blocksOffset++] & 0xFF;
- final int byte165 = blocks[blocksOffset++] & 0xFF;
- final int byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 3) << 29) | (byte163 << 21) | (byte164 << 13) | (byte165 << 5) | (byte166 >>> 3);
- final int byte167 = blocks[blocksOffset++] & 0xFF;
- final int byte168 = blocks[blocksOffset++] & 0xFF;
- final int byte169 = blocks[blocksOffset++] & 0xFF;
- final int byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 7) << 28) | (byte167 << 20) | (byte168 << 12) | (byte169 << 4) | (byte170 >>> 4);
- final int byte171 = blocks[blocksOffset++] & 0xFF;
- final int byte172 = blocks[blocksOffset++] & 0xFF;
- final int byte173 = blocks[blocksOffset++] & 0xFF;
- final int byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 15) << 27) | (byte171 << 19) | (byte172 << 11) | (byte173 << 3) | (byte174 >>> 5);
- final int byte175 = blocks[blocksOffset++] & 0xFF;
- final int byte176 = blocks[blocksOffset++] & 0xFF;
- final int byte177 = blocks[blocksOffset++] & 0xFF;
- final int byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte174 & 31) << 26) | (byte175 << 18) | (byte176 << 10) | (byte177 << 2) | (byte178 >>> 6);
- final int byte179 = blocks[blocksOffset++] & 0xFF;
- final int byte180 = blocks[blocksOffset++] & 0xFF;
- final int byte181 = blocks[blocksOffset++] & 0xFF;
- final int byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 63) << 25) | (byte179 << 17) | (byte180 << 9) | (byte181 << 1) | (byte182 >>> 7);
- final int byte183 = blocks[blocksOffset++] & 0xFF;
- final int byte184 = blocks[blocksOffset++] & 0xFF;
- final int byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 127) << 24) | (byte183 << 16) | (byte184 << 8) | byte185;
- final int byte186 = blocks[blocksOffset++] & 0xFF;
- final int byte187 = blocks[blocksOffset++] & 0xFF;
- final int byte188 = blocks[blocksOffset++] & 0xFF;
- final int byte189 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte186 << 23) | (byte187 << 15) | (byte188 << 7) | (byte189 >>> 1);
- final int byte190 = blocks[blocksOffset++] & 0xFF;
- final int byte191 = blocks[blocksOffset++] & 0xFF;
- final int byte192 = blocks[blocksOffset++] & 0xFF;
- final int byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte189 & 1) << 30) | (byte190 << 22) | (byte191 << 14) | (byte192 << 6) | (byte193 >>> 2);
- final int byte194 = blocks[blocksOffset++] & 0xFF;
- final int byte195 = blocks[blocksOffset++] & 0xFF;
- final int byte196 = blocks[blocksOffset++] & 0xFF;
- final int byte197 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 3) << 29) | (byte194 << 21) | (byte195 << 13) | (byte196 << 5) | (byte197 >>> 3);
- final int byte198 = blocks[blocksOffset++] & 0xFF;
- final int byte199 = blocks[blocksOffset++] & 0xFF;
- final int byte200 = blocks[blocksOffset++] & 0xFF;
- final int byte201 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte197 & 7) << 28) | (byte198 << 20) | (byte199 << 12) | (byte200 << 4) | (byte201 >>> 4);
- final int byte202 = blocks[blocksOffset++] & 0xFF;
- final int byte203 = blocks[blocksOffset++] & 0xFF;
- final int byte204 = blocks[blocksOffset++] & 0xFF;
- final int byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte201 & 15) << 27) | (byte202 << 19) | (byte203 << 11) | (byte204 << 3) | (byte205 >>> 5);
- final int byte206 = blocks[blocksOffset++] & 0xFF;
- final int byte207 = blocks[blocksOffset++] & 0xFF;
- final int byte208 = blocks[blocksOffset++] & 0xFF;
- final int byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 31) << 26) | (byte206 << 18) | (byte207 << 10) | (byte208 << 2) | (byte209 >>> 6);
- final int byte210 = blocks[blocksOffset++] & 0xFF;
- final int byte211 = blocks[blocksOffset++] & 0xFF;
- final int byte212 = blocks[blocksOffset++] & 0xFF;
- final int byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 63) << 25) | (byte210 << 17) | (byte211 << 9) | (byte212 << 1) | (byte213 >>> 7);
- final int byte214 = blocks[blocksOffset++] & 0xFF;
- final int byte215 = blocks[blocksOffset++] & 0xFF;
- final int byte216 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 127) << 24) | (byte214 << 16) | (byte215 << 8) | byte216;
- final int byte217 = blocks[blocksOffset++] & 0xFF;
- final int byte218 = blocks[blocksOffset++] & 0xFF;
- final int byte219 = blocks[blocksOffset++] & 0xFF;
- final int byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte217 << 23) | (byte218 << 15) | (byte219 << 7) | (byte220 >>> 1);
- final int byte221 = blocks[blocksOffset++] & 0xFF;
- final int byte222 = blocks[blocksOffset++] & 0xFF;
- final int byte223 = blocks[blocksOffset++] & 0xFF;
- final int byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 1) << 30) | (byte221 << 22) | (byte222 << 14) | (byte223 << 6) | (byte224 >>> 2);
- final int byte225 = blocks[blocksOffset++] & 0xFF;
- final int byte226 = blocks[blocksOffset++] & 0xFF;
- final int byte227 = blocks[blocksOffset++] & 0xFF;
- final int byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 3) << 29) | (byte225 << 21) | (byte226 << 13) | (byte227 << 5) | (byte228 >>> 3);
- final int byte229 = blocks[blocksOffset++] & 0xFF;
- final int byte230 = blocks[blocksOffset++] & 0xFF;
- final int byte231 = blocks[blocksOffset++] & 0xFF;
- final int byte232 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 7) << 28) | (byte229 << 20) | (byte230 << 12) | (byte231 << 4) | (byte232 >>> 4);
- final int byte233 = blocks[blocksOffset++] & 0xFF;
- final int byte234 = blocks[blocksOffset++] & 0xFF;
- final int byte235 = blocks[blocksOffset++] & 0xFF;
- final int byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte232 & 15) << 27) | (byte233 << 19) | (byte234 << 11) | (byte235 << 3) | (byte236 >>> 5);
- final int byte237 = blocks[blocksOffset++] & 0xFF;
- final int byte238 = blocks[blocksOffset++] & 0xFF;
- final int byte239 = blocks[blocksOffset++] & 0xFF;
- final int byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 31) << 26) | (byte237 << 18) | (byte238 << 10) | (byte239 << 2) | (byte240 >>> 6);
- final int byte241 = blocks[blocksOffset++] & 0xFF;
- final int byte242 = blocks[blocksOffset++] & 0xFF;
- final int byte243 = blocks[blocksOffset++] & 0xFF;
- final int byte244 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 63) << 25) | (byte241 << 17) | (byte242 << 9) | (byte243 << 1) | (byte244 >>> 7);
- final int byte245 = blocks[blocksOffset++] & 0xFF;
- final int byte246 = blocks[blocksOffset++] & 0xFF;
- final int byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte244 & 127) << 24) | (byte245 << 16) | (byte246 << 8) | byte247;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 33;
- values[valuesOffset++] = (block0 >>> 2) & 2147483647L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 3L) << 29) | (block1 >>> 35);
- values[valuesOffset++] = (block1 >>> 4) & 2147483647L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 15L) << 27) | (block2 >>> 37);
- values[valuesOffset++] = (block2 >>> 6) & 2147483647L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 63L) << 25) | (block3 >>> 39);
- values[valuesOffset++] = (block3 >>> 8) & 2147483647L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 255L) << 23) | (block4 >>> 41);
- values[valuesOffset++] = (block4 >>> 10) & 2147483647L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1023L) << 21) | (block5 >>> 43);
- values[valuesOffset++] = (block5 >>> 12) & 2147483647L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 4095L) << 19) | (block6 >>> 45);
- values[valuesOffset++] = (block6 >>> 14) & 2147483647L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 16383L) << 17) | (block7 >>> 47);
- values[valuesOffset++] = (block7 >>> 16) & 2147483647L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 65535L) << 15) | (block8 >>> 49);
- values[valuesOffset++] = (block8 >>> 18) & 2147483647L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 262143L) << 13) | (block9 >>> 51);
- values[valuesOffset++] = (block9 >>> 20) & 2147483647L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1048575L) << 11) | (block10 >>> 53);
- values[valuesOffset++] = (block10 >>> 22) & 2147483647L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 4194303L) << 9) | (block11 >>> 55);
- values[valuesOffset++] = (block11 >>> 24) & 2147483647L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 16777215L) << 7) | (block12 >>> 57);
- values[valuesOffset++] = (block12 >>> 26) & 2147483647L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 67108863L) << 5) | (block13 >>> 59);
- values[valuesOffset++] = (block13 >>> 28) & 2147483647L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 268435455L) << 3) | (block14 >>> 61);
- values[valuesOffset++] = (block14 >>> 30) & 2147483647L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1073741823L) << 1) | (block15 >>> 63);
- values[valuesOffset++] = (block15 >>> 32) & 2147483647L;
- values[valuesOffset++] = (block15 >>> 1) & 2147483647L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 1L) << 30) | (block16 >>> 34);
- values[valuesOffset++] = (block16 >>> 3) & 2147483647L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 7L) << 28) | (block17 >>> 36);
- values[valuesOffset++] = (block17 >>> 5) & 2147483647L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 31L) << 26) | (block18 >>> 38);
- values[valuesOffset++] = (block18 >>> 7) & 2147483647L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 127L) << 24) | (block19 >>> 40);
- values[valuesOffset++] = (block19 >>> 9) & 2147483647L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 511L) << 22) | (block20 >>> 42);
- values[valuesOffset++] = (block20 >>> 11) & 2147483647L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 2047L) << 20) | (block21 >>> 44);
- values[valuesOffset++] = (block21 >>> 13) & 2147483647L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 8191L) << 18) | (block22 >>> 46);
- values[valuesOffset++] = (block22 >>> 15) & 2147483647L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 32767L) << 16) | (block23 >>> 48);
- values[valuesOffset++] = (block23 >>> 17) & 2147483647L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 131071L) << 14) | (block24 >>> 50);
- values[valuesOffset++] = (block24 >>> 19) & 2147483647L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 524287L) << 12) | (block25 >>> 52);
- values[valuesOffset++] = (block25 >>> 21) & 2147483647L;
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 2097151L) << 10) | (block26 >>> 54);
- values[valuesOffset++] = (block26 >>> 23) & 2147483647L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 8388607L) << 8) | (block27 >>> 56);
- values[valuesOffset++] = (block27 >>> 25) & 2147483647L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 33554431L) << 6) | (block28 >>> 58);
- values[valuesOffset++] = (block28 >>> 27) & 2147483647L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 134217727L) << 4) | (block29 >>> 60);
- values[valuesOffset++] = (block29 >>> 29) & 2147483647L;
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 536870911L) << 2) | (block30 >>> 62);
- values[valuesOffset++] = (block30 >>> 31) & 2147483647L;
- values[valuesOffset++] = block30 & 2147483647L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 23) | (byte1 << 15) | (byte2 << 7) | (byte3 >>> 1);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 1) << 30) | (byte4 << 22) | (byte5 << 14) | (byte6 << 6) | (byte7 >>> 2);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 3) << 29) | (byte8 << 21) | (byte9 << 13) | (byte10 << 5) | (byte11 >>> 3);
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 7) << 28) | (byte12 << 20) | (byte13 << 12) | (byte14 << 4) | (byte15 >>> 4);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 15) << 27) | (byte16 << 19) | (byte17 << 11) | (byte18 << 3) | (byte19 >>> 5);
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 31) << 26) | (byte20 << 18) | (byte21 << 10) | (byte22 << 2) | (byte23 >>> 6);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 63) << 25) | (byte24 << 17) | (byte25 << 9) | (byte26 << 1) | (byte27 >>> 7);
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte27 & 127) << 24) | (byte28 << 16) | (byte29 << 8) | byte30;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte31 << 23) | (byte32 << 15) | (byte33 << 7) | (byte34 >>> 1);
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 1) << 30) | (byte35 << 22) | (byte36 << 14) | (byte37 << 6) | (byte38 >>> 2);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 3) << 29) | (byte39 << 21) | (byte40 << 13) | (byte41 << 5) | (byte42 >>> 3);
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 7) << 28) | (byte43 << 20) | (byte44 << 12) | (byte45 << 4) | (byte46 >>> 4);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 15) << 27) | (byte47 << 19) | (byte48 << 11) | (byte49 << 3) | (byte50 >>> 5);
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 31) << 26) | (byte51 << 18) | (byte52 << 10) | (byte53 << 2) | (byte54 >>> 6);
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte54 & 63) << 25) | (byte55 << 17) | (byte56 << 9) | (byte57 << 1) | (byte58 >>> 7);
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 127) << 24) | (byte59 << 16) | (byte60 << 8) | byte61;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte62 << 23) | (byte63 << 15) | (byte64 << 7) | (byte65 >>> 1);
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 1) << 30) | (byte66 << 22) | (byte67 << 14) | (byte68 << 6) | (byte69 >>> 2);
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte69 & 3) << 29) | (byte70 << 21) | (byte71 << 13) | (byte72 << 5) | (byte73 >>> 3);
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 7) << 28) | (byte74 << 20) | (byte75 << 12) | (byte76 << 4) | (byte77 >>> 4);
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte77 & 15) << 27) | (byte78 << 19) | (byte79 << 11) | (byte80 << 3) | (byte81 >>> 5);
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 31) << 26) | (byte82 << 18) | (byte83 << 10) | (byte84 << 2) | (byte85 >>> 6);
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte85 & 63) << 25) | (byte86 << 17) | (byte87 << 9) | (byte88 << 1) | (byte89 >>> 7);
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte89 & 127) << 24) | (byte90 << 16) | (byte91 << 8) | byte92;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte93 << 23) | (byte94 << 15) | (byte95 << 7) | (byte96 >>> 1);
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 1) << 30) | (byte97 << 22) | (byte98 << 14) | (byte99 << 6) | (byte100 >>> 2);
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte100 & 3) << 29) | (byte101 << 21) | (byte102 << 13) | (byte103 << 5) | (byte104 >>> 3);
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte104 & 7) << 28) | (byte105 << 20) | (byte106 << 12) | (byte107 << 4) | (byte108 >>> 4);
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 15) << 27) | (byte109 << 19) | (byte110 << 11) | (byte111 << 3) | (byte112 >>> 5);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 31) << 26) | (byte113 << 18) | (byte114 << 10) | (byte115 << 2) | (byte116 >>> 6);
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 63) << 25) | (byte117 << 17) | (byte118 << 9) | (byte119 << 1) | (byte120 >>> 7);
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte120 & 127) << 24) | (byte121 << 16) | (byte122 << 8) | byte123;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte124 << 23) | (byte125 << 15) | (byte126 << 7) | (byte127 >>> 1);
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte127 & 1) << 30) | (byte128 << 22) | (byte129 << 14) | (byte130 << 6) | (byte131 >>> 2);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 3) << 29) | (byte132 << 21) | (byte133 << 13) | (byte134 << 5) | (byte135 >>> 3);
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte135 & 7) << 28) | (byte136 << 20) | (byte137 << 12) | (byte138 << 4) | (byte139 >>> 4);
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte139 & 15) << 27) | (byte140 << 19) | (byte141 << 11) | (byte142 << 3) | (byte143 >>> 5);
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 31) << 26) | (byte144 << 18) | (byte145 << 10) | (byte146 << 2) | (byte147 >>> 6);
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte147 & 63) << 25) | (byte148 << 17) | (byte149 << 9) | (byte150 << 1) | (byte151 >>> 7);
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 127) << 24) | (byte152 << 16) | (byte153 << 8) | byte154;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte155 << 23) | (byte156 << 15) | (byte157 << 7) | (byte158 >>> 1);
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 1) << 30) | (byte159 << 22) | (byte160 << 14) | (byte161 << 6) | (byte162 >>> 2);
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 3) << 29) | (byte163 << 21) | (byte164 << 13) | (byte165 << 5) | (byte166 >>> 3);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 7) << 28) | (byte167 << 20) | (byte168 << 12) | (byte169 << 4) | (byte170 >>> 4);
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 15) << 27) | (byte171 << 19) | (byte172 << 11) | (byte173 << 3) | (byte174 >>> 5);
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte174 & 31) << 26) | (byte175 << 18) | (byte176 << 10) | (byte177 << 2) | (byte178 >>> 6);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 63) << 25) | (byte179 << 17) | (byte180 << 9) | (byte181 << 1) | (byte182 >>> 7);
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 127) << 24) | (byte183 << 16) | (byte184 << 8) | byte185;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte186 << 23) | (byte187 << 15) | (byte188 << 7) | (byte189 >>> 1);
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte189 & 1) << 30) | (byte190 << 22) | (byte191 << 14) | (byte192 << 6) | (byte193 >>> 2);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 3) << 29) | (byte194 << 21) | (byte195 << 13) | (byte196 << 5) | (byte197 >>> 3);
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte197 & 7) << 28) | (byte198 << 20) | (byte199 << 12) | (byte200 << 4) | (byte201 >>> 4);
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte201 & 15) << 27) | (byte202 << 19) | (byte203 << 11) | (byte204 << 3) | (byte205 >>> 5);
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 31) << 26) | (byte206 << 18) | (byte207 << 10) | (byte208 << 2) | (byte209 >>> 6);
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 63) << 25) | (byte210 << 17) | (byte211 << 9) | (byte212 << 1) | (byte213 >>> 7);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 127) << 24) | (byte214 << 16) | (byte215 << 8) | byte216;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte217 << 23) | (byte218 << 15) | (byte219 << 7) | (byte220 >>> 1);
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 1) << 30) | (byte221 << 22) | (byte222 << 14) | (byte223 << 6) | (byte224 >>> 2);
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 3) << 29) | (byte225 << 21) | (byte226 << 13) | (byte227 << 5) | (byte228 >>> 3);
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 7) << 28) | (byte229 << 20) | (byte230 << 12) | (byte231 << 4) | (byte232 >>> 4);
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte232 & 15) << 27) | (byte233 << 19) | (byte234 << 11) | (byte235 << 3) | (byte236 >>> 5);
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 31) << 26) | (byte237 << 18) | (byte238 << 10) | (byte239 << 2) | (byte240 >>> 6);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 63) << 25) | (byte241 << 17) | (byte242 << 9) | (byte243 << 1) | (byte244 >>> 7);
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte244 & 127) << 24) | (byte245 << 16) | (byte246 << 8) | byte247;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 31) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 31) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock8.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock8.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock8.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock8 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock8 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 8;
+ public BulkOperationPackedSingleBlock8() {
+ super(8);
}
@Override
@@ -115,22 +110,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 56);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 56);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked23.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked23.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked23.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked23 extends BulkOperation {
- @Override
- public int blockCount() {
- return 23;
- }
+final class BulkOperationPacked23 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked23() {
+ super(23);
+ assert blockCount() == 23;
+ assert valueCount() == 64;
}
@Override
@@ -735,66 +732,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 23) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 23) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked51.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked51.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked51.java (copie de travail)
@@ -1,767 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked51 extends BulkOperation {
- @Override
- public int blockCount() {
- return 51;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 13;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 8191L) << 38) | (block1 >>> 26);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 67108863L) << 25) | (block2 >>> 39);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 549755813887L) << 12) | (block3 >>> 52);
- values[valuesOffset++] = (block3 >>> 1) & 2251799813685247L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 1L) << 50) | (block4 >>> 14);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 16383L) << 37) | (block5 >>> 27);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 134217727L) << 24) | (block6 >>> 40);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 1099511627775L) << 11) | (block7 >>> 53);
- values[valuesOffset++] = (block7 >>> 2) & 2251799813685247L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 3L) << 49) | (block8 >>> 15);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 32767L) << 36) | (block9 >>> 28);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 268435455L) << 23) | (block10 >>> 41);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 2199023255551L) << 10) | (block11 >>> 54);
- values[valuesOffset++] = (block11 >>> 3) & 2251799813685247L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 7L) << 48) | (block12 >>> 16);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 65535L) << 35) | (block13 >>> 29);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 536870911L) << 22) | (block14 >>> 42);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 4398046511103L) << 9) | (block15 >>> 55);
- values[valuesOffset++] = (block15 >>> 4) & 2251799813685247L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 15L) << 47) | (block16 >>> 17);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 131071L) << 34) | (block17 >>> 30);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 1073741823L) << 21) | (block18 >>> 43);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 8796093022207L) << 8) | (block19 >>> 56);
- values[valuesOffset++] = (block19 >>> 5) & 2251799813685247L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 31L) << 46) | (block20 >>> 18);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 262143L) << 33) | (block21 >>> 31);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 2147483647L) << 20) | (block22 >>> 44);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 17592186044415L) << 7) | (block23 >>> 57);
- values[valuesOffset++] = (block23 >>> 6) & 2251799813685247L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 63L) << 45) | (block24 >>> 19);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 524287L) << 32) | (block25 >>> 32);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 4294967295L) << 19) | (block26 >>> 45);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 35184372088831L) << 6) | (block27 >>> 58);
- values[valuesOffset++] = (block27 >>> 7) & 2251799813685247L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 127L) << 44) | (block28 >>> 20);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 1048575L) << 31) | (block29 >>> 33);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 8589934591L) << 18) | (block30 >>> 46);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 70368744177663L) << 5) | (block31 >>> 59);
- values[valuesOffset++] = (block31 >>> 8) & 2251799813685247L;
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 255L) << 43) | (block32 >>> 21);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 2097151L) << 30) | (block33 >>> 34);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 17179869183L) << 17) | (block34 >>> 47);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 140737488355327L) << 4) | (block35 >>> 60);
- values[valuesOffset++] = (block35 >>> 9) & 2251799813685247L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 511L) << 42) | (block36 >>> 22);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 4194303L) << 29) | (block37 >>> 35);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 34359738367L) << 16) | (block38 >>> 48);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 281474976710655L) << 3) | (block39 >>> 61);
- values[valuesOffset++] = (block39 >>> 10) & 2251799813685247L;
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 1023L) << 41) | (block40 >>> 23);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 8388607L) << 28) | (block41 >>> 36);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 68719476735L) << 15) | (block42 >>> 49);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 562949953421311L) << 2) | (block43 >>> 62);
- values[valuesOffset++] = (block43 >>> 11) & 2251799813685247L;
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 2047L) << 40) | (block44 >>> 24);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 16777215L) << 27) | (block45 >>> 37);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 137438953471L) << 14) | (block46 >>> 50);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 1125899906842623L) << 1) | (block47 >>> 63);
- values[valuesOffset++] = (block47 >>> 12) & 2251799813685247L;
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 4095L) << 39) | (block48 >>> 25);
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 33554431L) << 26) | (block49 >>> 38);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 274877906943L) << 13) | (block50 >>> 51);
- values[valuesOffset++] = block50 & 2251799813685247L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 43) | (byte1 << 35) | (byte2 << 27) | (byte3 << 19) | (byte4 << 11) | (byte5 << 3) | (byte6 >>> 5);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 31) << 46) | (byte7 << 38) | (byte8 << 30) | (byte9 << 22) | (byte10 << 14) | (byte11 << 6) | (byte12 >>> 2);
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 3) << 49) | (byte13 << 41) | (byte14 << 33) | (byte15 << 25) | (byte16 << 17) | (byte17 << 9) | (byte18 << 1) | (byte19 >>> 7);
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 127) << 44) | (byte20 << 36) | (byte21 << 28) | (byte22 << 20) | (byte23 << 12) | (byte24 << 4) | (byte25 >>> 4);
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte25 & 15) << 47) | (byte26 << 39) | (byte27 << 31) | (byte28 << 23) | (byte29 << 15) | (byte30 << 7) | (byte31 >>> 1);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 1) << 50) | (byte32 << 42) | (byte33 << 34) | (byte34 << 26) | (byte35 << 18) | (byte36 << 10) | (byte37 << 2) | (byte38 >>> 6);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 63) << 45) | (byte39 << 37) | (byte40 << 29) | (byte41 << 21) | (byte42 << 13) | (byte43 << 5) | (byte44 >>> 3);
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte44 & 7) << 48) | (byte45 << 40) | (byte46 << 32) | (byte47 << 24) | (byte48 << 16) | (byte49 << 8) | byte50;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte51 << 43) | (byte52 << 35) | (byte53 << 27) | (byte54 << 19) | (byte55 << 11) | (byte56 << 3) | (byte57 >>> 5);
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte57 & 31) << 46) | (byte58 << 38) | (byte59 << 30) | (byte60 << 22) | (byte61 << 14) | (byte62 << 6) | (byte63 >>> 2);
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte63 & 3) << 49) | (byte64 << 41) | (byte65 << 33) | (byte66 << 25) | (byte67 << 17) | (byte68 << 9) | (byte69 << 1) | (byte70 >>> 7);
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte70 & 127) << 44) | (byte71 << 36) | (byte72 << 28) | (byte73 << 20) | (byte74 << 12) | (byte75 << 4) | (byte76 >>> 4);
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 15) << 47) | (byte77 << 39) | (byte78 << 31) | (byte79 << 23) | (byte80 << 15) | (byte81 << 7) | (byte82 >>> 1);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 1) << 50) | (byte83 << 42) | (byte84 << 34) | (byte85 << 26) | (byte86 << 18) | (byte87 << 10) | (byte88 << 2) | (byte89 >>> 6);
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte89 & 63) << 45) | (byte90 << 37) | (byte91 << 29) | (byte92 << 21) | (byte93 << 13) | (byte94 << 5) | (byte95 >>> 3);
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte95 & 7) << 48) | (byte96 << 40) | (byte97 << 32) | (byte98 << 24) | (byte99 << 16) | (byte100 << 8) | byte101;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte102 << 43) | (byte103 << 35) | (byte104 << 27) | (byte105 << 19) | (byte106 << 11) | (byte107 << 3) | (byte108 >>> 5);
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 31) << 46) | (byte109 << 38) | (byte110 << 30) | (byte111 << 22) | (byte112 << 14) | (byte113 << 6) | (byte114 >>> 2);
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte114 & 3) << 49) | (byte115 << 41) | (byte116 << 33) | (byte117 << 25) | (byte118 << 17) | (byte119 << 9) | (byte120 << 1) | (byte121 >>> 7);
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 127) << 44) | (byte122 << 36) | (byte123 << 28) | (byte124 << 20) | (byte125 << 12) | (byte126 << 4) | (byte127 >>> 4);
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte127 & 15) << 47) | (byte128 << 39) | (byte129 << 31) | (byte130 << 23) | (byte131 << 15) | (byte132 << 7) | (byte133 >>> 1);
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte133 & 1) << 50) | (byte134 << 42) | (byte135 << 34) | (byte136 << 26) | (byte137 << 18) | (byte138 << 10) | (byte139 << 2) | (byte140 >>> 6);
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 63) << 45) | (byte141 << 37) | (byte142 << 29) | (byte143 << 21) | (byte144 << 13) | (byte145 << 5) | (byte146 >>> 3);
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte146 & 7) << 48) | (byte147 << 40) | (byte148 << 32) | (byte149 << 24) | (byte150 << 16) | (byte151 << 8) | byte152;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte153 << 43) | (byte154 << 35) | (byte155 << 27) | (byte156 << 19) | (byte157 << 11) | (byte158 << 3) | (byte159 >>> 5);
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 31) << 46) | (byte160 << 38) | (byte161 << 30) | (byte162 << 22) | (byte163 << 14) | (byte164 << 6) | (byte165 >>> 2);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 3) << 49) | (byte166 << 41) | (byte167 << 33) | (byte168 << 25) | (byte169 << 17) | (byte170 << 9) | (byte171 << 1) | (byte172 >>> 7);
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte172 & 127) << 44) | (byte173 << 36) | (byte174 << 28) | (byte175 << 20) | (byte176 << 12) | (byte177 << 4) | (byte178 >>> 4);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 15) << 47) | (byte179 << 39) | (byte180 << 31) | (byte181 << 23) | (byte182 << 15) | (byte183 << 7) | (byte184 >>> 1);
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 1) << 50) | (byte185 << 42) | (byte186 << 34) | (byte187 << 26) | (byte188 << 18) | (byte189 << 10) | (byte190 << 2) | (byte191 >>> 6);
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte191 & 63) << 45) | (byte192 << 37) | (byte193 << 29) | (byte194 << 21) | (byte195 << 13) | (byte196 << 5) | (byte197 >>> 3);
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte197 & 7) << 48) | (byte198 << 40) | (byte199 << 32) | (byte200 << 24) | (byte201 << 16) | (byte202 << 8) | byte203;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte204 << 43) | (byte205 << 35) | (byte206 << 27) | (byte207 << 19) | (byte208 << 11) | (byte209 << 3) | (byte210 >>> 5);
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte210 & 31) << 46) | (byte211 << 38) | (byte212 << 30) | (byte213 << 22) | (byte214 << 14) | (byte215 << 6) | (byte216 >>> 2);
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte216 & 3) << 49) | (byte217 << 41) | (byte218 << 33) | (byte219 << 25) | (byte220 << 17) | (byte221 << 9) | (byte222 << 1) | (byte223 >>> 7);
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte223 & 127) << 44) | (byte224 << 36) | (byte225 << 28) | (byte226 << 20) | (byte227 << 12) | (byte228 << 4) | (byte229 >>> 4);
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte229 & 15) << 47) | (byte230 << 39) | (byte231 << 31) | (byte232 << 23) | (byte233 << 15) | (byte234 << 7) | (byte235 >>> 1);
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte235 & 1) << 50) | (byte236 << 42) | (byte237 << 34) | (byte238 << 26) | (byte239 << 18) | (byte240 << 10) | (byte241 << 2) | (byte242 >>> 6);
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte242 & 63) << 45) | (byte243 << 37) | (byte244 << 29) | (byte245 << 21) | (byte246 << 13) | (byte247 << 5) | (byte248 >>> 3);
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte248 & 7) << 48) | (byte249 << 40) | (byte250 << 32) | (byte251 << 24) | (byte252 << 16) | (byte253 << 8) | byte254;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte255 << 43) | (byte256 << 35) | (byte257 << 27) | (byte258 << 19) | (byte259 << 11) | (byte260 << 3) | (byte261 >>> 5);
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte261 & 31) << 46) | (byte262 << 38) | (byte263 << 30) | (byte264 << 22) | (byte265 << 14) | (byte266 << 6) | (byte267 >>> 2);
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte267 & 3) << 49) | (byte268 << 41) | (byte269 << 33) | (byte270 << 25) | (byte271 << 17) | (byte272 << 9) | (byte273 << 1) | (byte274 >>> 7);
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte274 & 127) << 44) | (byte275 << 36) | (byte276 << 28) | (byte277 << 20) | (byte278 << 12) | (byte279 << 4) | (byte280 >>> 4);
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte280 & 15) << 47) | (byte281 << 39) | (byte282 << 31) | (byte283 << 23) | (byte284 << 15) | (byte285 << 7) | (byte286 >>> 1);
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte286 & 1) << 50) | (byte287 << 42) | (byte288 << 34) | (byte289 << 26) | (byte290 << 18) | (byte291 << 10) | (byte292 << 2) | (byte293 >>> 6);
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte293 & 63) << 45) | (byte294 << 37) | (byte295 << 29) | (byte296 << 21) | (byte297 << 13) | (byte298 << 5) | (byte299 >>> 3);
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte299 & 7) << 48) | (byte300 << 40) | (byte301 << 32) | (byte302 << 24) | (byte303 << 16) | (byte304 << 8) | byte305;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte306 << 43) | (byte307 << 35) | (byte308 << 27) | (byte309 << 19) | (byte310 << 11) | (byte311 << 3) | (byte312 >>> 5);
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte312 & 31) << 46) | (byte313 << 38) | (byte314 << 30) | (byte315 << 22) | (byte316 << 14) | (byte317 << 6) | (byte318 >>> 2);
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte318 & 3) << 49) | (byte319 << 41) | (byte320 << 33) | (byte321 << 25) | (byte322 << 17) | (byte323 << 9) | (byte324 << 1) | (byte325 >>> 7);
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte325 & 127) << 44) | (byte326 << 36) | (byte327 << 28) | (byte328 << 20) | (byte329 << 12) | (byte330 << 4) | (byte331 >>> 4);
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte331 & 15) << 47) | (byte332 << 39) | (byte333 << 31) | (byte334 << 23) | (byte335 << 15) | (byte336 << 7) | (byte337 >>> 1);
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte337 & 1) << 50) | (byte338 << 42) | (byte339 << 34) | (byte340 << 26) | (byte341 << 18) | (byte342 << 10) | (byte343 << 2) | (byte344 >>> 6);
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte344 & 63) << 45) | (byte345 << 37) | (byte346 << 29) | (byte347 << 21) | (byte348 << 13) | (byte349 << 5) | (byte350 >>> 3);
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte350 & 7) << 48) | (byte351 << 40) | (byte352 << 32) | (byte353 << 24) | (byte354 << 16) | (byte355 << 8) | byte356;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte357 << 43) | (byte358 << 35) | (byte359 << 27) | (byte360 << 19) | (byte361 << 11) | (byte362 << 3) | (byte363 >>> 5);
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte363 & 31) << 46) | (byte364 << 38) | (byte365 << 30) | (byte366 << 22) | (byte367 << 14) | (byte368 << 6) | (byte369 >>> 2);
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte369 & 3) << 49) | (byte370 << 41) | (byte371 << 33) | (byte372 << 25) | (byte373 << 17) | (byte374 << 9) | (byte375 << 1) | (byte376 >>> 7);
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte376 & 127) << 44) | (byte377 << 36) | (byte378 << 28) | (byte379 << 20) | (byte380 << 12) | (byte381 << 4) | (byte382 >>> 4);
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte382 & 15) << 47) | (byte383 << 39) | (byte384 << 31) | (byte385 << 23) | (byte386 << 15) | (byte387 << 7) | (byte388 >>> 1);
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte388 & 1) << 50) | (byte389 << 42) | (byte390 << 34) | (byte391 << 26) | (byte392 << 18) | (byte393 << 10) | (byte394 << 2) | (byte395 >>> 6);
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte395 & 63) << 45) | (byte396 << 37) | (byte397 << 29) | (byte398 << 21) | (byte399 << 13) | (byte400 << 5) | (byte401 >>> 3);
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte401 & 7) << 48) | (byte402 << 40) | (byte403 << 32) | (byte404 << 24) | (byte405 << 16) | (byte406 << 8) | byte407;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked15.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked15.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked15.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked15 extends BulkOperation {
- @Override
- public int blockCount() {
- return 15;
- }
+final class BulkOperationPacked15 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked15() {
+ super(15);
+ assert blockCount() == 15;
+ assert valueCount() == 64;
}
@Override
@@ -591,50 +588,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 15) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 15) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked43.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked43.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked43.java (copie de travail)
@@ -1,679 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked43 extends BulkOperation {
- @Override
- public int blockCount() {
- return 43;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 21;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 2097151L) << 22) | (block1 >>> 42);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 4398046511103L) << 1) | (block2 >>> 63);
- values[valuesOffset++] = (block2 >>> 20) & 8796093022207L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 1048575L) << 23) | (block3 >>> 41);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 2199023255551L) << 2) | (block4 >>> 62);
- values[valuesOffset++] = (block4 >>> 19) & 8796093022207L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 524287L) << 24) | (block5 >>> 40);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 1099511627775L) << 3) | (block6 >>> 61);
- values[valuesOffset++] = (block6 >>> 18) & 8796093022207L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 262143L) << 25) | (block7 >>> 39);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 549755813887L) << 4) | (block8 >>> 60);
- values[valuesOffset++] = (block8 >>> 17) & 8796093022207L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 131071L) << 26) | (block9 >>> 38);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 274877906943L) << 5) | (block10 >>> 59);
- values[valuesOffset++] = (block10 >>> 16) & 8796093022207L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 65535L) << 27) | (block11 >>> 37);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 137438953471L) << 6) | (block12 >>> 58);
- values[valuesOffset++] = (block12 >>> 15) & 8796093022207L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 32767L) << 28) | (block13 >>> 36);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 68719476735L) << 7) | (block14 >>> 57);
- values[valuesOffset++] = (block14 >>> 14) & 8796093022207L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 16383L) << 29) | (block15 >>> 35);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 34359738367L) << 8) | (block16 >>> 56);
- values[valuesOffset++] = (block16 >>> 13) & 8796093022207L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 8191L) << 30) | (block17 >>> 34);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 17179869183L) << 9) | (block18 >>> 55);
- values[valuesOffset++] = (block18 >>> 12) & 8796093022207L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 4095L) << 31) | (block19 >>> 33);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 8589934591L) << 10) | (block20 >>> 54);
- values[valuesOffset++] = (block20 >>> 11) & 8796093022207L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 2047L) << 32) | (block21 >>> 32);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 4294967295L) << 11) | (block22 >>> 53);
- values[valuesOffset++] = (block22 >>> 10) & 8796093022207L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 1023L) << 33) | (block23 >>> 31);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 2147483647L) << 12) | (block24 >>> 52);
- values[valuesOffset++] = (block24 >>> 9) & 8796093022207L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 511L) << 34) | (block25 >>> 30);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 1073741823L) << 13) | (block26 >>> 51);
- values[valuesOffset++] = (block26 >>> 8) & 8796093022207L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 255L) << 35) | (block27 >>> 29);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 536870911L) << 14) | (block28 >>> 50);
- values[valuesOffset++] = (block28 >>> 7) & 8796093022207L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 127L) << 36) | (block29 >>> 28);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 268435455L) << 15) | (block30 >>> 49);
- values[valuesOffset++] = (block30 >>> 6) & 8796093022207L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 63L) << 37) | (block31 >>> 27);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 134217727L) << 16) | (block32 >>> 48);
- values[valuesOffset++] = (block32 >>> 5) & 8796093022207L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 31L) << 38) | (block33 >>> 26);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 67108863L) << 17) | (block34 >>> 47);
- values[valuesOffset++] = (block34 >>> 4) & 8796093022207L;
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 15L) << 39) | (block35 >>> 25);
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 33554431L) << 18) | (block36 >>> 46);
- values[valuesOffset++] = (block36 >>> 3) & 8796093022207L;
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 7L) << 40) | (block37 >>> 24);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 16777215L) << 19) | (block38 >>> 45);
- values[valuesOffset++] = (block38 >>> 2) & 8796093022207L;
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 3L) << 41) | (block39 >>> 23);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 8388607L) << 20) | (block40 >>> 44);
- values[valuesOffset++] = (block40 >>> 1) & 8796093022207L;
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 1L) << 42) | (block41 >>> 22);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 4194303L) << 21) | (block42 >>> 43);
- values[valuesOffset++] = block42 & 8796093022207L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 35) | (byte1 << 27) | (byte2 << 19) | (byte3 << 11) | (byte4 << 3) | (byte5 >>> 5);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 31) << 38) | (byte6 << 30) | (byte7 << 22) | (byte8 << 14) | (byte9 << 6) | (byte10 >>> 2);
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 3) << 41) | (byte11 << 33) | (byte12 << 25) | (byte13 << 17) | (byte14 << 9) | (byte15 << 1) | (byte16 >>> 7);
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 127) << 36) | (byte17 << 28) | (byte18 << 20) | (byte19 << 12) | (byte20 << 4) | (byte21 >>> 4);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 15) << 39) | (byte22 << 31) | (byte23 << 23) | (byte24 << 15) | (byte25 << 7) | (byte26 >>> 1);
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte26 & 1) << 42) | (byte27 << 34) | (byte28 << 26) | (byte29 << 18) | (byte30 << 10) | (byte31 << 2) | (byte32 >>> 6);
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 63) << 37) | (byte33 << 29) | (byte34 << 21) | (byte35 << 13) | (byte36 << 5) | (byte37 >>> 3);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 7) << 40) | (byte38 << 32) | (byte39 << 24) | (byte40 << 16) | (byte41 << 8) | byte42;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte43 << 35) | (byte44 << 27) | (byte45 << 19) | (byte46 << 11) | (byte47 << 3) | (byte48 >>> 5);
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 31) << 38) | (byte49 << 30) | (byte50 << 22) | (byte51 << 14) | (byte52 << 6) | (byte53 >>> 2);
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte53 & 3) << 41) | (byte54 << 33) | (byte55 << 25) | (byte56 << 17) | (byte57 << 9) | (byte58 << 1) | (byte59 >>> 7);
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte59 & 127) << 36) | (byte60 << 28) | (byte61 << 20) | (byte62 << 12) | (byte63 << 4) | (byte64 >>> 4);
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte64 & 15) << 39) | (byte65 << 31) | (byte66 << 23) | (byte67 << 15) | (byte68 << 7) | (byte69 >>> 1);
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte69 & 1) << 42) | (byte70 << 34) | (byte71 << 26) | (byte72 << 18) | (byte73 << 10) | (byte74 << 2) | (byte75 >>> 6);
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte75 & 63) << 37) | (byte76 << 29) | (byte77 << 21) | (byte78 << 13) | (byte79 << 5) | (byte80 >>> 3);
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte80 & 7) << 40) | (byte81 << 32) | (byte82 << 24) | (byte83 << 16) | (byte84 << 8) | byte85;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte86 << 35) | (byte87 << 27) | (byte88 << 19) | (byte89 << 11) | (byte90 << 3) | (byte91 >>> 5);
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte91 & 31) << 38) | (byte92 << 30) | (byte93 << 22) | (byte94 << 14) | (byte95 << 6) | (byte96 >>> 2);
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 3) << 41) | (byte97 << 33) | (byte98 << 25) | (byte99 << 17) | (byte100 << 9) | (byte101 << 1) | (byte102 >>> 7);
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte102 & 127) << 36) | (byte103 << 28) | (byte104 << 20) | (byte105 << 12) | (byte106 << 4) | (byte107 >>> 4);
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte107 & 15) << 39) | (byte108 << 31) | (byte109 << 23) | (byte110 << 15) | (byte111 << 7) | (byte112 >>> 1);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 1) << 42) | (byte113 << 34) | (byte114 << 26) | (byte115 << 18) | (byte116 << 10) | (byte117 << 2) | (byte118 >>> 6);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 63) << 37) | (byte119 << 29) | (byte120 << 21) | (byte121 << 13) | (byte122 << 5) | (byte123 >>> 3);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 7) << 40) | (byte124 << 32) | (byte125 << 24) | (byte126 << 16) | (byte127 << 8) | byte128;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte129 << 35) | (byte130 << 27) | (byte131 << 19) | (byte132 << 11) | (byte133 << 3) | (byte134 >>> 5);
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 31) << 38) | (byte135 << 30) | (byte136 << 22) | (byte137 << 14) | (byte138 << 6) | (byte139 >>> 2);
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte139 & 3) << 41) | (byte140 << 33) | (byte141 << 25) | (byte142 << 17) | (byte143 << 9) | (byte144 << 1) | (byte145 >>> 7);
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte145 & 127) << 36) | (byte146 << 28) | (byte147 << 20) | (byte148 << 12) | (byte149 << 4) | (byte150 >>> 4);
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte150 & 15) << 39) | (byte151 << 31) | (byte152 << 23) | (byte153 << 15) | (byte154 << 7) | (byte155 >>> 1);
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 1) << 42) | (byte156 << 34) | (byte157 << 26) | (byte158 << 18) | (byte159 << 10) | (byte160 << 2) | (byte161 >>> 6);
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte161 & 63) << 37) | (byte162 << 29) | (byte163 << 21) | (byte164 << 13) | (byte165 << 5) | (byte166 >>> 3);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 7) << 40) | (byte167 << 32) | (byte168 << 24) | (byte169 << 16) | (byte170 << 8) | byte171;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte172 << 35) | (byte173 << 27) | (byte174 << 19) | (byte175 << 11) | (byte176 << 3) | (byte177 >>> 5);
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte177 & 31) << 38) | (byte178 << 30) | (byte179 << 22) | (byte180 << 14) | (byte181 << 6) | (byte182 >>> 2);
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 3) << 41) | (byte183 << 33) | (byte184 << 25) | (byte185 << 17) | (byte186 << 9) | (byte187 << 1) | (byte188 >>> 7);
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte188 & 127) << 36) | (byte189 << 28) | (byte190 << 20) | (byte191 << 12) | (byte192 << 4) | (byte193 >>> 4);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 15) << 39) | (byte194 << 31) | (byte195 << 23) | (byte196 << 15) | (byte197 << 7) | (byte198 >>> 1);
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte198 & 1) << 42) | (byte199 << 34) | (byte200 << 26) | (byte201 << 18) | (byte202 << 10) | (byte203 << 2) | (byte204 >>> 6);
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte204 & 63) << 37) | (byte205 << 29) | (byte206 << 21) | (byte207 << 13) | (byte208 << 5) | (byte209 >>> 3);
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 7) << 40) | (byte210 << 32) | (byte211 << 24) | (byte212 << 16) | (byte213 << 8) | byte214;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte215 << 35) | (byte216 << 27) | (byte217 << 19) | (byte218 << 11) | (byte219 << 3) | (byte220 >>> 5);
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 31) << 38) | (byte221 << 30) | (byte222 << 22) | (byte223 << 14) | (byte224 << 6) | (byte225 >>> 2);
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte225 & 3) << 41) | (byte226 << 33) | (byte227 << 25) | (byte228 << 17) | (byte229 << 9) | (byte230 << 1) | (byte231 >>> 7);
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte231 & 127) << 36) | (byte232 << 28) | (byte233 << 20) | (byte234 << 12) | (byte235 << 4) | (byte236 >>> 4);
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 15) << 39) | (byte237 << 31) | (byte238 << 23) | (byte239 << 15) | (byte240 << 7) | (byte241 >>> 1);
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte241 & 1) << 42) | (byte242 << 34) | (byte243 << 26) | (byte244 << 18) | (byte245 << 10) | (byte246 << 2) | (byte247 >>> 6);
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte247 & 63) << 37) | (byte248 << 29) | (byte249 << 21) | (byte250 << 13) | (byte251 << 5) | (byte252 >>> 3);
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte252 & 7) << 40) | (byte253 << 32) | (byte254 << 24) | (byte255 << 16) | (byte256 << 8) | byte257;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte258 << 35) | (byte259 << 27) | (byte260 << 19) | (byte261 << 11) | (byte262 << 3) | (byte263 >>> 5);
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte263 & 31) << 38) | (byte264 << 30) | (byte265 << 22) | (byte266 << 14) | (byte267 << 6) | (byte268 >>> 2);
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte268 & 3) << 41) | (byte269 << 33) | (byte270 << 25) | (byte271 << 17) | (byte272 << 9) | (byte273 << 1) | (byte274 >>> 7);
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte274 & 127) << 36) | (byte275 << 28) | (byte276 << 20) | (byte277 << 12) | (byte278 << 4) | (byte279 >>> 4);
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte279 & 15) << 39) | (byte280 << 31) | (byte281 << 23) | (byte282 << 15) | (byte283 << 7) | (byte284 >>> 1);
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte284 & 1) << 42) | (byte285 << 34) | (byte286 << 26) | (byte287 << 18) | (byte288 << 10) | (byte289 << 2) | (byte290 >>> 6);
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte290 & 63) << 37) | (byte291 << 29) | (byte292 << 21) | (byte293 << 13) | (byte294 << 5) | (byte295 >>> 3);
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte295 & 7) << 40) | (byte296 << 32) | (byte297 << 24) | (byte298 << 16) | (byte299 << 8) | byte300;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte301 << 35) | (byte302 << 27) | (byte303 << 19) | (byte304 << 11) | (byte305 << 3) | (byte306 >>> 5);
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte306 & 31) << 38) | (byte307 << 30) | (byte308 << 22) | (byte309 << 14) | (byte310 << 6) | (byte311 >>> 2);
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte311 & 3) << 41) | (byte312 << 33) | (byte313 << 25) | (byte314 << 17) | (byte315 << 9) | (byte316 << 1) | (byte317 >>> 7);
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte317 & 127) << 36) | (byte318 << 28) | (byte319 << 20) | (byte320 << 12) | (byte321 << 4) | (byte322 >>> 4);
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte322 & 15) << 39) | (byte323 << 31) | (byte324 << 23) | (byte325 << 15) | (byte326 << 7) | (byte327 >>> 1);
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte327 & 1) << 42) | (byte328 << 34) | (byte329 << 26) | (byte330 << 18) | (byte331 << 10) | (byte332 << 2) | (byte333 >>> 6);
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte333 & 63) << 37) | (byte334 << 29) | (byte335 << 21) | (byte336 << 13) | (byte337 << 5) | (byte338 >>> 3);
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte338 & 7) << 40) | (byte339 << 32) | (byte340 << 24) | (byte341 << 16) | (byte342 << 8) | byte343;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked35.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked35.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked35.java (copie de travail)
@@ -1,591 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked35 extends BulkOperation {
- @Override
- public int blockCount() {
- return 35;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 29;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 536870911L) << 6) | (block1 >>> 58);
- values[valuesOffset++] = (block1 >>> 23) & 34359738367L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 8388607L) << 12) | (block2 >>> 52);
- values[valuesOffset++] = (block2 >>> 17) & 34359738367L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 131071L) << 18) | (block3 >>> 46);
- values[valuesOffset++] = (block3 >>> 11) & 34359738367L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 2047L) << 24) | (block4 >>> 40);
- values[valuesOffset++] = (block4 >>> 5) & 34359738367L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 31L) << 30) | (block5 >>> 34);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 17179869183L) << 1) | (block6 >>> 63);
- values[valuesOffset++] = (block6 >>> 28) & 34359738367L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 268435455L) << 7) | (block7 >>> 57);
- values[valuesOffset++] = (block7 >>> 22) & 34359738367L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 4194303L) << 13) | (block8 >>> 51);
- values[valuesOffset++] = (block8 >>> 16) & 34359738367L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 65535L) << 19) | (block9 >>> 45);
- values[valuesOffset++] = (block9 >>> 10) & 34359738367L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1023L) << 25) | (block10 >>> 39);
- values[valuesOffset++] = (block10 >>> 4) & 34359738367L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 15L) << 31) | (block11 >>> 33);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 8589934591L) << 2) | (block12 >>> 62);
- values[valuesOffset++] = (block12 >>> 27) & 34359738367L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 134217727L) << 8) | (block13 >>> 56);
- values[valuesOffset++] = (block13 >>> 21) & 34359738367L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 2097151L) << 14) | (block14 >>> 50);
- values[valuesOffset++] = (block14 >>> 15) & 34359738367L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 32767L) << 20) | (block15 >>> 44);
- values[valuesOffset++] = (block15 >>> 9) & 34359738367L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 511L) << 26) | (block16 >>> 38);
- values[valuesOffset++] = (block16 >>> 3) & 34359738367L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 7L) << 32) | (block17 >>> 32);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 4294967295L) << 3) | (block18 >>> 61);
- values[valuesOffset++] = (block18 >>> 26) & 34359738367L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 67108863L) << 9) | (block19 >>> 55);
- values[valuesOffset++] = (block19 >>> 20) & 34359738367L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1048575L) << 15) | (block20 >>> 49);
- values[valuesOffset++] = (block20 >>> 14) & 34359738367L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 16383L) << 21) | (block21 >>> 43);
- values[valuesOffset++] = (block21 >>> 8) & 34359738367L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 255L) << 27) | (block22 >>> 37);
- values[valuesOffset++] = (block22 >>> 2) & 34359738367L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 3L) << 33) | (block23 >>> 31);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 2147483647L) << 4) | (block24 >>> 60);
- values[valuesOffset++] = (block24 >>> 25) & 34359738367L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 33554431L) << 10) | (block25 >>> 54);
- values[valuesOffset++] = (block25 >>> 19) & 34359738367L;
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 524287L) << 16) | (block26 >>> 48);
- values[valuesOffset++] = (block26 >>> 13) & 34359738367L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 8191L) << 22) | (block27 >>> 42);
- values[valuesOffset++] = (block27 >>> 7) & 34359738367L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 127L) << 28) | (block28 >>> 36);
- values[valuesOffset++] = (block28 >>> 1) & 34359738367L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 1L) << 34) | (block29 >>> 30);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 1073741823L) << 5) | (block30 >>> 59);
- values[valuesOffset++] = (block30 >>> 24) & 34359738367L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 16777215L) << 11) | (block31 >>> 53);
- values[valuesOffset++] = (block31 >>> 18) & 34359738367L;
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 262143L) << 17) | (block32 >>> 47);
- values[valuesOffset++] = (block32 >>> 12) & 34359738367L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 4095L) << 23) | (block33 >>> 41);
- values[valuesOffset++] = (block33 >>> 6) & 34359738367L;
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 63L) << 29) | (block34 >>> 35);
- values[valuesOffset++] = block34 & 34359738367L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 27) | (byte1 << 19) | (byte2 << 11) | (byte3 << 3) | (byte4 >>> 5);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 31) << 30) | (byte5 << 22) | (byte6 << 14) | (byte7 << 6) | (byte8 >>> 2);
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte8 & 3) << 33) | (byte9 << 25) | (byte10 << 17) | (byte11 << 9) | (byte12 << 1) | (byte13 >>> 7);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 127) << 28) | (byte14 << 20) | (byte15 << 12) | (byte16 << 4) | (byte17 >>> 4);
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte17 & 15) << 31) | (byte18 << 23) | (byte19 << 15) | (byte20 << 7) | (byte21 >>> 1);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 1) << 34) | (byte22 << 26) | (byte23 << 18) | (byte24 << 10) | (byte25 << 2) | (byte26 >>> 6);
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte26 & 63) << 29) | (byte27 << 21) | (byte28 << 13) | (byte29 << 5) | (byte30 >>> 3);
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte30 & 7) << 32) | (byte31 << 24) | (byte32 << 16) | (byte33 << 8) | byte34;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte35 << 27) | (byte36 << 19) | (byte37 << 11) | (byte38 << 3) | (byte39 >>> 5);
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte39 & 31) << 30) | (byte40 << 22) | (byte41 << 14) | (byte42 << 6) | (byte43 >>> 2);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 3) << 33) | (byte44 << 25) | (byte45 << 17) | (byte46 << 9) | (byte47 << 1) | (byte48 >>> 7);
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 127) << 28) | (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 31) | (byte53 << 23) | (byte54 << 15) | (byte55 << 7) | (byte56 >>> 1);
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 1) << 34) | (byte57 << 26) | (byte58 << 18) | (byte59 << 10) | (byte60 << 2) | (byte61 >>> 6);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 63) << 29) | (byte62 << 21) | (byte63 << 13) | (byte64 << 5) | (byte65 >>> 3);
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 7) << 32) | (byte66 << 24) | (byte67 << 16) | (byte68 << 8) | byte69;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte70 << 27) | (byte71 << 19) | (byte72 << 11) | (byte73 << 3) | (byte74 >>> 5);
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 31) << 30) | (byte75 << 22) | (byte76 << 14) | (byte77 << 6) | (byte78 >>> 2);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 3) << 33) | (byte79 << 25) | (byte80 << 17) | (byte81 << 9) | (byte82 << 1) | (byte83 >>> 7);
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte83 & 127) << 28) | (byte84 << 20) | (byte85 << 12) | (byte86 << 4) | (byte87 >>> 4);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 15) << 31) | (byte88 << 23) | (byte89 << 15) | (byte90 << 7) | (byte91 >>> 1);
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte91 & 1) << 34) | (byte92 << 26) | (byte93 << 18) | (byte94 << 10) | (byte95 << 2) | (byte96 >>> 6);
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 63) << 29) | (byte97 << 21) | (byte98 << 13) | (byte99 << 5) | (byte100 >>> 3);
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte100 & 7) << 32) | (byte101 << 24) | (byte102 << 16) | (byte103 << 8) | byte104;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte105 << 27) | (byte106 << 19) | (byte107 << 11) | (byte108 << 3) | (byte109 >>> 5);
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte109 & 31) << 30) | (byte110 << 22) | (byte111 << 14) | (byte112 << 6) | (byte113 >>> 2);
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte113 & 3) << 33) | (byte114 << 25) | (byte115 << 17) | (byte116 << 9) | (byte117 << 1) | (byte118 >>> 7);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 127) << 28) | (byte119 << 20) | (byte120 << 12) | (byte121 << 4) | (byte122 >>> 4);
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte122 & 15) << 31) | (byte123 << 23) | (byte124 << 15) | (byte125 << 7) | (byte126 >>> 1);
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte126 & 1) << 34) | (byte127 << 26) | (byte128 << 18) | (byte129 << 10) | (byte130 << 2) | (byte131 >>> 6);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 63) << 29) | (byte132 << 21) | (byte133 << 13) | (byte134 << 5) | (byte135 >>> 3);
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte135 & 7) << 32) | (byte136 << 24) | (byte137 << 16) | (byte138 << 8) | byte139;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte140 << 27) | (byte141 << 19) | (byte142 << 11) | (byte143 << 3) | (byte144 >>> 5);
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte144 & 31) << 30) | (byte145 << 22) | (byte146 << 14) | (byte147 << 6) | (byte148 >>> 2);
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 3) << 33) | (byte149 << 25) | (byte150 << 17) | (byte151 << 9) | (byte152 << 1) | (byte153 >>> 7);
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte153 & 127) << 28) | (byte154 << 20) | (byte155 << 12) | (byte156 << 4) | (byte157 >>> 4);
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte157 & 15) << 31) | (byte158 << 23) | (byte159 << 15) | (byte160 << 7) | (byte161 >>> 1);
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte161 & 1) << 34) | (byte162 << 26) | (byte163 << 18) | (byte164 << 10) | (byte165 << 2) | (byte166 >>> 6);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 63) << 29) | (byte167 << 21) | (byte168 << 13) | (byte169 << 5) | (byte170 >>> 3);
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 7) << 32) | (byte171 << 24) | (byte172 << 16) | (byte173 << 8) | byte174;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte175 << 27) | (byte176 << 19) | (byte177 << 11) | (byte178 << 3) | (byte179 >>> 5);
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte179 & 31) << 30) | (byte180 << 22) | (byte181 << 14) | (byte182 << 6) | (byte183 >>> 2);
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte183 & 3) << 33) | (byte184 << 25) | (byte185 << 17) | (byte186 << 9) | (byte187 << 1) | (byte188 >>> 7);
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte188 & 127) << 28) | (byte189 << 20) | (byte190 << 12) | (byte191 << 4) | (byte192 >>> 4);
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 15) << 31) | (byte193 << 23) | (byte194 << 15) | (byte195 << 7) | (byte196 >>> 1);
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte196 & 1) << 34) | (byte197 << 26) | (byte198 << 18) | (byte199 << 10) | (byte200 << 2) | (byte201 >>> 6);
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte201 & 63) << 29) | (byte202 << 21) | (byte203 << 13) | (byte204 << 5) | (byte205 >>> 3);
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 7) << 32) | (byte206 << 24) | (byte207 << 16) | (byte208 << 8) | byte209;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte210 << 27) | (byte211 << 19) | (byte212 << 11) | (byte213 << 3) | (byte214 >>> 5);
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte214 & 31) << 30) | (byte215 << 22) | (byte216 << 14) | (byte217 << 6) | (byte218 >>> 2);
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte218 & 3) << 33) | (byte219 << 25) | (byte220 << 17) | (byte221 << 9) | (byte222 << 1) | (byte223 >>> 7);
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte223 & 127) << 28) | (byte224 << 20) | (byte225 << 12) | (byte226 << 4) | (byte227 >>> 4);
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte227 & 15) << 31) | (byte228 << 23) | (byte229 << 15) | (byte230 << 7) | (byte231 >>> 1);
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte231 & 1) << 34) | (byte232 << 26) | (byte233 << 18) | (byte234 << 10) | (byte235 << 2) | (byte236 >>> 6);
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 63) << 29) | (byte237 << 21) | (byte238 << 13) | (byte239 << 5) | (byte240 >>> 3);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 7) << 32) | (byte241 << 24) | (byte242 << 16) | (byte243 << 8) | byte244;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte245 << 27) | (byte246 << 19) | (byte247 << 11) | (byte248 << 3) | (byte249 >>> 5);
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte249 & 31) << 30) | (byte250 << 22) | (byte251 << 14) | (byte252 << 6) | (byte253 >>> 2);
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte253 & 3) << 33) | (byte254 << 25) | (byte255 << 17) | (byte256 << 9) | (byte257 << 1) | (byte258 >>> 7);
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte258 & 127) << 28) | (byte259 << 20) | (byte260 << 12) | (byte261 << 4) | (byte262 >>> 4);
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte262 & 15) << 31) | (byte263 << 23) | (byte264 << 15) | (byte265 << 7) | (byte266 >>> 1);
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte266 & 1) << 34) | (byte267 << 26) | (byte268 << 18) | (byte269 << 10) | (byte270 << 2) | (byte271 >>> 6);
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte271 & 63) << 29) | (byte272 << 21) | (byte273 << 13) | (byte274 << 5) | (byte275 >>> 3);
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte275 & 7) << 32) | (byte276 << 24) | (byte277 << 16) | (byte278 << 8) | byte279;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked63.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked63.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked63.java (copie de travail)
@@ -1,899 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked63 extends BulkOperation {
- @Override
- public int blockCount() {
- return 63;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 1;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 1L) << 62) | (block1 >>> 2);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 3L) << 61) | (block2 >>> 3);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 7L) << 60) | (block3 >>> 4);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 15L) << 59) | (block4 >>> 5);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 31L) << 58) | (block5 >>> 6);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 63L) << 57) | (block6 >>> 7);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 127L) << 56) | (block7 >>> 8);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 255L) << 55) | (block8 >>> 9);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 511L) << 54) | (block9 >>> 10);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1023L) << 53) | (block10 >>> 11);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 2047L) << 52) | (block11 >>> 12);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 4095L) << 51) | (block12 >>> 13);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 8191L) << 50) | (block13 >>> 14);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 16383L) << 49) | (block14 >>> 15);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 32767L) << 48) | (block15 >>> 16);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 65535L) << 47) | (block16 >>> 17);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 131071L) << 46) | (block17 >>> 18);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 262143L) << 45) | (block18 >>> 19);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 524287L) << 44) | (block19 >>> 20);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1048575L) << 43) | (block20 >>> 21);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 2097151L) << 42) | (block21 >>> 22);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 4194303L) << 41) | (block22 >>> 23);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 8388607L) << 40) | (block23 >>> 24);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 16777215L) << 39) | (block24 >>> 25);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 33554431L) << 38) | (block25 >>> 26);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 67108863L) << 37) | (block26 >>> 27);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 134217727L) << 36) | (block27 >>> 28);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 268435455L) << 35) | (block28 >>> 29);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 536870911L) << 34) | (block29 >>> 30);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 1073741823L) << 33) | (block30 >>> 31);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 2147483647L) << 32) | (block31 >>> 32);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 4294967295L) << 31) | (block32 >>> 33);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 8589934591L) << 30) | (block33 >>> 34);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 17179869183L) << 29) | (block34 >>> 35);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 34359738367L) << 28) | (block35 >>> 36);
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 68719476735L) << 27) | (block36 >>> 37);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 137438953471L) << 26) | (block37 >>> 38);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 274877906943L) << 25) | (block38 >>> 39);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 549755813887L) << 24) | (block39 >>> 40);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 1099511627775L) << 23) | (block40 >>> 41);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 2199023255551L) << 22) | (block41 >>> 42);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 4398046511103L) << 21) | (block42 >>> 43);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 8796093022207L) << 20) | (block43 >>> 44);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 17592186044415L) << 19) | (block44 >>> 45);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 35184372088831L) << 18) | (block45 >>> 46);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 70368744177663L) << 17) | (block46 >>> 47);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 140737488355327L) << 16) | (block47 >>> 48);
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 281474976710655L) << 15) | (block48 >>> 49);
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 562949953421311L) << 14) | (block49 >>> 50);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 1125899906842623L) << 13) | (block50 >>> 51);
- final long block51 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block50 & 2251799813685247L) << 12) | (block51 >>> 52);
- final long block52 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block51 & 4503599627370495L) << 11) | (block52 >>> 53);
- final long block53 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block52 & 9007199254740991L) << 10) | (block53 >>> 54);
- final long block54 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block53 & 18014398509481983L) << 9) | (block54 >>> 55);
- final long block55 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block54 & 36028797018963967L) << 8) | (block55 >>> 56);
- final long block56 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block55 & 72057594037927935L) << 7) | (block56 >>> 57);
- final long block57 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block56 & 144115188075855871L) << 6) | (block57 >>> 58);
- final long block58 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block57 & 288230376151711743L) << 5) | (block58 >>> 59);
- final long block59 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block58 & 576460752303423487L) << 4) | (block59 >>> 60);
- final long block60 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block59 & 1152921504606846975L) << 3) | (block60 >>> 61);
- final long block61 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block60 & 2305843009213693951L) << 2) | (block61 >>> 62);
- final long block62 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block61 & 4611686018427387903L) << 1) | (block62 >>> 63);
- values[valuesOffset++] = block62 & 9223372036854775807L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 55) | (byte1 << 47) | (byte2 << 39) | (byte3 << 31) | (byte4 << 23) | (byte5 << 15) | (byte6 << 7) | (byte7 >>> 1);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 1) << 62) | (byte8 << 54) | (byte9 << 46) | (byte10 << 38) | (byte11 << 30) | (byte12 << 22) | (byte13 << 14) | (byte14 << 6) | (byte15 >>> 2);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 3) << 61) | (byte16 << 53) | (byte17 << 45) | (byte18 << 37) | (byte19 << 29) | (byte20 << 21) | (byte21 << 13) | (byte22 << 5) | (byte23 >>> 3);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 7) << 60) | (byte24 << 52) | (byte25 << 44) | (byte26 << 36) | (byte27 << 28) | (byte28 << 20) | (byte29 << 12) | (byte30 << 4) | (byte31 >>> 4);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 15) << 59) | (byte32 << 51) | (byte33 << 43) | (byte34 << 35) | (byte35 << 27) | (byte36 << 19) | (byte37 << 11) | (byte38 << 3) | (byte39 >>> 5);
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte39 & 31) << 58) | (byte40 << 50) | (byte41 << 42) | (byte42 << 34) | (byte43 << 26) | (byte44 << 18) | (byte45 << 10) | (byte46 << 2) | (byte47 >>> 6);
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 63) << 57) | (byte48 << 49) | (byte49 << 41) | (byte50 << 33) | (byte51 << 25) | (byte52 << 17) | (byte53 << 9) | (byte54 << 1) | (byte55 >>> 7);
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte55 & 127) << 56) | (byte56 << 48) | (byte57 << 40) | (byte58 << 32) | (byte59 << 24) | (byte60 << 16) | (byte61 << 8) | byte62;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte63 << 55) | (byte64 << 47) | (byte65 << 39) | (byte66 << 31) | (byte67 << 23) | (byte68 << 15) | (byte69 << 7) | (byte70 >>> 1);
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte70 & 1) << 62) | (byte71 << 54) | (byte72 << 46) | (byte73 << 38) | (byte74 << 30) | (byte75 << 22) | (byte76 << 14) | (byte77 << 6) | (byte78 >>> 2);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 3) << 61) | (byte79 << 53) | (byte80 << 45) | (byte81 << 37) | (byte82 << 29) | (byte83 << 21) | (byte84 << 13) | (byte85 << 5) | (byte86 >>> 3);
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte86 & 7) << 60) | (byte87 << 52) | (byte88 << 44) | (byte89 << 36) | (byte90 << 28) | (byte91 << 20) | (byte92 << 12) | (byte93 << 4) | (byte94 >>> 4);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 15) << 59) | (byte95 << 51) | (byte96 << 43) | (byte97 << 35) | (byte98 << 27) | (byte99 << 19) | (byte100 << 11) | (byte101 << 3) | (byte102 >>> 5);
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte102 & 31) << 58) | (byte103 << 50) | (byte104 << 42) | (byte105 << 34) | (byte106 << 26) | (byte107 << 18) | (byte108 << 10) | (byte109 << 2) | (byte110 >>> 6);
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte110 & 63) << 57) | (byte111 << 49) | (byte112 << 41) | (byte113 << 33) | (byte114 << 25) | (byte115 << 17) | (byte116 << 9) | (byte117 << 1) | (byte118 >>> 7);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 127) << 56) | (byte119 << 48) | (byte120 << 40) | (byte121 << 32) | (byte122 << 24) | (byte123 << 16) | (byte124 << 8) | byte125;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte126 << 55) | (byte127 << 47) | (byte128 << 39) | (byte129 << 31) | (byte130 << 23) | (byte131 << 15) | (byte132 << 7) | (byte133 >>> 1);
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte133 & 1) << 62) | (byte134 << 54) | (byte135 << 46) | (byte136 << 38) | (byte137 << 30) | (byte138 << 22) | (byte139 << 14) | (byte140 << 6) | (byte141 >>> 2);
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 3) << 61) | (byte142 << 53) | (byte143 << 45) | (byte144 << 37) | (byte145 << 29) | (byte146 << 21) | (byte147 << 13) | (byte148 << 5) | (byte149 >>> 3);
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte149 & 7) << 60) | (byte150 << 52) | (byte151 << 44) | (byte152 << 36) | (byte153 << 28) | (byte154 << 20) | (byte155 << 12) | (byte156 << 4) | (byte157 >>> 4);
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte157 & 15) << 59) | (byte158 << 51) | (byte159 << 43) | (byte160 << 35) | (byte161 << 27) | (byte162 << 19) | (byte163 << 11) | (byte164 << 3) | (byte165 >>> 5);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 31) << 58) | (byte166 << 50) | (byte167 << 42) | (byte168 << 34) | (byte169 << 26) | (byte170 << 18) | (byte171 << 10) | (byte172 << 2) | (byte173 >>> 6);
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte173 & 63) << 57) | (byte174 << 49) | (byte175 << 41) | (byte176 << 33) | (byte177 << 25) | (byte178 << 17) | (byte179 << 9) | (byte180 << 1) | (byte181 >>> 7);
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 127) << 56) | (byte182 << 48) | (byte183 << 40) | (byte184 << 32) | (byte185 << 24) | (byte186 << 16) | (byte187 << 8) | byte188;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte189 << 55) | (byte190 << 47) | (byte191 << 39) | (byte192 << 31) | (byte193 << 23) | (byte194 << 15) | (byte195 << 7) | (byte196 >>> 1);
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte196 & 1) << 62) | (byte197 << 54) | (byte198 << 46) | (byte199 << 38) | (byte200 << 30) | (byte201 << 22) | (byte202 << 14) | (byte203 << 6) | (byte204 >>> 2);
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte204 & 3) << 61) | (byte205 << 53) | (byte206 << 45) | (byte207 << 37) | (byte208 << 29) | (byte209 << 21) | (byte210 << 13) | (byte211 << 5) | (byte212 >>> 3);
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte212 & 7) << 60) | (byte213 << 52) | (byte214 << 44) | (byte215 << 36) | (byte216 << 28) | (byte217 << 20) | (byte218 << 12) | (byte219 << 4) | (byte220 >>> 4);
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 15) << 59) | (byte221 << 51) | (byte222 << 43) | (byte223 << 35) | (byte224 << 27) | (byte225 << 19) | (byte226 << 11) | (byte227 << 3) | (byte228 >>> 5);
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 31) << 58) | (byte229 << 50) | (byte230 << 42) | (byte231 << 34) | (byte232 << 26) | (byte233 << 18) | (byte234 << 10) | (byte235 << 2) | (byte236 >>> 6);
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 63) << 57) | (byte237 << 49) | (byte238 << 41) | (byte239 << 33) | (byte240 << 25) | (byte241 << 17) | (byte242 << 9) | (byte243 << 1) | (byte244 >>> 7);
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte244 & 127) << 56) | (byte245 << 48) | (byte246 << 40) | (byte247 << 32) | (byte248 << 24) | (byte249 << 16) | (byte250 << 8) | byte251;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte252 << 55) | (byte253 << 47) | (byte254 << 39) | (byte255 << 31) | (byte256 << 23) | (byte257 << 15) | (byte258 << 7) | (byte259 >>> 1);
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte259 & 1) << 62) | (byte260 << 54) | (byte261 << 46) | (byte262 << 38) | (byte263 << 30) | (byte264 << 22) | (byte265 << 14) | (byte266 << 6) | (byte267 >>> 2);
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte267 & 3) << 61) | (byte268 << 53) | (byte269 << 45) | (byte270 << 37) | (byte271 << 29) | (byte272 << 21) | (byte273 << 13) | (byte274 << 5) | (byte275 >>> 3);
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte275 & 7) << 60) | (byte276 << 52) | (byte277 << 44) | (byte278 << 36) | (byte279 << 28) | (byte280 << 20) | (byte281 << 12) | (byte282 << 4) | (byte283 >>> 4);
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte283 & 15) << 59) | (byte284 << 51) | (byte285 << 43) | (byte286 << 35) | (byte287 << 27) | (byte288 << 19) | (byte289 << 11) | (byte290 << 3) | (byte291 >>> 5);
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte291 & 31) << 58) | (byte292 << 50) | (byte293 << 42) | (byte294 << 34) | (byte295 << 26) | (byte296 << 18) | (byte297 << 10) | (byte298 << 2) | (byte299 >>> 6);
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte299 & 63) << 57) | (byte300 << 49) | (byte301 << 41) | (byte302 << 33) | (byte303 << 25) | (byte304 << 17) | (byte305 << 9) | (byte306 << 1) | (byte307 >>> 7);
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte307 & 127) << 56) | (byte308 << 48) | (byte309 << 40) | (byte310 << 32) | (byte311 << 24) | (byte312 << 16) | (byte313 << 8) | byte314;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte315 << 55) | (byte316 << 47) | (byte317 << 39) | (byte318 << 31) | (byte319 << 23) | (byte320 << 15) | (byte321 << 7) | (byte322 >>> 1);
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte322 & 1) << 62) | (byte323 << 54) | (byte324 << 46) | (byte325 << 38) | (byte326 << 30) | (byte327 << 22) | (byte328 << 14) | (byte329 << 6) | (byte330 >>> 2);
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte330 & 3) << 61) | (byte331 << 53) | (byte332 << 45) | (byte333 << 37) | (byte334 << 29) | (byte335 << 21) | (byte336 << 13) | (byte337 << 5) | (byte338 >>> 3);
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte338 & 7) << 60) | (byte339 << 52) | (byte340 << 44) | (byte341 << 36) | (byte342 << 28) | (byte343 << 20) | (byte344 << 12) | (byte345 << 4) | (byte346 >>> 4);
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte346 & 15) << 59) | (byte347 << 51) | (byte348 << 43) | (byte349 << 35) | (byte350 << 27) | (byte351 << 19) | (byte352 << 11) | (byte353 << 3) | (byte354 >>> 5);
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte354 & 31) << 58) | (byte355 << 50) | (byte356 << 42) | (byte357 << 34) | (byte358 << 26) | (byte359 << 18) | (byte360 << 10) | (byte361 << 2) | (byte362 >>> 6);
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte362 & 63) << 57) | (byte363 << 49) | (byte364 << 41) | (byte365 << 33) | (byte366 << 25) | (byte367 << 17) | (byte368 << 9) | (byte369 << 1) | (byte370 >>> 7);
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte370 & 127) << 56) | (byte371 << 48) | (byte372 << 40) | (byte373 << 32) | (byte374 << 24) | (byte375 << 16) | (byte376 << 8) | byte377;
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte378 << 55) | (byte379 << 47) | (byte380 << 39) | (byte381 << 31) | (byte382 << 23) | (byte383 << 15) | (byte384 << 7) | (byte385 >>> 1);
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte385 & 1) << 62) | (byte386 << 54) | (byte387 << 46) | (byte388 << 38) | (byte389 << 30) | (byte390 << 22) | (byte391 << 14) | (byte392 << 6) | (byte393 >>> 2);
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte393 & 3) << 61) | (byte394 << 53) | (byte395 << 45) | (byte396 << 37) | (byte397 << 29) | (byte398 << 21) | (byte399 << 13) | (byte400 << 5) | (byte401 >>> 3);
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- final long byte408 = blocks[blocksOffset++] & 0xFF;
- final long byte409 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte401 & 7) << 60) | (byte402 << 52) | (byte403 << 44) | (byte404 << 36) | (byte405 << 28) | (byte406 << 20) | (byte407 << 12) | (byte408 << 4) | (byte409 >>> 4);
- final long byte410 = blocks[blocksOffset++] & 0xFF;
- final long byte411 = blocks[blocksOffset++] & 0xFF;
- final long byte412 = blocks[blocksOffset++] & 0xFF;
- final long byte413 = blocks[blocksOffset++] & 0xFF;
- final long byte414 = blocks[blocksOffset++] & 0xFF;
- final long byte415 = blocks[blocksOffset++] & 0xFF;
- final long byte416 = blocks[blocksOffset++] & 0xFF;
- final long byte417 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte409 & 15) << 59) | (byte410 << 51) | (byte411 << 43) | (byte412 << 35) | (byte413 << 27) | (byte414 << 19) | (byte415 << 11) | (byte416 << 3) | (byte417 >>> 5);
- final long byte418 = blocks[blocksOffset++] & 0xFF;
- final long byte419 = blocks[blocksOffset++] & 0xFF;
- final long byte420 = blocks[blocksOffset++] & 0xFF;
- final long byte421 = blocks[blocksOffset++] & 0xFF;
- final long byte422 = blocks[blocksOffset++] & 0xFF;
- final long byte423 = blocks[blocksOffset++] & 0xFF;
- final long byte424 = blocks[blocksOffset++] & 0xFF;
- final long byte425 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte417 & 31) << 58) | (byte418 << 50) | (byte419 << 42) | (byte420 << 34) | (byte421 << 26) | (byte422 << 18) | (byte423 << 10) | (byte424 << 2) | (byte425 >>> 6);
- final long byte426 = blocks[blocksOffset++] & 0xFF;
- final long byte427 = blocks[blocksOffset++] & 0xFF;
- final long byte428 = blocks[blocksOffset++] & 0xFF;
- final long byte429 = blocks[blocksOffset++] & 0xFF;
- final long byte430 = blocks[blocksOffset++] & 0xFF;
- final long byte431 = blocks[blocksOffset++] & 0xFF;
- final long byte432 = blocks[blocksOffset++] & 0xFF;
- final long byte433 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte425 & 63) << 57) | (byte426 << 49) | (byte427 << 41) | (byte428 << 33) | (byte429 << 25) | (byte430 << 17) | (byte431 << 9) | (byte432 << 1) | (byte433 >>> 7);
- final long byte434 = blocks[blocksOffset++] & 0xFF;
- final long byte435 = blocks[blocksOffset++] & 0xFF;
- final long byte436 = blocks[blocksOffset++] & 0xFF;
- final long byte437 = blocks[blocksOffset++] & 0xFF;
- final long byte438 = blocks[blocksOffset++] & 0xFF;
- final long byte439 = blocks[blocksOffset++] & 0xFF;
- final long byte440 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte433 & 127) << 56) | (byte434 << 48) | (byte435 << 40) | (byte436 << 32) | (byte437 << 24) | (byte438 << 16) | (byte439 << 8) | byte440;
- final long byte441 = blocks[blocksOffset++] & 0xFF;
- final long byte442 = blocks[blocksOffset++] & 0xFF;
- final long byte443 = blocks[blocksOffset++] & 0xFF;
- final long byte444 = blocks[blocksOffset++] & 0xFF;
- final long byte445 = blocks[blocksOffset++] & 0xFF;
- final long byte446 = blocks[blocksOffset++] & 0xFF;
- final long byte447 = blocks[blocksOffset++] & 0xFF;
- final long byte448 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte441 << 55) | (byte442 << 47) | (byte443 << 39) | (byte444 << 31) | (byte445 << 23) | (byte446 << 15) | (byte447 << 7) | (byte448 >>> 1);
- final long byte449 = blocks[blocksOffset++] & 0xFF;
- final long byte450 = blocks[blocksOffset++] & 0xFF;
- final long byte451 = blocks[blocksOffset++] & 0xFF;
- final long byte452 = blocks[blocksOffset++] & 0xFF;
- final long byte453 = blocks[blocksOffset++] & 0xFF;
- final long byte454 = blocks[blocksOffset++] & 0xFF;
- final long byte455 = blocks[blocksOffset++] & 0xFF;
- final long byte456 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte448 & 1) << 62) | (byte449 << 54) | (byte450 << 46) | (byte451 << 38) | (byte452 << 30) | (byte453 << 22) | (byte454 << 14) | (byte455 << 6) | (byte456 >>> 2);
- final long byte457 = blocks[blocksOffset++] & 0xFF;
- final long byte458 = blocks[blocksOffset++] & 0xFF;
- final long byte459 = blocks[blocksOffset++] & 0xFF;
- final long byte460 = blocks[blocksOffset++] & 0xFF;
- final long byte461 = blocks[blocksOffset++] & 0xFF;
- final long byte462 = blocks[blocksOffset++] & 0xFF;
- final long byte463 = blocks[blocksOffset++] & 0xFF;
- final long byte464 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte456 & 3) << 61) | (byte457 << 53) | (byte458 << 45) | (byte459 << 37) | (byte460 << 29) | (byte461 << 21) | (byte462 << 13) | (byte463 << 5) | (byte464 >>> 3);
- final long byte465 = blocks[blocksOffset++] & 0xFF;
- final long byte466 = blocks[blocksOffset++] & 0xFF;
- final long byte467 = blocks[blocksOffset++] & 0xFF;
- final long byte468 = blocks[blocksOffset++] & 0xFF;
- final long byte469 = blocks[blocksOffset++] & 0xFF;
- final long byte470 = blocks[blocksOffset++] & 0xFF;
- final long byte471 = blocks[blocksOffset++] & 0xFF;
- final long byte472 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte464 & 7) << 60) | (byte465 << 52) | (byte466 << 44) | (byte467 << 36) | (byte468 << 28) | (byte469 << 20) | (byte470 << 12) | (byte471 << 4) | (byte472 >>> 4);
- final long byte473 = blocks[blocksOffset++] & 0xFF;
- final long byte474 = blocks[blocksOffset++] & 0xFF;
- final long byte475 = blocks[blocksOffset++] & 0xFF;
- final long byte476 = blocks[blocksOffset++] & 0xFF;
- final long byte477 = blocks[blocksOffset++] & 0xFF;
- final long byte478 = blocks[blocksOffset++] & 0xFF;
- final long byte479 = blocks[blocksOffset++] & 0xFF;
- final long byte480 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte472 & 15) << 59) | (byte473 << 51) | (byte474 << 43) | (byte475 << 35) | (byte476 << 27) | (byte477 << 19) | (byte478 << 11) | (byte479 << 3) | (byte480 >>> 5);
- final long byte481 = blocks[blocksOffset++] & 0xFF;
- final long byte482 = blocks[blocksOffset++] & 0xFF;
- final long byte483 = blocks[blocksOffset++] & 0xFF;
- final long byte484 = blocks[blocksOffset++] & 0xFF;
- final long byte485 = blocks[blocksOffset++] & 0xFF;
- final long byte486 = blocks[blocksOffset++] & 0xFF;
- final long byte487 = blocks[blocksOffset++] & 0xFF;
- final long byte488 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte480 & 31) << 58) | (byte481 << 50) | (byte482 << 42) | (byte483 << 34) | (byte484 << 26) | (byte485 << 18) | (byte486 << 10) | (byte487 << 2) | (byte488 >>> 6);
- final long byte489 = blocks[blocksOffset++] & 0xFF;
- final long byte490 = blocks[blocksOffset++] & 0xFF;
- final long byte491 = blocks[blocksOffset++] & 0xFF;
- final long byte492 = blocks[blocksOffset++] & 0xFF;
- final long byte493 = blocks[blocksOffset++] & 0xFF;
- final long byte494 = blocks[blocksOffset++] & 0xFF;
- final long byte495 = blocks[blocksOffset++] & 0xFF;
- final long byte496 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte488 & 63) << 57) | (byte489 << 49) | (byte490 << 41) | (byte491 << 33) | (byte492 << 25) | (byte493 << 17) | (byte494 << 9) | (byte495 << 1) | (byte496 >>> 7);
- final long byte497 = blocks[blocksOffset++] & 0xFF;
- final long byte498 = blocks[blocksOffset++] & 0xFF;
- final long byte499 = blocks[blocksOffset++] & 0xFF;
- final long byte500 = blocks[blocksOffset++] & 0xFF;
- final long byte501 = blocks[blocksOffset++] & 0xFF;
- final long byte502 = blocks[blocksOffset++] & 0xFF;
- final long byte503 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte496 & 127) << 56) | (byte497 << 48) | (byte498 << 40) | (byte499 << 32) | (byte500 << 24) | (byte501 << 16) | (byte502 << 8) | byte503;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 62);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 61);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 60);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 59);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 58);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 57);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 55);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 53);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 51);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 62);
- blocks[blocksOffset++] = (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 61);
- blocks[blocksOffset++] = (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 60);
- blocks[blocksOffset++] = (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 59);
- blocks[blocksOffset++] = (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 58);
- blocks[blocksOffset++] = (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 57);
- blocks[blocksOffset++] = (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 55);
- blocks[blocksOffset++] = (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 53);
- blocks[blocksOffset++] = (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 51);
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked27.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked27.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked27.java (copie de travail)
@@ -1,880 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked27 extends BulkOperation {
- @Override
- public int blockCount() {
- return 27;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 37);
- values[valuesOffset++] = (int) ((block0 >>> 10) & 134217727L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 1023L) << 17) | (block1 >>> 47));
- values[valuesOffset++] = (int) ((block1 >>> 20) & 134217727L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 1048575L) << 7) | (block2 >>> 57));
- values[valuesOffset++] = (int) ((block2 >>> 30) & 134217727L);
- values[valuesOffset++] = (int) ((block2 >>> 3) & 134217727L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 7L) << 24) | (block3 >>> 40));
- values[valuesOffset++] = (int) ((block3 >>> 13) & 134217727L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 8191L) << 14) | (block4 >>> 50));
- values[valuesOffset++] = (int) ((block4 >>> 23) & 134217727L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 8388607L) << 4) | (block5 >>> 60));
- values[valuesOffset++] = (int) ((block5 >>> 33) & 134217727L);
- values[valuesOffset++] = (int) ((block5 >>> 6) & 134217727L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 63L) << 21) | (block6 >>> 43));
- values[valuesOffset++] = (int) ((block6 >>> 16) & 134217727L);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block6 & 65535L) << 11) | (block7 >>> 53));
- values[valuesOffset++] = (int) ((block7 >>> 26) & 134217727L);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block7 & 67108863L) << 1) | (block8 >>> 63));
- values[valuesOffset++] = (int) ((block8 >>> 36) & 134217727L);
- values[valuesOffset++] = (int) ((block8 >>> 9) & 134217727L);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block8 & 511L) << 18) | (block9 >>> 46));
- values[valuesOffset++] = (int) ((block9 >>> 19) & 134217727L);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block9 & 524287L) << 8) | (block10 >>> 56));
- values[valuesOffset++] = (int) ((block10 >>> 29) & 134217727L);
- values[valuesOffset++] = (int) ((block10 >>> 2) & 134217727L);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block10 & 3L) << 25) | (block11 >>> 39));
- values[valuesOffset++] = (int) ((block11 >>> 12) & 134217727L);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block11 & 4095L) << 15) | (block12 >>> 49));
- values[valuesOffset++] = (int) ((block12 >>> 22) & 134217727L);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block12 & 4194303L) << 5) | (block13 >>> 59));
- values[valuesOffset++] = (int) ((block13 >>> 32) & 134217727L);
- values[valuesOffset++] = (int) ((block13 >>> 5) & 134217727L);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block13 & 31L) << 22) | (block14 >>> 42));
- values[valuesOffset++] = (int) ((block14 >>> 15) & 134217727L);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block14 & 32767L) << 12) | (block15 >>> 52));
- values[valuesOffset++] = (int) ((block15 >>> 25) & 134217727L);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block15 & 33554431L) << 2) | (block16 >>> 62));
- values[valuesOffset++] = (int) ((block16 >>> 35) & 134217727L);
- values[valuesOffset++] = (int) ((block16 >>> 8) & 134217727L);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block16 & 255L) << 19) | (block17 >>> 45));
- values[valuesOffset++] = (int) ((block17 >>> 18) & 134217727L);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block17 & 262143L) << 9) | (block18 >>> 55));
- values[valuesOffset++] = (int) ((block18 >>> 28) & 134217727L);
- values[valuesOffset++] = (int) ((block18 >>> 1) & 134217727L);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block18 & 1L) << 26) | (block19 >>> 38));
- values[valuesOffset++] = (int) ((block19 >>> 11) & 134217727L);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block19 & 2047L) << 16) | (block20 >>> 48));
- values[valuesOffset++] = (int) ((block20 >>> 21) & 134217727L);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block20 & 2097151L) << 6) | (block21 >>> 58));
- values[valuesOffset++] = (int) ((block21 >>> 31) & 134217727L);
- values[valuesOffset++] = (int) ((block21 >>> 4) & 134217727L);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block21 & 15L) << 23) | (block22 >>> 41));
- values[valuesOffset++] = (int) ((block22 >>> 14) & 134217727L);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block22 & 16383L) << 13) | (block23 >>> 51));
- values[valuesOffset++] = (int) ((block23 >>> 24) & 134217727L);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block23 & 16777215L) << 3) | (block24 >>> 61));
- values[valuesOffset++] = (int) ((block24 >>> 34) & 134217727L);
- values[valuesOffset++] = (int) ((block24 >>> 7) & 134217727L);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block24 & 127L) << 20) | (block25 >>> 44));
- values[valuesOffset++] = (int) ((block25 >>> 17) & 134217727L);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block25 & 131071L) << 10) | (block26 >>> 54));
- values[valuesOffset++] = (int) ((block26 >>> 27) & 134217727L);
- values[valuesOffset++] = (int) (block26 & 134217727L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 19) | (byte1 << 11) | (byte2 << 3) | (byte3 >>> 5);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 31) << 22) | (byte4 << 14) | (byte5 << 6) | (byte6 >>> 2);
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 3) << 25) | (byte7 << 17) | (byte8 << 9) | (byte9 << 1) | (byte10 >>> 7);
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 127) << 20) | (byte11 << 12) | (byte12 << 4) | (byte13 >>> 4);
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 15) << 23) | (byte14 << 15) | (byte15 << 7) | (byte16 >>> 1);
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 1) << 26) | (byte17 << 18) | (byte18 << 10) | (byte19 << 2) | (byte20 >>> 6);
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte20 & 63) << 21) | (byte21 << 13) | (byte22 << 5) | (byte23 >>> 3);
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 7) << 24) | (byte24 << 16) | (byte25 << 8) | byte26;
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte27 << 19) | (byte28 << 11) | (byte29 << 3) | (byte30 >>> 5);
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte30 & 31) << 22) | (byte31 << 14) | (byte32 << 6) | (byte33 >>> 2);
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 3) << 25) | (byte34 << 17) | (byte35 << 9) | (byte36 << 1) | (byte37 >>> 7);
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 127) << 20) | (byte38 << 12) | (byte39 << 4) | (byte40 >>> 4);
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 15) << 23) | (byte41 << 15) | (byte42 << 7) | (byte43 >>> 1);
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 1) << 26) | (byte44 << 18) | (byte45 << 10) | (byte46 << 2) | (byte47 >>> 6);
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 63) << 21) | (byte48 << 13) | (byte49 << 5) | (byte50 >>> 3);
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 7) << 24) | (byte51 << 16) | (byte52 << 8) | byte53;
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- final int byte56 = blocks[blocksOffset++] & 0xFF;
- final int byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte54 << 19) | (byte55 << 11) | (byte56 << 3) | (byte57 >>> 5);
- final int byte58 = blocks[blocksOffset++] & 0xFF;
- final int byte59 = blocks[blocksOffset++] & 0xFF;
- final int byte60 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte57 & 31) << 22) | (byte58 << 14) | (byte59 << 6) | (byte60 >>> 2);
- final int byte61 = blocks[blocksOffset++] & 0xFF;
- final int byte62 = blocks[blocksOffset++] & 0xFF;
- final int byte63 = blocks[blocksOffset++] & 0xFF;
- final int byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte60 & 3) << 25) | (byte61 << 17) | (byte62 << 9) | (byte63 << 1) | (byte64 >>> 7);
- final int byte65 = blocks[blocksOffset++] & 0xFF;
- final int byte66 = blocks[blocksOffset++] & 0xFF;
- final int byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte64 & 127) << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final int byte68 = blocks[blocksOffset++] & 0xFF;
- final int byte69 = blocks[blocksOffset++] & 0xFF;
- final int byte70 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 23) | (byte68 << 15) | (byte69 << 7) | (byte70 >>> 1);
- final int byte71 = blocks[blocksOffset++] & 0xFF;
- final int byte72 = blocks[blocksOffset++] & 0xFF;
- final int byte73 = blocks[blocksOffset++] & 0xFF;
- final int byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte70 & 1) << 26) | (byte71 << 18) | (byte72 << 10) | (byte73 << 2) | (byte74 >>> 6);
- final int byte75 = blocks[blocksOffset++] & 0xFF;
- final int byte76 = blocks[blocksOffset++] & 0xFF;
- final int byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 63) << 21) | (byte75 << 13) | (byte76 << 5) | (byte77 >>> 3);
- final int byte78 = blocks[blocksOffset++] & 0xFF;
- final int byte79 = blocks[blocksOffset++] & 0xFF;
- final int byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte77 & 7) << 24) | (byte78 << 16) | (byte79 << 8) | byte80;
- final int byte81 = blocks[blocksOffset++] & 0xFF;
- final int byte82 = blocks[blocksOffset++] & 0xFF;
- final int byte83 = blocks[blocksOffset++] & 0xFF;
- final int byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte81 << 19) | (byte82 << 11) | (byte83 << 3) | (byte84 >>> 5);
- final int byte85 = blocks[blocksOffset++] & 0xFF;
- final int byte86 = blocks[blocksOffset++] & 0xFF;
- final int byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 31) << 22) | (byte85 << 14) | (byte86 << 6) | (byte87 >>> 2);
- final int byte88 = blocks[blocksOffset++] & 0xFF;
- final int byte89 = blocks[blocksOffset++] & 0xFF;
- final int byte90 = blocks[blocksOffset++] & 0xFF;
- final int byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 3) << 25) | (byte88 << 17) | (byte89 << 9) | (byte90 << 1) | (byte91 >>> 7);
- final int byte92 = blocks[blocksOffset++] & 0xFF;
- final int byte93 = blocks[blocksOffset++] & 0xFF;
- final int byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte91 & 127) << 20) | (byte92 << 12) | (byte93 << 4) | (byte94 >>> 4);
- final int byte95 = blocks[blocksOffset++] & 0xFF;
- final int byte96 = blocks[blocksOffset++] & 0xFF;
- final int byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 15) << 23) | (byte95 << 15) | (byte96 << 7) | (byte97 >>> 1);
- final int byte98 = blocks[blocksOffset++] & 0xFF;
- final int byte99 = blocks[blocksOffset++] & 0xFF;
- final int byte100 = blocks[blocksOffset++] & 0xFF;
- final int byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 1) << 26) | (byte98 << 18) | (byte99 << 10) | (byte100 << 2) | (byte101 >>> 6);
- final int byte102 = blocks[blocksOffset++] & 0xFF;
- final int byte103 = blocks[blocksOffset++] & 0xFF;
- final int byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 63) << 21) | (byte102 << 13) | (byte103 << 5) | (byte104 >>> 3);
- final int byte105 = blocks[blocksOffset++] & 0xFF;
- final int byte106 = blocks[blocksOffset++] & 0xFF;
- final int byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte104 & 7) << 24) | (byte105 << 16) | (byte106 << 8) | byte107;
- final int byte108 = blocks[blocksOffset++] & 0xFF;
- final int byte109 = blocks[blocksOffset++] & 0xFF;
- final int byte110 = blocks[blocksOffset++] & 0xFF;
- final int byte111 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte108 << 19) | (byte109 << 11) | (byte110 << 3) | (byte111 >>> 5);
- final int byte112 = blocks[blocksOffset++] & 0xFF;
- final int byte113 = blocks[blocksOffset++] & 0xFF;
- final int byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte111 & 31) << 22) | (byte112 << 14) | (byte113 << 6) | (byte114 >>> 2);
- final int byte115 = blocks[blocksOffset++] & 0xFF;
- final int byte116 = blocks[blocksOffset++] & 0xFF;
- final int byte117 = blocks[blocksOffset++] & 0xFF;
- final int byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte114 & 3) << 25) | (byte115 << 17) | (byte116 << 9) | (byte117 << 1) | (byte118 >>> 7);
- final int byte119 = blocks[blocksOffset++] & 0xFF;
- final int byte120 = blocks[blocksOffset++] & 0xFF;
- final int byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 127) << 20) | (byte119 << 12) | (byte120 << 4) | (byte121 >>> 4);
- final int byte122 = blocks[blocksOffset++] & 0xFF;
- final int byte123 = blocks[blocksOffset++] & 0xFF;
- final int byte124 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 15) << 23) | (byte122 << 15) | (byte123 << 7) | (byte124 >>> 1);
- final int byte125 = blocks[blocksOffset++] & 0xFF;
- final int byte126 = blocks[blocksOffset++] & 0xFF;
- final int byte127 = blocks[blocksOffset++] & 0xFF;
- final int byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte124 & 1) << 26) | (byte125 << 18) | (byte126 << 10) | (byte127 << 2) | (byte128 >>> 6);
- final int byte129 = blocks[blocksOffset++] & 0xFF;
- final int byte130 = blocks[blocksOffset++] & 0xFF;
- final int byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 63) << 21) | (byte129 << 13) | (byte130 << 5) | (byte131 >>> 3);
- final int byte132 = blocks[blocksOffset++] & 0xFF;
- final int byte133 = blocks[blocksOffset++] & 0xFF;
- final int byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 7) << 24) | (byte132 << 16) | (byte133 << 8) | byte134;
- final int byte135 = blocks[blocksOffset++] & 0xFF;
- final int byte136 = blocks[blocksOffset++] & 0xFF;
- final int byte137 = blocks[blocksOffset++] & 0xFF;
- final int byte138 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte135 << 19) | (byte136 << 11) | (byte137 << 3) | (byte138 >>> 5);
- final int byte139 = blocks[blocksOffset++] & 0xFF;
- final int byte140 = blocks[blocksOffset++] & 0xFF;
- final int byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte138 & 31) << 22) | (byte139 << 14) | (byte140 << 6) | (byte141 >>> 2);
- final int byte142 = blocks[blocksOffset++] & 0xFF;
- final int byte143 = blocks[blocksOffset++] & 0xFF;
- final int byte144 = blocks[blocksOffset++] & 0xFF;
- final int byte145 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 3) << 25) | (byte142 << 17) | (byte143 << 9) | (byte144 << 1) | (byte145 >>> 7);
- final int byte146 = blocks[blocksOffset++] & 0xFF;
- final int byte147 = blocks[blocksOffset++] & 0xFF;
- final int byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte145 & 127) << 20) | (byte146 << 12) | (byte147 << 4) | (byte148 >>> 4);
- final int byte149 = blocks[blocksOffset++] & 0xFF;
- final int byte150 = blocks[blocksOffset++] & 0xFF;
- final int byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 15) << 23) | (byte149 << 15) | (byte150 << 7) | (byte151 >>> 1);
- final int byte152 = blocks[blocksOffset++] & 0xFF;
- final int byte153 = blocks[blocksOffset++] & 0xFF;
- final int byte154 = blocks[blocksOffset++] & 0xFF;
- final int byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 1) << 26) | (byte152 << 18) | (byte153 << 10) | (byte154 << 2) | (byte155 >>> 6);
- final int byte156 = blocks[blocksOffset++] & 0xFF;
- final int byte157 = blocks[blocksOffset++] & 0xFF;
- final int byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 63) << 21) | (byte156 << 13) | (byte157 << 5) | (byte158 >>> 3);
- final int byte159 = blocks[blocksOffset++] & 0xFF;
- final int byte160 = blocks[blocksOffset++] & 0xFF;
- final int byte161 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 7) << 24) | (byte159 << 16) | (byte160 << 8) | byte161;
- final int byte162 = blocks[blocksOffset++] & 0xFF;
- final int byte163 = blocks[blocksOffset++] & 0xFF;
- final int byte164 = blocks[blocksOffset++] & 0xFF;
- final int byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte162 << 19) | (byte163 << 11) | (byte164 << 3) | (byte165 >>> 5);
- final int byte166 = blocks[blocksOffset++] & 0xFF;
- final int byte167 = blocks[blocksOffset++] & 0xFF;
- final int byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 31) << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final int byte169 = blocks[blocksOffset++] & 0xFF;
- final int byte170 = blocks[blocksOffset++] & 0xFF;
- final int byte171 = blocks[blocksOffset++] & 0xFF;
- final int byte172 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 25) | (byte169 << 17) | (byte170 << 9) | (byte171 << 1) | (byte172 >>> 7);
- final int byte173 = blocks[blocksOffset++] & 0xFF;
- final int byte174 = blocks[blocksOffset++] & 0xFF;
- final int byte175 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte172 & 127) << 20) | (byte173 << 12) | (byte174 << 4) | (byte175 >>> 4);
- final int byte176 = blocks[blocksOffset++] & 0xFF;
- final int byte177 = blocks[blocksOffset++] & 0xFF;
- final int byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte175 & 15) << 23) | (byte176 << 15) | (byte177 << 7) | (byte178 >>> 1);
- final int byte179 = blocks[blocksOffset++] & 0xFF;
- final int byte180 = blocks[blocksOffset++] & 0xFF;
- final int byte181 = blocks[blocksOffset++] & 0xFF;
- final int byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 1) << 26) | (byte179 << 18) | (byte180 << 10) | (byte181 << 2) | (byte182 >>> 6);
- final int byte183 = blocks[blocksOffset++] & 0xFF;
- final int byte184 = blocks[blocksOffset++] & 0xFF;
- final int byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 63) << 21) | (byte183 << 13) | (byte184 << 5) | (byte185 >>> 3);
- final int byte186 = blocks[blocksOffset++] & 0xFF;
- final int byte187 = blocks[blocksOffset++] & 0xFF;
- final int byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 7) << 24) | (byte186 << 16) | (byte187 << 8) | byte188;
- final int byte189 = blocks[blocksOffset++] & 0xFF;
- final int byte190 = blocks[blocksOffset++] & 0xFF;
- final int byte191 = blocks[blocksOffset++] & 0xFF;
- final int byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte189 << 19) | (byte190 << 11) | (byte191 << 3) | (byte192 >>> 5);
- final int byte193 = blocks[blocksOffset++] & 0xFF;
- final int byte194 = blocks[blocksOffset++] & 0xFF;
- final int byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 31) << 22) | (byte193 << 14) | (byte194 << 6) | (byte195 >>> 2);
- final int byte196 = blocks[blocksOffset++] & 0xFF;
- final int byte197 = blocks[blocksOffset++] & 0xFF;
- final int byte198 = blocks[blocksOffset++] & 0xFF;
- final int byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte195 & 3) << 25) | (byte196 << 17) | (byte197 << 9) | (byte198 << 1) | (byte199 >>> 7);
- final int byte200 = blocks[blocksOffset++] & 0xFF;
- final int byte201 = blocks[blocksOffset++] & 0xFF;
- final int byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 127) << 20) | (byte200 << 12) | (byte201 << 4) | (byte202 >>> 4);
- final int byte203 = blocks[blocksOffset++] & 0xFF;
- final int byte204 = blocks[blocksOffset++] & 0xFF;
- final int byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte202 & 15) << 23) | (byte203 << 15) | (byte204 << 7) | (byte205 >>> 1);
- final int byte206 = blocks[blocksOffset++] & 0xFF;
- final int byte207 = blocks[blocksOffset++] & 0xFF;
- final int byte208 = blocks[blocksOffset++] & 0xFF;
- final int byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 1) << 26) | (byte206 << 18) | (byte207 << 10) | (byte208 << 2) | (byte209 >>> 6);
- final int byte210 = blocks[blocksOffset++] & 0xFF;
- final int byte211 = blocks[blocksOffset++] & 0xFF;
- final int byte212 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 63) << 21) | (byte210 << 13) | (byte211 << 5) | (byte212 >>> 3);
- final int byte213 = blocks[blocksOffset++] & 0xFF;
- final int byte214 = blocks[blocksOffset++] & 0xFF;
- final int byte215 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte212 & 7) << 24) | (byte213 << 16) | (byte214 << 8) | byte215;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 37;
- values[valuesOffset++] = (block0 >>> 10) & 134217727L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 1023L) << 17) | (block1 >>> 47);
- values[valuesOffset++] = (block1 >>> 20) & 134217727L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 1048575L) << 7) | (block2 >>> 57);
- values[valuesOffset++] = (block2 >>> 30) & 134217727L;
- values[valuesOffset++] = (block2 >>> 3) & 134217727L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 7L) << 24) | (block3 >>> 40);
- values[valuesOffset++] = (block3 >>> 13) & 134217727L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 8191L) << 14) | (block4 >>> 50);
- values[valuesOffset++] = (block4 >>> 23) & 134217727L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 8388607L) << 4) | (block5 >>> 60);
- values[valuesOffset++] = (block5 >>> 33) & 134217727L;
- values[valuesOffset++] = (block5 >>> 6) & 134217727L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 63L) << 21) | (block6 >>> 43);
- values[valuesOffset++] = (block6 >>> 16) & 134217727L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 65535L) << 11) | (block7 >>> 53);
- values[valuesOffset++] = (block7 >>> 26) & 134217727L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 67108863L) << 1) | (block8 >>> 63);
- values[valuesOffset++] = (block8 >>> 36) & 134217727L;
- values[valuesOffset++] = (block8 >>> 9) & 134217727L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 511L) << 18) | (block9 >>> 46);
- values[valuesOffset++] = (block9 >>> 19) & 134217727L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 524287L) << 8) | (block10 >>> 56);
- values[valuesOffset++] = (block10 >>> 29) & 134217727L;
- values[valuesOffset++] = (block10 >>> 2) & 134217727L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 3L) << 25) | (block11 >>> 39);
- values[valuesOffset++] = (block11 >>> 12) & 134217727L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 4095L) << 15) | (block12 >>> 49);
- values[valuesOffset++] = (block12 >>> 22) & 134217727L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4194303L) << 5) | (block13 >>> 59);
- values[valuesOffset++] = (block13 >>> 32) & 134217727L;
- values[valuesOffset++] = (block13 >>> 5) & 134217727L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 31L) << 22) | (block14 >>> 42);
- values[valuesOffset++] = (block14 >>> 15) & 134217727L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 32767L) << 12) | (block15 >>> 52);
- values[valuesOffset++] = (block15 >>> 25) & 134217727L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 33554431L) << 2) | (block16 >>> 62);
- values[valuesOffset++] = (block16 >>> 35) & 134217727L;
- values[valuesOffset++] = (block16 >>> 8) & 134217727L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 255L) << 19) | (block17 >>> 45);
- values[valuesOffset++] = (block17 >>> 18) & 134217727L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 262143L) << 9) | (block18 >>> 55);
- values[valuesOffset++] = (block18 >>> 28) & 134217727L;
- values[valuesOffset++] = (block18 >>> 1) & 134217727L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 1L) << 26) | (block19 >>> 38);
- values[valuesOffset++] = (block19 >>> 11) & 134217727L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 2047L) << 16) | (block20 >>> 48);
- values[valuesOffset++] = (block20 >>> 21) & 134217727L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 2097151L) << 6) | (block21 >>> 58);
- values[valuesOffset++] = (block21 >>> 31) & 134217727L;
- values[valuesOffset++] = (block21 >>> 4) & 134217727L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 15L) << 23) | (block22 >>> 41);
- values[valuesOffset++] = (block22 >>> 14) & 134217727L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 16383L) << 13) | (block23 >>> 51);
- values[valuesOffset++] = (block23 >>> 24) & 134217727L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 16777215L) << 3) | (block24 >>> 61);
- values[valuesOffset++] = (block24 >>> 34) & 134217727L;
- values[valuesOffset++] = (block24 >>> 7) & 134217727L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 127L) << 20) | (block25 >>> 44);
- values[valuesOffset++] = (block25 >>> 17) & 134217727L;
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 131071L) << 10) | (block26 >>> 54);
- values[valuesOffset++] = (block26 >>> 27) & 134217727L;
- values[valuesOffset++] = block26 & 134217727L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 19) | (byte1 << 11) | (byte2 << 3) | (byte3 >>> 5);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 31) << 22) | (byte4 << 14) | (byte5 << 6) | (byte6 >>> 2);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 3) << 25) | (byte7 << 17) | (byte8 << 9) | (byte9 << 1) | (byte10 >>> 7);
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 127) << 20) | (byte11 << 12) | (byte12 << 4) | (byte13 >>> 4);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 15) << 23) | (byte14 << 15) | (byte15 << 7) | (byte16 >>> 1);
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 1) << 26) | (byte17 << 18) | (byte18 << 10) | (byte19 << 2) | (byte20 >>> 6);
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte20 & 63) << 21) | (byte21 << 13) | (byte22 << 5) | (byte23 >>> 3);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 7) << 24) | (byte24 << 16) | (byte25 << 8) | byte26;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte27 << 19) | (byte28 << 11) | (byte29 << 3) | (byte30 >>> 5);
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte30 & 31) << 22) | (byte31 << 14) | (byte32 << 6) | (byte33 >>> 2);
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 3) << 25) | (byte34 << 17) | (byte35 << 9) | (byte36 << 1) | (byte37 >>> 7);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 127) << 20) | (byte38 << 12) | (byte39 << 4) | (byte40 >>> 4);
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 15) << 23) | (byte41 << 15) | (byte42 << 7) | (byte43 >>> 1);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 1) << 26) | (byte44 << 18) | (byte45 << 10) | (byte46 << 2) | (byte47 >>> 6);
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 63) << 21) | (byte48 << 13) | (byte49 << 5) | (byte50 >>> 3);
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 7) << 24) | (byte51 << 16) | (byte52 << 8) | byte53;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte54 << 19) | (byte55 << 11) | (byte56 << 3) | (byte57 >>> 5);
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte57 & 31) << 22) | (byte58 << 14) | (byte59 << 6) | (byte60 >>> 2);
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte60 & 3) << 25) | (byte61 << 17) | (byte62 << 9) | (byte63 << 1) | (byte64 >>> 7);
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte64 & 127) << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 23) | (byte68 << 15) | (byte69 << 7) | (byte70 >>> 1);
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte70 & 1) << 26) | (byte71 << 18) | (byte72 << 10) | (byte73 << 2) | (byte74 >>> 6);
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 63) << 21) | (byte75 << 13) | (byte76 << 5) | (byte77 >>> 3);
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte77 & 7) << 24) | (byte78 << 16) | (byte79 << 8) | byte80;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte81 << 19) | (byte82 << 11) | (byte83 << 3) | (byte84 >>> 5);
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 31) << 22) | (byte85 << 14) | (byte86 << 6) | (byte87 >>> 2);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 3) << 25) | (byte88 << 17) | (byte89 << 9) | (byte90 << 1) | (byte91 >>> 7);
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte91 & 127) << 20) | (byte92 << 12) | (byte93 << 4) | (byte94 >>> 4);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 15) << 23) | (byte95 << 15) | (byte96 << 7) | (byte97 >>> 1);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 1) << 26) | (byte98 << 18) | (byte99 << 10) | (byte100 << 2) | (byte101 >>> 6);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 63) << 21) | (byte102 << 13) | (byte103 << 5) | (byte104 >>> 3);
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte104 & 7) << 24) | (byte105 << 16) | (byte106 << 8) | byte107;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte108 << 19) | (byte109 << 11) | (byte110 << 3) | (byte111 >>> 5);
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte111 & 31) << 22) | (byte112 << 14) | (byte113 << 6) | (byte114 >>> 2);
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte114 & 3) << 25) | (byte115 << 17) | (byte116 << 9) | (byte117 << 1) | (byte118 >>> 7);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 127) << 20) | (byte119 << 12) | (byte120 << 4) | (byte121 >>> 4);
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 15) << 23) | (byte122 << 15) | (byte123 << 7) | (byte124 >>> 1);
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte124 & 1) << 26) | (byte125 << 18) | (byte126 << 10) | (byte127 << 2) | (byte128 >>> 6);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 63) << 21) | (byte129 << 13) | (byte130 << 5) | (byte131 >>> 3);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 7) << 24) | (byte132 << 16) | (byte133 << 8) | byte134;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte135 << 19) | (byte136 << 11) | (byte137 << 3) | (byte138 >>> 5);
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte138 & 31) << 22) | (byte139 << 14) | (byte140 << 6) | (byte141 >>> 2);
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 3) << 25) | (byte142 << 17) | (byte143 << 9) | (byte144 << 1) | (byte145 >>> 7);
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte145 & 127) << 20) | (byte146 << 12) | (byte147 << 4) | (byte148 >>> 4);
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 15) << 23) | (byte149 << 15) | (byte150 << 7) | (byte151 >>> 1);
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 1) << 26) | (byte152 << 18) | (byte153 << 10) | (byte154 << 2) | (byte155 >>> 6);
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 63) << 21) | (byte156 << 13) | (byte157 << 5) | (byte158 >>> 3);
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 7) << 24) | (byte159 << 16) | (byte160 << 8) | byte161;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte162 << 19) | (byte163 << 11) | (byte164 << 3) | (byte165 >>> 5);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 31) << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 25) | (byte169 << 17) | (byte170 << 9) | (byte171 << 1) | (byte172 >>> 7);
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte172 & 127) << 20) | (byte173 << 12) | (byte174 << 4) | (byte175 >>> 4);
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte175 & 15) << 23) | (byte176 << 15) | (byte177 << 7) | (byte178 >>> 1);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 1) << 26) | (byte179 << 18) | (byte180 << 10) | (byte181 << 2) | (byte182 >>> 6);
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 63) << 21) | (byte183 << 13) | (byte184 << 5) | (byte185 >>> 3);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 7) << 24) | (byte186 << 16) | (byte187 << 8) | byte188;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte189 << 19) | (byte190 << 11) | (byte191 << 3) | (byte192 >>> 5);
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 31) << 22) | (byte193 << 14) | (byte194 << 6) | (byte195 >>> 2);
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte195 & 3) << 25) | (byte196 << 17) | (byte197 << 9) | (byte198 << 1) | (byte199 >>> 7);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 127) << 20) | (byte200 << 12) | (byte201 << 4) | (byte202 >>> 4);
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte202 & 15) << 23) | (byte203 << 15) | (byte204 << 7) | (byte205 >>> 1);
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 1) << 26) | (byte206 << 18) | (byte207 << 10) | (byte208 << 2) | (byte209 >>> 6);
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 63) << 21) | (byte210 << 13) | (byte211 << 5) | (byte212 >>> 3);
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte212 & 7) << 24) | (byte213 << 16) | (byte214 << 8) | byte215;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 27) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 27) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked19.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked19.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked19.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked19 extends BulkOperation {
- @Override
- public int blockCount() {
- return 19;
- }
+final class BulkOperationPacked19 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked19() {
+ super(19);
+ assert blockCount() == 19;
+ assert valueCount() == 64;
}
@Override
@@ -663,58 +660,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 19) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 19) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked55.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked55.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked55.java (copie de travail)
@@ -1,811 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked55 extends BulkOperation {
- @Override
- public int blockCount() {
- return 55;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 9;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 511L) << 46) | (block1 >>> 18);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 262143L) << 37) | (block2 >>> 27);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 134217727L) << 28) | (block3 >>> 36);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 68719476735L) << 19) | (block4 >>> 45);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 35184372088831L) << 10) | (block5 >>> 54);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 18014398509481983L) << 1) | (block6 >>> 63);
- values[valuesOffset++] = (block6 >>> 8) & 36028797018963967L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 255L) << 47) | (block7 >>> 17);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 131071L) << 38) | (block8 >>> 26);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 67108863L) << 29) | (block9 >>> 35);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 34359738367L) << 20) | (block10 >>> 44);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 17592186044415L) << 11) | (block11 >>> 53);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 9007199254740991L) << 2) | (block12 >>> 62);
- values[valuesOffset++] = (block12 >>> 7) & 36028797018963967L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 127L) << 48) | (block13 >>> 16);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 65535L) << 39) | (block14 >>> 25);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 33554431L) << 30) | (block15 >>> 34);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 17179869183L) << 21) | (block16 >>> 43);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 8796093022207L) << 12) | (block17 >>> 52);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 4503599627370495L) << 3) | (block18 >>> 61);
- values[valuesOffset++] = (block18 >>> 6) & 36028797018963967L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 63L) << 49) | (block19 >>> 15);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 32767L) << 40) | (block20 >>> 24);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 16777215L) << 31) | (block21 >>> 33);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 8589934591L) << 22) | (block22 >>> 42);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 4398046511103L) << 13) | (block23 >>> 51);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 2251799813685247L) << 4) | (block24 >>> 60);
- values[valuesOffset++] = (block24 >>> 5) & 36028797018963967L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 31L) << 50) | (block25 >>> 14);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 16383L) << 41) | (block26 >>> 23);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 8388607L) << 32) | (block27 >>> 32);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 4294967295L) << 23) | (block28 >>> 41);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 2199023255551L) << 14) | (block29 >>> 50);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 1125899906842623L) << 5) | (block30 >>> 59);
- values[valuesOffset++] = (block30 >>> 4) & 36028797018963967L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 15L) << 51) | (block31 >>> 13);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 8191L) << 42) | (block32 >>> 22);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 4194303L) << 33) | (block33 >>> 31);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 2147483647L) << 24) | (block34 >>> 40);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 1099511627775L) << 15) | (block35 >>> 49);
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 562949953421311L) << 6) | (block36 >>> 58);
- values[valuesOffset++] = (block36 >>> 3) & 36028797018963967L;
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 7L) << 52) | (block37 >>> 12);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 4095L) << 43) | (block38 >>> 21);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 2097151L) << 34) | (block39 >>> 30);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 1073741823L) << 25) | (block40 >>> 39);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 549755813887L) << 16) | (block41 >>> 48);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 281474976710655L) << 7) | (block42 >>> 57);
- values[valuesOffset++] = (block42 >>> 2) & 36028797018963967L;
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 3L) << 53) | (block43 >>> 11);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 2047L) << 44) | (block44 >>> 20);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 1048575L) << 35) | (block45 >>> 29);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 536870911L) << 26) | (block46 >>> 38);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 274877906943L) << 17) | (block47 >>> 47);
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 140737488355327L) << 8) | (block48 >>> 56);
- values[valuesOffset++] = (block48 >>> 1) & 36028797018963967L;
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 1L) << 54) | (block49 >>> 10);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 1023L) << 45) | (block50 >>> 19);
- final long block51 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block50 & 524287L) << 36) | (block51 >>> 28);
- final long block52 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block51 & 268435455L) << 27) | (block52 >>> 37);
- final long block53 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block52 & 137438953471L) << 18) | (block53 >>> 46);
- final long block54 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block53 & 70368744177663L) << 9) | (block54 >>> 55);
- values[valuesOffset++] = block54 & 36028797018963967L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 47) | (byte1 << 39) | (byte2 << 31) | (byte3 << 23) | (byte4 << 15) | (byte5 << 7) | (byte6 >>> 1);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 1) << 54) | (byte7 << 46) | (byte8 << 38) | (byte9 << 30) | (byte10 << 22) | (byte11 << 14) | (byte12 << 6) | (byte13 >>> 2);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 3) << 53) | (byte14 << 45) | (byte15 << 37) | (byte16 << 29) | (byte17 << 21) | (byte18 << 13) | (byte19 << 5) | (byte20 >>> 3);
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte20 & 7) << 52) | (byte21 << 44) | (byte22 << 36) | (byte23 << 28) | (byte24 << 20) | (byte25 << 12) | (byte26 << 4) | (byte27 >>> 4);
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte27 & 15) << 51) | (byte28 << 43) | (byte29 << 35) | (byte30 << 27) | (byte31 << 19) | (byte32 << 11) | (byte33 << 3) | (byte34 >>> 5);
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 31) << 50) | (byte35 << 42) | (byte36 << 34) | (byte37 << 26) | (byte38 << 18) | (byte39 << 10) | (byte40 << 2) | (byte41 >>> 6);
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte41 & 63) << 49) | (byte42 << 41) | (byte43 << 33) | (byte44 << 25) | (byte45 << 17) | (byte46 << 9) | (byte47 << 1) | (byte48 >>> 7);
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 127) << 48) | (byte49 << 40) | (byte50 << 32) | (byte51 << 24) | (byte52 << 16) | (byte53 << 8) | byte54;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte55 << 47) | (byte56 << 39) | (byte57 << 31) | (byte58 << 23) | (byte59 << 15) | (byte60 << 7) | (byte61 >>> 1);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 1) << 54) | (byte62 << 46) | (byte63 << 38) | (byte64 << 30) | (byte65 << 22) | (byte66 << 14) | (byte67 << 6) | (byte68 >>> 2);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 3) << 53) | (byte69 << 45) | (byte70 << 37) | (byte71 << 29) | (byte72 << 21) | (byte73 << 13) | (byte74 << 5) | (byte75 >>> 3);
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte75 & 7) << 52) | (byte76 << 44) | (byte77 << 36) | (byte78 << 28) | (byte79 << 20) | (byte80 << 12) | (byte81 << 4) | (byte82 >>> 4);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 15) << 51) | (byte83 << 43) | (byte84 << 35) | (byte85 << 27) | (byte86 << 19) | (byte87 << 11) | (byte88 << 3) | (byte89 >>> 5);
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte89 & 31) << 50) | (byte90 << 42) | (byte91 << 34) | (byte92 << 26) | (byte93 << 18) | (byte94 << 10) | (byte95 << 2) | (byte96 >>> 6);
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 63) << 49) | (byte97 << 41) | (byte98 << 33) | (byte99 << 25) | (byte100 << 17) | (byte101 << 9) | (byte102 << 1) | (byte103 >>> 7);
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte103 & 127) << 48) | (byte104 << 40) | (byte105 << 32) | (byte106 << 24) | (byte107 << 16) | (byte108 << 8) | byte109;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte110 << 47) | (byte111 << 39) | (byte112 << 31) | (byte113 << 23) | (byte114 << 15) | (byte115 << 7) | (byte116 >>> 1);
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 1) << 54) | (byte117 << 46) | (byte118 << 38) | (byte119 << 30) | (byte120 << 22) | (byte121 << 14) | (byte122 << 6) | (byte123 >>> 2);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 3) << 53) | (byte124 << 45) | (byte125 << 37) | (byte126 << 29) | (byte127 << 21) | (byte128 << 13) | (byte129 << 5) | (byte130 >>> 3);
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte130 & 7) << 52) | (byte131 << 44) | (byte132 << 36) | (byte133 << 28) | (byte134 << 20) | (byte135 << 12) | (byte136 << 4) | (byte137 >>> 4);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 15) << 51) | (byte138 << 43) | (byte139 << 35) | (byte140 << 27) | (byte141 << 19) | (byte142 << 11) | (byte143 << 3) | (byte144 >>> 5);
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte144 & 31) << 50) | (byte145 << 42) | (byte146 << 34) | (byte147 << 26) | (byte148 << 18) | (byte149 << 10) | (byte150 << 2) | (byte151 >>> 6);
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 63) << 49) | (byte152 << 41) | (byte153 << 33) | (byte154 << 25) | (byte155 << 17) | (byte156 << 9) | (byte157 << 1) | (byte158 >>> 7);
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 127) << 48) | (byte159 << 40) | (byte160 << 32) | (byte161 << 24) | (byte162 << 16) | (byte163 << 8) | byte164;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte165 << 47) | (byte166 << 39) | (byte167 << 31) | (byte168 << 23) | (byte169 << 15) | (byte170 << 7) | (byte171 >>> 1);
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte171 & 1) << 54) | (byte172 << 46) | (byte173 << 38) | (byte174 << 30) | (byte175 << 22) | (byte176 << 14) | (byte177 << 6) | (byte178 >>> 2);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 3) << 53) | (byte179 << 45) | (byte180 << 37) | (byte181 << 29) | (byte182 << 21) | (byte183 << 13) | (byte184 << 5) | (byte185 >>> 3);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 7) << 52) | (byte186 << 44) | (byte187 << 36) | (byte188 << 28) | (byte189 << 20) | (byte190 << 12) | (byte191 << 4) | (byte192 >>> 4);
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 15) << 51) | (byte193 << 43) | (byte194 << 35) | (byte195 << 27) | (byte196 << 19) | (byte197 << 11) | (byte198 << 3) | (byte199 >>> 5);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 31) << 50) | (byte200 << 42) | (byte201 << 34) | (byte202 << 26) | (byte203 << 18) | (byte204 << 10) | (byte205 << 2) | (byte206 >>> 6);
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte206 & 63) << 49) | (byte207 << 41) | (byte208 << 33) | (byte209 << 25) | (byte210 << 17) | (byte211 << 9) | (byte212 << 1) | (byte213 >>> 7);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 127) << 48) | (byte214 << 40) | (byte215 << 32) | (byte216 << 24) | (byte217 << 16) | (byte218 << 8) | byte219;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte220 << 47) | (byte221 << 39) | (byte222 << 31) | (byte223 << 23) | (byte224 << 15) | (byte225 << 7) | (byte226 >>> 1);
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte226 & 1) << 54) | (byte227 << 46) | (byte228 << 38) | (byte229 << 30) | (byte230 << 22) | (byte231 << 14) | (byte232 << 6) | (byte233 >>> 2);
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte233 & 3) << 53) | (byte234 << 45) | (byte235 << 37) | (byte236 << 29) | (byte237 << 21) | (byte238 << 13) | (byte239 << 5) | (byte240 >>> 3);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 7) << 52) | (byte241 << 44) | (byte242 << 36) | (byte243 << 28) | (byte244 << 20) | (byte245 << 12) | (byte246 << 4) | (byte247 >>> 4);
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte247 & 15) << 51) | (byte248 << 43) | (byte249 << 35) | (byte250 << 27) | (byte251 << 19) | (byte252 << 11) | (byte253 << 3) | (byte254 >>> 5);
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte254 & 31) << 50) | (byte255 << 42) | (byte256 << 34) | (byte257 << 26) | (byte258 << 18) | (byte259 << 10) | (byte260 << 2) | (byte261 >>> 6);
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte261 & 63) << 49) | (byte262 << 41) | (byte263 << 33) | (byte264 << 25) | (byte265 << 17) | (byte266 << 9) | (byte267 << 1) | (byte268 >>> 7);
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte268 & 127) << 48) | (byte269 << 40) | (byte270 << 32) | (byte271 << 24) | (byte272 << 16) | (byte273 << 8) | byte274;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte275 << 47) | (byte276 << 39) | (byte277 << 31) | (byte278 << 23) | (byte279 << 15) | (byte280 << 7) | (byte281 >>> 1);
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte281 & 1) << 54) | (byte282 << 46) | (byte283 << 38) | (byte284 << 30) | (byte285 << 22) | (byte286 << 14) | (byte287 << 6) | (byte288 >>> 2);
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte288 & 3) << 53) | (byte289 << 45) | (byte290 << 37) | (byte291 << 29) | (byte292 << 21) | (byte293 << 13) | (byte294 << 5) | (byte295 >>> 3);
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte295 & 7) << 52) | (byte296 << 44) | (byte297 << 36) | (byte298 << 28) | (byte299 << 20) | (byte300 << 12) | (byte301 << 4) | (byte302 >>> 4);
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte302 & 15) << 51) | (byte303 << 43) | (byte304 << 35) | (byte305 << 27) | (byte306 << 19) | (byte307 << 11) | (byte308 << 3) | (byte309 >>> 5);
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte309 & 31) << 50) | (byte310 << 42) | (byte311 << 34) | (byte312 << 26) | (byte313 << 18) | (byte314 << 10) | (byte315 << 2) | (byte316 >>> 6);
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte316 & 63) << 49) | (byte317 << 41) | (byte318 << 33) | (byte319 << 25) | (byte320 << 17) | (byte321 << 9) | (byte322 << 1) | (byte323 >>> 7);
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte323 & 127) << 48) | (byte324 << 40) | (byte325 << 32) | (byte326 << 24) | (byte327 << 16) | (byte328 << 8) | byte329;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte330 << 47) | (byte331 << 39) | (byte332 << 31) | (byte333 << 23) | (byte334 << 15) | (byte335 << 7) | (byte336 >>> 1);
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte336 & 1) << 54) | (byte337 << 46) | (byte338 << 38) | (byte339 << 30) | (byte340 << 22) | (byte341 << 14) | (byte342 << 6) | (byte343 >>> 2);
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte343 & 3) << 53) | (byte344 << 45) | (byte345 << 37) | (byte346 << 29) | (byte347 << 21) | (byte348 << 13) | (byte349 << 5) | (byte350 >>> 3);
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte350 & 7) << 52) | (byte351 << 44) | (byte352 << 36) | (byte353 << 28) | (byte354 << 20) | (byte355 << 12) | (byte356 << 4) | (byte357 >>> 4);
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte357 & 15) << 51) | (byte358 << 43) | (byte359 << 35) | (byte360 << 27) | (byte361 << 19) | (byte362 << 11) | (byte363 << 3) | (byte364 >>> 5);
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte364 & 31) << 50) | (byte365 << 42) | (byte366 << 34) | (byte367 << 26) | (byte368 << 18) | (byte369 << 10) | (byte370 << 2) | (byte371 >>> 6);
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte371 & 63) << 49) | (byte372 << 41) | (byte373 << 33) | (byte374 << 25) | (byte375 << 17) | (byte376 << 9) | (byte377 << 1) | (byte378 >>> 7);
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte378 & 127) << 48) | (byte379 << 40) | (byte380 << 32) | (byte381 << 24) | (byte382 << 16) | (byte383 << 8) | byte384;
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte385 << 47) | (byte386 << 39) | (byte387 << 31) | (byte388 << 23) | (byte389 << 15) | (byte390 << 7) | (byte391 >>> 1);
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte391 & 1) << 54) | (byte392 << 46) | (byte393 << 38) | (byte394 << 30) | (byte395 << 22) | (byte396 << 14) | (byte397 << 6) | (byte398 >>> 2);
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte398 & 3) << 53) | (byte399 << 45) | (byte400 << 37) | (byte401 << 29) | (byte402 << 21) | (byte403 << 13) | (byte404 << 5) | (byte405 >>> 3);
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- final long byte408 = blocks[blocksOffset++] & 0xFF;
- final long byte409 = blocks[blocksOffset++] & 0xFF;
- final long byte410 = blocks[blocksOffset++] & 0xFF;
- final long byte411 = blocks[blocksOffset++] & 0xFF;
- final long byte412 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte405 & 7) << 52) | (byte406 << 44) | (byte407 << 36) | (byte408 << 28) | (byte409 << 20) | (byte410 << 12) | (byte411 << 4) | (byte412 >>> 4);
- final long byte413 = blocks[blocksOffset++] & 0xFF;
- final long byte414 = blocks[blocksOffset++] & 0xFF;
- final long byte415 = blocks[blocksOffset++] & 0xFF;
- final long byte416 = blocks[blocksOffset++] & 0xFF;
- final long byte417 = blocks[blocksOffset++] & 0xFF;
- final long byte418 = blocks[blocksOffset++] & 0xFF;
- final long byte419 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte412 & 15) << 51) | (byte413 << 43) | (byte414 << 35) | (byte415 << 27) | (byte416 << 19) | (byte417 << 11) | (byte418 << 3) | (byte419 >>> 5);
- final long byte420 = blocks[blocksOffset++] & 0xFF;
- final long byte421 = blocks[blocksOffset++] & 0xFF;
- final long byte422 = blocks[blocksOffset++] & 0xFF;
- final long byte423 = blocks[blocksOffset++] & 0xFF;
- final long byte424 = blocks[blocksOffset++] & 0xFF;
- final long byte425 = blocks[blocksOffset++] & 0xFF;
- final long byte426 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte419 & 31) << 50) | (byte420 << 42) | (byte421 << 34) | (byte422 << 26) | (byte423 << 18) | (byte424 << 10) | (byte425 << 2) | (byte426 >>> 6);
- final long byte427 = blocks[blocksOffset++] & 0xFF;
- final long byte428 = blocks[blocksOffset++] & 0xFF;
- final long byte429 = blocks[blocksOffset++] & 0xFF;
- final long byte430 = blocks[blocksOffset++] & 0xFF;
- final long byte431 = blocks[blocksOffset++] & 0xFF;
- final long byte432 = blocks[blocksOffset++] & 0xFF;
- final long byte433 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte426 & 63) << 49) | (byte427 << 41) | (byte428 << 33) | (byte429 << 25) | (byte430 << 17) | (byte431 << 9) | (byte432 << 1) | (byte433 >>> 7);
- final long byte434 = blocks[blocksOffset++] & 0xFF;
- final long byte435 = blocks[blocksOffset++] & 0xFF;
- final long byte436 = blocks[blocksOffset++] & 0xFF;
- final long byte437 = blocks[blocksOffset++] & 0xFF;
- final long byte438 = blocks[blocksOffset++] & 0xFF;
- final long byte439 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte433 & 127) << 48) | (byte434 << 40) | (byte435 << 32) | (byte436 << 24) | (byte437 << 16) | (byte438 << 8) | byte439;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 51);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 53);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 51);
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 53);
- blocks[blocksOffset++] = (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked47.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked47.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked47.java (copie de travail)
@@ -1,723 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked47 extends BulkOperation {
- @Override
- public int blockCount() {
- return 47;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 17;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 131071L) << 30) | (block1 >>> 34);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 17179869183L) << 13) | (block2 >>> 51);
- values[valuesOffset++] = (block2 >>> 4) & 140737488355327L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 15L) << 43) | (block3 >>> 21);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 2097151L) << 26) | (block4 >>> 38);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 274877906943L) << 9) | (block5 >>> 55);
- values[valuesOffset++] = (block5 >>> 8) & 140737488355327L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 255L) << 39) | (block6 >>> 25);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 33554431L) << 22) | (block7 >>> 42);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 4398046511103L) << 5) | (block8 >>> 59);
- values[valuesOffset++] = (block8 >>> 12) & 140737488355327L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 4095L) << 35) | (block9 >>> 29);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 536870911L) << 18) | (block10 >>> 46);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 70368744177663L) << 1) | (block11 >>> 63);
- values[valuesOffset++] = (block11 >>> 16) & 140737488355327L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 65535L) << 31) | (block12 >>> 33);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 8589934591L) << 14) | (block13 >>> 50);
- values[valuesOffset++] = (block13 >>> 3) & 140737488355327L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 7L) << 44) | (block14 >>> 20);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1048575L) << 27) | (block15 >>> 37);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 137438953471L) << 10) | (block16 >>> 54);
- values[valuesOffset++] = (block16 >>> 7) & 140737488355327L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 127L) << 40) | (block17 >>> 24);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 16777215L) << 23) | (block18 >>> 41);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 2199023255551L) << 6) | (block19 >>> 58);
- values[valuesOffset++] = (block19 >>> 11) & 140737488355327L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 2047L) << 36) | (block20 >>> 28);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 268435455L) << 19) | (block21 >>> 45);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 35184372088831L) << 2) | (block22 >>> 62);
- values[valuesOffset++] = (block22 >>> 15) & 140737488355327L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 32767L) << 32) | (block23 >>> 32);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 4294967295L) << 15) | (block24 >>> 49);
- values[valuesOffset++] = (block24 >>> 2) & 140737488355327L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 3L) << 45) | (block25 >>> 19);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 524287L) << 28) | (block26 >>> 36);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 68719476735L) << 11) | (block27 >>> 53);
- values[valuesOffset++] = (block27 >>> 6) & 140737488355327L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 63L) << 41) | (block28 >>> 23);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 8388607L) << 24) | (block29 >>> 40);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 1099511627775L) << 7) | (block30 >>> 57);
- values[valuesOffset++] = (block30 >>> 10) & 140737488355327L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 1023L) << 37) | (block31 >>> 27);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 134217727L) << 20) | (block32 >>> 44);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 17592186044415L) << 3) | (block33 >>> 61);
- values[valuesOffset++] = (block33 >>> 14) & 140737488355327L;
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 16383L) << 33) | (block34 >>> 31);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 2147483647L) << 16) | (block35 >>> 48);
- values[valuesOffset++] = (block35 >>> 1) & 140737488355327L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 1L) << 46) | (block36 >>> 18);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 262143L) << 29) | (block37 >>> 35);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 34359738367L) << 12) | (block38 >>> 52);
- values[valuesOffset++] = (block38 >>> 5) & 140737488355327L;
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 31L) << 42) | (block39 >>> 22);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 4194303L) << 25) | (block40 >>> 39);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 549755813887L) << 8) | (block41 >>> 56);
- values[valuesOffset++] = (block41 >>> 9) & 140737488355327L;
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 511L) << 38) | (block42 >>> 26);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 67108863L) << 21) | (block43 >>> 43);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 8796093022207L) << 4) | (block44 >>> 60);
- values[valuesOffset++] = (block44 >>> 13) & 140737488355327L;
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 8191L) << 34) | (block45 >>> 30);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 1073741823L) << 17) | (block46 >>> 47);
- values[valuesOffset++] = block46 & 140737488355327L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 39) | (byte1 << 31) | (byte2 << 23) | (byte3 << 15) | (byte4 << 7) | (byte5 >>> 1);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 1) << 46) | (byte6 << 38) | (byte7 << 30) | (byte8 << 22) | (byte9 << 14) | (byte10 << 6) | (byte11 >>> 2);
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 3) << 45) | (byte12 << 37) | (byte13 << 29) | (byte14 << 21) | (byte15 << 13) | (byte16 << 5) | (byte17 >>> 3);
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte17 & 7) << 44) | (byte18 << 36) | (byte19 << 28) | (byte20 << 20) | (byte21 << 12) | (byte22 << 4) | (byte23 >>> 4);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 15) << 43) | (byte24 << 35) | (byte25 << 27) | (byte26 << 19) | (byte27 << 11) | (byte28 << 3) | (byte29 >>> 5);
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte29 & 31) << 42) | (byte30 << 34) | (byte31 << 26) | (byte32 << 18) | (byte33 << 10) | (byte34 << 2) | (byte35 >>> 6);
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte35 & 63) << 41) | (byte36 << 33) | (byte37 << 25) | (byte38 << 17) | (byte39 << 9) | (byte40 << 1) | (byte41 >>> 7);
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte41 & 127) << 40) | (byte42 << 32) | (byte43 << 24) | (byte44 << 16) | (byte45 << 8) | byte46;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte47 << 39) | (byte48 << 31) | (byte49 << 23) | (byte50 << 15) | (byte51 << 7) | (byte52 >>> 1);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 1) << 46) | (byte53 << 38) | (byte54 << 30) | (byte55 << 22) | (byte56 << 14) | (byte57 << 6) | (byte58 >>> 2);
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 3) << 45) | (byte59 << 37) | (byte60 << 29) | (byte61 << 21) | (byte62 << 13) | (byte63 << 5) | (byte64 >>> 3);
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte64 & 7) << 44) | (byte65 << 36) | (byte66 << 28) | (byte67 << 20) | (byte68 << 12) | (byte69 << 4) | (byte70 >>> 4);
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte70 & 15) << 43) | (byte71 << 35) | (byte72 << 27) | (byte73 << 19) | (byte74 << 11) | (byte75 << 3) | (byte76 >>> 5);
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 31) << 42) | (byte77 << 34) | (byte78 << 26) | (byte79 << 18) | (byte80 << 10) | (byte81 << 2) | (byte82 >>> 6);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 63) << 41) | (byte83 << 33) | (byte84 << 25) | (byte85 << 17) | (byte86 << 9) | (byte87 << 1) | (byte88 >>> 7);
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte88 & 127) << 40) | (byte89 << 32) | (byte90 << 24) | (byte91 << 16) | (byte92 << 8) | byte93;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte94 << 39) | (byte95 << 31) | (byte96 << 23) | (byte97 << 15) | (byte98 << 7) | (byte99 >>> 1);
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte99 & 1) << 46) | (byte100 << 38) | (byte101 << 30) | (byte102 << 22) | (byte103 << 14) | (byte104 << 6) | (byte105 >>> 2);
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte105 & 3) << 45) | (byte106 << 37) | (byte107 << 29) | (byte108 << 21) | (byte109 << 13) | (byte110 << 5) | (byte111 >>> 3);
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte111 & 7) << 44) | (byte112 << 36) | (byte113 << 28) | (byte114 << 20) | (byte115 << 12) | (byte116 << 4) | (byte117 >>> 4);
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte117 & 15) << 43) | (byte118 << 35) | (byte119 << 27) | (byte120 << 19) | (byte121 << 11) | (byte122 << 3) | (byte123 >>> 5);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 31) << 42) | (byte124 << 34) | (byte125 << 26) | (byte126 << 18) | (byte127 << 10) | (byte128 << 2) | (byte129 >>> 6);
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte129 & 63) << 41) | (byte130 << 33) | (byte131 << 25) | (byte132 << 17) | (byte133 << 9) | (byte134 << 1) | (byte135 >>> 7);
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte135 & 127) << 40) | (byte136 << 32) | (byte137 << 24) | (byte138 << 16) | (byte139 << 8) | byte140;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte141 << 39) | (byte142 << 31) | (byte143 << 23) | (byte144 << 15) | (byte145 << 7) | (byte146 >>> 1);
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte146 & 1) << 46) | (byte147 << 38) | (byte148 << 30) | (byte149 << 22) | (byte150 << 14) | (byte151 << 6) | (byte152 >>> 2);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 3) << 45) | (byte153 << 37) | (byte154 << 29) | (byte155 << 21) | (byte156 << 13) | (byte157 << 5) | (byte158 >>> 3);
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 7) << 44) | (byte159 << 36) | (byte160 << 28) | (byte161 << 20) | (byte162 << 12) | (byte163 << 4) | (byte164 >>> 4);
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte164 & 15) << 43) | (byte165 << 35) | (byte166 << 27) | (byte167 << 19) | (byte168 << 11) | (byte169 << 3) | (byte170 >>> 5);
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 31) << 42) | (byte171 << 34) | (byte172 << 26) | (byte173 << 18) | (byte174 << 10) | (byte175 << 2) | (byte176 >>> 6);
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte176 & 63) << 41) | (byte177 << 33) | (byte178 << 25) | (byte179 << 17) | (byte180 << 9) | (byte181 << 1) | (byte182 >>> 7);
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 127) << 40) | (byte183 << 32) | (byte184 << 24) | (byte185 << 16) | (byte186 << 8) | byte187;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte188 << 39) | (byte189 << 31) | (byte190 << 23) | (byte191 << 15) | (byte192 << 7) | (byte193 >>> 1);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 1) << 46) | (byte194 << 38) | (byte195 << 30) | (byte196 << 22) | (byte197 << 14) | (byte198 << 6) | (byte199 >>> 2);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 3) << 45) | (byte200 << 37) | (byte201 << 29) | (byte202 << 21) | (byte203 << 13) | (byte204 << 5) | (byte205 >>> 3);
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 7) << 44) | (byte206 << 36) | (byte207 << 28) | (byte208 << 20) | (byte209 << 12) | (byte210 << 4) | (byte211 >>> 4);
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte211 & 15) << 43) | (byte212 << 35) | (byte213 << 27) | (byte214 << 19) | (byte215 << 11) | (byte216 << 3) | (byte217 >>> 5);
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte217 & 31) << 42) | (byte218 << 34) | (byte219 << 26) | (byte220 << 18) | (byte221 << 10) | (byte222 << 2) | (byte223 >>> 6);
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte223 & 63) << 41) | (byte224 << 33) | (byte225 << 25) | (byte226 << 17) | (byte227 << 9) | (byte228 << 1) | (byte229 >>> 7);
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte229 & 127) << 40) | (byte230 << 32) | (byte231 << 24) | (byte232 << 16) | (byte233 << 8) | byte234;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte235 << 39) | (byte236 << 31) | (byte237 << 23) | (byte238 << 15) | (byte239 << 7) | (byte240 >>> 1);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 1) << 46) | (byte241 << 38) | (byte242 << 30) | (byte243 << 22) | (byte244 << 14) | (byte245 << 6) | (byte246 >>> 2);
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte246 & 3) << 45) | (byte247 << 37) | (byte248 << 29) | (byte249 << 21) | (byte250 << 13) | (byte251 << 5) | (byte252 >>> 3);
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte252 & 7) << 44) | (byte253 << 36) | (byte254 << 28) | (byte255 << 20) | (byte256 << 12) | (byte257 << 4) | (byte258 >>> 4);
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte258 & 15) << 43) | (byte259 << 35) | (byte260 << 27) | (byte261 << 19) | (byte262 << 11) | (byte263 << 3) | (byte264 >>> 5);
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte264 & 31) << 42) | (byte265 << 34) | (byte266 << 26) | (byte267 << 18) | (byte268 << 10) | (byte269 << 2) | (byte270 >>> 6);
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte270 & 63) << 41) | (byte271 << 33) | (byte272 << 25) | (byte273 << 17) | (byte274 << 9) | (byte275 << 1) | (byte276 >>> 7);
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte276 & 127) << 40) | (byte277 << 32) | (byte278 << 24) | (byte279 << 16) | (byte280 << 8) | byte281;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte282 << 39) | (byte283 << 31) | (byte284 << 23) | (byte285 << 15) | (byte286 << 7) | (byte287 >>> 1);
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte287 & 1) << 46) | (byte288 << 38) | (byte289 << 30) | (byte290 << 22) | (byte291 << 14) | (byte292 << 6) | (byte293 >>> 2);
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte293 & 3) << 45) | (byte294 << 37) | (byte295 << 29) | (byte296 << 21) | (byte297 << 13) | (byte298 << 5) | (byte299 >>> 3);
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte299 & 7) << 44) | (byte300 << 36) | (byte301 << 28) | (byte302 << 20) | (byte303 << 12) | (byte304 << 4) | (byte305 >>> 4);
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte305 & 15) << 43) | (byte306 << 35) | (byte307 << 27) | (byte308 << 19) | (byte309 << 11) | (byte310 << 3) | (byte311 >>> 5);
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte311 & 31) << 42) | (byte312 << 34) | (byte313 << 26) | (byte314 << 18) | (byte315 << 10) | (byte316 << 2) | (byte317 >>> 6);
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte317 & 63) << 41) | (byte318 << 33) | (byte319 << 25) | (byte320 << 17) | (byte321 << 9) | (byte322 << 1) | (byte323 >>> 7);
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte323 & 127) << 40) | (byte324 << 32) | (byte325 << 24) | (byte326 << 16) | (byte327 << 8) | byte328;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte329 << 39) | (byte330 << 31) | (byte331 << 23) | (byte332 << 15) | (byte333 << 7) | (byte334 >>> 1);
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte334 & 1) << 46) | (byte335 << 38) | (byte336 << 30) | (byte337 << 22) | (byte338 << 14) | (byte339 << 6) | (byte340 >>> 2);
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte340 & 3) << 45) | (byte341 << 37) | (byte342 << 29) | (byte343 << 21) | (byte344 << 13) | (byte345 << 5) | (byte346 >>> 3);
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte346 & 7) << 44) | (byte347 << 36) | (byte348 << 28) | (byte349 << 20) | (byte350 << 12) | (byte351 << 4) | (byte352 >>> 4);
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte352 & 15) << 43) | (byte353 << 35) | (byte354 << 27) | (byte355 << 19) | (byte356 << 11) | (byte357 << 3) | (byte358 >>> 5);
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte358 & 31) << 42) | (byte359 << 34) | (byte360 << 26) | (byte361 << 18) | (byte362 << 10) | (byte363 << 2) | (byte364 >>> 6);
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte364 & 63) << 41) | (byte365 << 33) | (byte366 << 25) | (byte367 << 17) | (byte368 << 9) | (byte369 << 1) | (byte370 >>> 7);
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte370 & 127) << 40) | (byte371 << 32) | (byte372 << 24) | (byte373 << 16) | (byte374 << 8) | byte375;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked39.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked39.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked39.java (copie de travail)
@@ -1,635 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked39 extends BulkOperation {
- @Override
- public int blockCount() {
- return 39;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 25;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 33554431L) << 14) | (block1 >>> 50);
- values[valuesOffset++] = (block1 >>> 11) & 549755813887L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 2047L) << 28) | (block2 >>> 36);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 68719476735L) << 3) | (block3 >>> 61);
- values[valuesOffset++] = (block3 >>> 22) & 549755813887L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 4194303L) << 17) | (block4 >>> 47);
- values[valuesOffset++] = (block4 >>> 8) & 549755813887L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 255L) << 31) | (block5 >>> 33);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 8589934591L) << 6) | (block6 >>> 58);
- values[valuesOffset++] = (block6 >>> 19) & 549755813887L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 524287L) << 20) | (block7 >>> 44);
- values[valuesOffset++] = (block7 >>> 5) & 549755813887L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 31L) << 34) | (block8 >>> 30);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 1073741823L) << 9) | (block9 >>> 55);
- values[valuesOffset++] = (block9 >>> 16) & 549755813887L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 65535L) << 23) | (block10 >>> 41);
- values[valuesOffset++] = (block10 >>> 2) & 549755813887L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 3L) << 37) | (block11 >>> 27);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 134217727L) << 12) | (block12 >>> 52);
- values[valuesOffset++] = (block12 >>> 13) & 549755813887L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 8191L) << 26) | (block13 >>> 38);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 274877906943L) << 1) | (block14 >>> 63);
- values[valuesOffset++] = (block14 >>> 24) & 549755813887L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 16777215L) << 15) | (block15 >>> 49);
- values[valuesOffset++] = (block15 >>> 10) & 549755813887L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 1023L) << 29) | (block16 >>> 35);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 34359738367L) << 4) | (block17 >>> 60);
- values[valuesOffset++] = (block17 >>> 21) & 549755813887L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 2097151L) << 18) | (block18 >>> 46);
- values[valuesOffset++] = (block18 >>> 7) & 549755813887L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 127L) << 32) | (block19 >>> 32);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 4294967295L) << 7) | (block20 >>> 57);
- values[valuesOffset++] = (block20 >>> 18) & 549755813887L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 262143L) << 21) | (block21 >>> 43);
- values[valuesOffset++] = (block21 >>> 4) & 549755813887L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 15L) << 35) | (block22 >>> 29);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 536870911L) << 10) | (block23 >>> 54);
- values[valuesOffset++] = (block23 >>> 15) & 549755813887L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 32767L) << 24) | (block24 >>> 40);
- values[valuesOffset++] = (block24 >>> 1) & 549755813887L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 1L) << 38) | (block25 >>> 26);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 67108863L) << 13) | (block26 >>> 51);
- values[valuesOffset++] = (block26 >>> 12) & 549755813887L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 4095L) << 27) | (block27 >>> 37);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 137438953471L) << 2) | (block28 >>> 62);
- values[valuesOffset++] = (block28 >>> 23) & 549755813887L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 8388607L) << 16) | (block29 >>> 48);
- values[valuesOffset++] = (block29 >>> 9) & 549755813887L;
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 511L) << 30) | (block30 >>> 34);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 17179869183L) << 5) | (block31 >>> 59);
- values[valuesOffset++] = (block31 >>> 20) & 549755813887L;
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 1048575L) << 19) | (block32 >>> 45);
- values[valuesOffset++] = (block32 >>> 6) & 549755813887L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 63L) << 33) | (block33 >>> 31);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 2147483647L) << 8) | (block34 >>> 56);
- values[valuesOffset++] = (block34 >>> 17) & 549755813887L;
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 131071L) << 22) | (block35 >>> 42);
- values[valuesOffset++] = (block35 >>> 3) & 549755813887L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 7L) << 36) | (block36 >>> 28);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 268435455L) << 11) | (block37 >>> 53);
- values[valuesOffset++] = (block37 >>> 14) & 549755813887L;
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 16383L) << 25) | (block38 >>> 39);
- values[valuesOffset++] = block38 & 549755813887L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 31) | (byte1 << 23) | (byte2 << 15) | (byte3 << 7) | (byte4 >>> 1);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 1) << 38) | (byte5 << 30) | (byte6 << 22) | (byte7 << 14) | (byte8 << 6) | (byte9 >>> 2);
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 3) << 37) | (byte10 << 29) | (byte11 << 21) | (byte12 << 13) | (byte13 << 5) | (byte14 >>> 3);
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 7) << 36) | (byte15 << 28) | (byte16 << 20) | (byte17 << 12) | (byte18 << 4) | (byte19 >>> 4);
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 15) << 35) | (byte20 << 27) | (byte21 << 19) | (byte22 << 11) | (byte23 << 3) | (byte24 >>> 5);
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte24 & 31) << 34) | (byte25 << 26) | (byte26 << 18) | (byte27 << 10) | (byte28 << 2) | (byte29 >>> 6);
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte29 & 63) << 33) | (byte30 << 25) | (byte31 << 17) | (byte32 << 9) | (byte33 << 1) | (byte34 >>> 7);
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 127) << 32) | (byte35 << 24) | (byte36 << 16) | (byte37 << 8) | byte38;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte39 << 31) | (byte40 << 23) | (byte41 << 15) | (byte42 << 7) | (byte43 >>> 1);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 1) << 38) | (byte44 << 30) | (byte45 << 22) | (byte46 << 14) | (byte47 << 6) | (byte48 >>> 2);
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 3) << 37) | (byte49 << 29) | (byte50 << 21) | (byte51 << 13) | (byte52 << 5) | (byte53 >>> 3);
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte53 & 7) << 36) | (byte54 << 28) | (byte55 << 20) | (byte56 << 12) | (byte57 << 4) | (byte58 >>> 4);
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 15) << 35) | (byte59 << 27) | (byte60 << 19) | (byte61 << 11) | (byte62 << 3) | (byte63 >>> 5);
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte63 & 31) << 34) | (byte64 << 26) | (byte65 << 18) | (byte66 << 10) | (byte67 << 2) | (byte68 >>> 6);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 63) << 33) | (byte69 << 25) | (byte70 << 17) | (byte71 << 9) | (byte72 << 1) | (byte73 >>> 7);
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 127) << 32) | (byte74 << 24) | (byte75 << 16) | (byte76 << 8) | byte77;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte78 << 31) | (byte79 << 23) | (byte80 << 15) | (byte81 << 7) | (byte82 >>> 1);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 1) << 38) | (byte83 << 30) | (byte84 << 22) | (byte85 << 14) | (byte86 << 6) | (byte87 >>> 2);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 3) << 37) | (byte88 << 29) | (byte89 << 21) | (byte90 << 13) | (byte91 << 5) | (byte92 >>> 3);
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte92 & 7) << 36) | (byte93 << 28) | (byte94 << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 35) | (byte98 << 27) | (byte99 << 19) | (byte100 << 11) | (byte101 << 3) | (byte102 >>> 5);
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte102 & 31) << 34) | (byte103 << 26) | (byte104 << 18) | (byte105 << 10) | (byte106 << 2) | (byte107 >>> 6);
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte107 & 63) << 33) | (byte108 << 25) | (byte109 << 17) | (byte110 << 9) | (byte111 << 1) | (byte112 >>> 7);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 127) << 32) | (byte113 << 24) | (byte114 << 16) | (byte115 << 8) | byte116;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte117 << 31) | (byte118 << 23) | (byte119 << 15) | (byte120 << 7) | (byte121 >>> 1);
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 1) << 38) | (byte122 << 30) | (byte123 << 22) | (byte124 << 14) | (byte125 << 6) | (byte126 >>> 2);
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte126 & 3) << 37) | (byte127 << 29) | (byte128 << 21) | (byte129 << 13) | (byte130 << 5) | (byte131 >>> 3);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 7) << 36) | (byte132 << 28) | (byte133 << 20) | (byte134 << 12) | (byte135 << 4) | (byte136 >>> 4);
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte136 & 15) << 35) | (byte137 << 27) | (byte138 << 19) | (byte139 << 11) | (byte140 << 3) | (byte141 >>> 5);
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 31) << 34) | (byte142 << 26) | (byte143 << 18) | (byte144 << 10) | (byte145 << 2) | (byte146 >>> 6);
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte146 & 63) << 33) | (byte147 << 25) | (byte148 << 17) | (byte149 << 9) | (byte150 << 1) | (byte151 >>> 7);
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 127) << 32) | (byte152 << 24) | (byte153 << 16) | (byte154 << 8) | byte155;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte156 << 31) | (byte157 << 23) | (byte158 << 15) | (byte159 << 7) | (byte160 >>> 1);
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte160 & 1) << 38) | (byte161 << 30) | (byte162 << 22) | (byte163 << 14) | (byte164 << 6) | (byte165 >>> 2);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 3) << 37) | (byte166 << 29) | (byte167 << 21) | (byte168 << 13) | (byte169 << 5) | (byte170 >>> 3);
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 7) << 36) | (byte171 << 28) | (byte172 << 20) | (byte173 << 12) | (byte174 << 4) | (byte175 >>> 4);
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte175 & 15) << 35) | (byte176 << 27) | (byte177 << 19) | (byte178 << 11) | (byte179 << 3) | (byte180 >>> 5);
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte180 & 31) << 34) | (byte181 << 26) | (byte182 << 18) | (byte183 << 10) | (byte184 << 2) | (byte185 >>> 6);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 63) << 33) | (byte186 << 25) | (byte187 << 17) | (byte188 << 9) | (byte189 << 1) | (byte190 >>> 7);
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte190 & 127) << 32) | (byte191 << 24) | (byte192 << 16) | (byte193 << 8) | byte194;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte195 << 31) | (byte196 << 23) | (byte197 << 15) | (byte198 << 7) | (byte199 >>> 1);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 1) << 38) | (byte200 << 30) | (byte201 << 22) | (byte202 << 14) | (byte203 << 6) | (byte204 >>> 2);
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte204 & 3) << 37) | (byte205 << 29) | (byte206 << 21) | (byte207 << 13) | (byte208 << 5) | (byte209 >>> 3);
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 7) << 36) | (byte210 << 28) | (byte211 << 20) | (byte212 << 12) | (byte213 << 4) | (byte214 >>> 4);
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte214 & 15) << 35) | (byte215 << 27) | (byte216 << 19) | (byte217 << 11) | (byte218 << 3) | (byte219 >>> 5);
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte219 & 31) << 34) | (byte220 << 26) | (byte221 << 18) | (byte222 << 10) | (byte223 << 2) | (byte224 >>> 6);
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 63) << 33) | (byte225 << 25) | (byte226 << 17) | (byte227 << 9) | (byte228 << 1) | (byte229 >>> 7);
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte229 & 127) << 32) | (byte230 << 24) | (byte231 << 16) | (byte232 << 8) | byte233;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte234 << 31) | (byte235 << 23) | (byte236 << 15) | (byte237 << 7) | (byte238 >>> 1);
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte238 & 1) << 38) | (byte239 << 30) | (byte240 << 22) | (byte241 << 14) | (byte242 << 6) | (byte243 >>> 2);
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte243 & 3) << 37) | (byte244 << 29) | (byte245 << 21) | (byte246 << 13) | (byte247 << 5) | (byte248 >>> 3);
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte248 & 7) << 36) | (byte249 << 28) | (byte250 << 20) | (byte251 << 12) | (byte252 << 4) | (byte253 >>> 4);
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte253 & 15) << 35) | (byte254 << 27) | (byte255 << 19) | (byte256 << 11) | (byte257 << 3) | (byte258 >>> 5);
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte258 & 31) << 34) | (byte259 << 26) | (byte260 << 18) | (byte261 << 10) | (byte262 << 2) | (byte263 >>> 6);
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte263 & 63) << 33) | (byte264 << 25) | (byte265 << 17) | (byte266 << 9) | (byte267 << 1) | (byte268 >>> 7);
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte268 & 127) << 32) | (byte269 << 24) | (byte270 << 16) | (byte271 << 8) | byte272;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte273 << 31) | (byte274 << 23) | (byte275 << 15) | (byte276 << 7) | (byte277 >>> 1);
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte277 & 1) << 38) | (byte278 << 30) | (byte279 << 22) | (byte280 << 14) | (byte281 << 6) | (byte282 >>> 2);
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte282 & 3) << 37) | (byte283 << 29) | (byte284 << 21) | (byte285 << 13) | (byte286 << 5) | (byte287 >>> 3);
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte287 & 7) << 36) | (byte288 << 28) | (byte289 << 20) | (byte290 << 12) | (byte291 << 4) | (byte292 >>> 4);
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte292 & 15) << 35) | (byte293 << 27) | (byte294 << 19) | (byte295 << 11) | (byte296 << 3) | (byte297 >>> 5);
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte297 & 31) << 34) | (byte298 << 26) | (byte299 << 18) | (byte300 << 10) | (byte301 << 2) | (byte302 >>> 6);
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte302 & 63) << 33) | (byte303 << 25) | (byte304 << 17) | (byte305 << 9) | (byte306 << 1) | (byte307 >>> 7);
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte307 & 127) << 32) | (byte308 << 24) | (byte309 << 16) | (byte310 << 8) | byte311;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked59.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked59.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked59.java (copie de travail)
@@ -1,855 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked59 extends BulkOperation {
- @Override
- public int blockCount() {
- return 59;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 5;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 31L) << 54) | (block1 >>> 10);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 1023L) << 49) | (block2 >>> 15);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 32767L) << 44) | (block3 >>> 20);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 1048575L) << 39) | (block4 >>> 25);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 33554431L) << 34) | (block5 >>> 30);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 1073741823L) << 29) | (block6 >>> 35);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 34359738367L) << 24) | (block7 >>> 40);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 1099511627775L) << 19) | (block8 >>> 45);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 35184372088831L) << 14) | (block9 >>> 50);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1125899906842623L) << 9) | (block10 >>> 55);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 36028797018963967L) << 4) | (block11 >>> 60);
- values[valuesOffset++] = (block11 >>> 1) & 576460752303423487L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 1L) << 58) | (block12 >>> 6);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 63L) << 53) | (block13 >>> 11);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 2047L) << 48) | (block14 >>> 16);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 65535L) << 43) | (block15 >>> 21);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 2097151L) << 38) | (block16 >>> 26);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 67108863L) << 33) | (block17 >>> 31);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 2147483647L) << 28) | (block18 >>> 36);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 68719476735L) << 23) | (block19 >>> 41);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 2199023255551L) << 18) | (block20 >>> 46);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 70368744177663L) << 13) | (block21 >>> 51);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 2251799813685247L) << 8) | (block22 >>> 56);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 72057594037927935L) << 3) | (block23 >>> 61);
- values[valuesOffset++] = (block23 >>> 2) & 576460752303423487L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 3L) << 57) | (block24 >>> 7);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 127L) << 52) | (block25 >>> 12);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 4095L) << 47) | (block26 >>> 17);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 131071L) << 42) | (block27 >>> 22);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 4194303L) << 37) | (block28 >>> 27);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 134217727L) << 32) | (block29 >>> 32);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 4294967295L) << 27) | (block30 >>> 37);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 137438953471L) << 22) | (block31 >>> 42);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 4398046511103L) << 17) | (block32 >>> 47);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 140737488355327L) << 12) | (block33 >>> 52);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 4503599627370495L) << 7) | (block34 >>> 57);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 144115188075855871L) << 2) | (block35 >>> 62);
- values[valuesOffset++] = (block35 >>> 3) & 576460752303423487L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 7L) << 56) | (block36 >>> 8);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 255L) << 51) | (block37 >>> 13);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 8191L) << 46) | (block38 >>> 18);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 262143L) << 41) | (block39 >>> 23);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 8388607L) << 36) | (block40 >>> 28);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 268435455L) << 31) | (block41 >>> 33);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 8589934591L) << 26) | (block42 >>> 38);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 274877906943L) << 21) | (block43 >>> 43);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 8796093022207L) << 16) | (block44 >>> 48);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 281474976710655L) << 11) | (block45 >>> 53);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 9007199254740991L) << 6) | (block46 >>> 58);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 288230376151711743L) << 1) | (block47 >>> 63);
- values[valuesOffset++] = (block47 >>> 4) & 576460752303423487L;
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 15L) << 55) | (block48 >>> 9);
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 511L) << 50) | (block49 >>> 14);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 16383L) << 45) | (block50 >>> 19);
- final long block51 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block50 & 524287L) << 40) | (block51 >>> 24);
- final long block52 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block51 & 16777215L) << 35) | (block52 >>> 29);
- final long block53 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block52 & 536870911L) << 30) | (block53 >>> 34);
- final long block54 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block53 & 17179869183L) << 25) | (block54 >>> 39);
- final long block55 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block54 & 549755813887L) << 20) | (block55 >>> 44);
- final long block56 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block55 & 17592186044415L) << 15) | (block56 >>> 49);
- final long block57 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block56 & 562949953421311L) << 10) | (block57 >>> 54);
- final long block58 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block57 & 18014398509481983L) << 5) | (block58 >>> 59);
- values[valuesOffset++] = block58 & 576460752303423487L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 51) | (byte1 << 43) | (byte2 << 35) | (byte3 << 27) | (byte4 << 19) | (byte5 << 11) | (byte6 << 3) | (byte7 >>> 5);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 31) << 54) | (byte8 << 46) | (byte9 << 38) | (byte10 << 30) | (byte11 << 22) | (byte12 << 14) | (byte13 << 6) | (byte14 >>> 2);
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 3) << 57) | (byte15 << 49) | (byte16 << 41) | (byte17 << 33) | (byte18 << 25) | (byte19 << 17) | (byte20 << 9) | (byte21 << 1) | (byte22 >>> 7);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 127) << 52) | (byte23 << 44) | (byte24 << 36) | (byte25 << 28) | (byte26 << 20) | (byte27 << 12) | (byte28 << 4) | (byte29 >>> 4);
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte29 & 15) << 55) | (byte30 << 47) | (byte31 << 39) | (byte32 << 31) | (byte33 << 23) | (byte34 << 15) | (byte35 << 7) | (byte36 >>> 1);
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte36 & 1) << 58) | (byte37 << 50) | (byte38 << 42) | (byte39 << 34) | (byte40 << 26) | (byte41 << 18) | (byte42 << 10) | (byte43 << 2) | (byte44 >>> 6);
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte44 & 63) << 53) | (byte45 << 45) | (byte46 << 37) | (byte47 << 29) | (byte48 << 21) | (byte49 << 13) | (byte50 << 5) | (byte51 >>> 3);
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte51 & 7) << 56) | (byte52 << 48) | (byte53 << 40) | (byte54 << 32) | (byte55 << 24) | (byte56 << 16) | (byte57 << 8) | byte58;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte59 << 51) | (byte60 << 43) | (byte61 << 35) | (byte62 << 27) | (byte63 << 19) | (byte64 << 11) | (byte65 << 3) | (byte66 >>> 5);
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte66 & 31) << 54) | (byte67 << 46) | (byte68 << 38) | (byte69 << 30) | (byte70 << 22) | (byte71 << 14) | (byte72 << 6) | (byte73 >>> 2);
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 3) << 57) | (byte74 << 49) | (byte75 << 41) | (byte76 << 33) | (byte77 << 25) | (byte78 << 17) | (byte79 << 9) | (byte80 << 1) | (byte81 >>> 7);
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 127) << 52) | (byte82 << 44) | (byte83 << 36) | (byte84 << 28) | (byte85 << 20) | (byte86 << 12) | (byte87 << 4) | (byte88 >>> 4);
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte88 & 15) << 55) | (byte89 << 47) | (byte90 << 39) | (byte91 << 31) | (byte92 << 23) | (byte93 << 15) | (byte94 << 7) | (byte95 >>> 1);
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte95 & 1) << 58) | (byte96 << 50) | (byte97 << 42) | (byte98 << 34) | (byte99 << 26) | (byte100 << 18) | (byte101 << 10) | (byte102 << 2) | (byte103 >>> 6);
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte103 & 63) << 53) | (byte104 << 45) | (byte105 << 37) | (byte106 << 29) | (byte107 << 21) | (byte108 << 13) | (byte109 << 5) | (byte110 >>> 3);
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte110 & 7) << 56) | (byte111 << 48) | (byte112 << 40) | (byte113 << 32) | (byte114 << 24) | (byte115 << 16) | (byte116 << 8) | byte117;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte118 << 51) | (byte119 << 43) | (byte120 << 35) | (byte121 << 27) | (byte122 << 19) | (byte123 << 11) | (byte124 << 3) | (byte125 >>> 5);
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte125 & 31) << 54) | (byte126 << 46) | (byte127 << 38) | (byte128 << 30) | (byte129 << 22) | (byte130 << 14) | (byte131 << 6) | (byte132 >>> 2);
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte132 & 3) << 57) | (byte133 << 49) | (byte134 << 41) | (byte135 << 33) | (byte136 << 25) | (byte137 << 17) | (byte138 << 9) | (byte139 << 1) | (byte140 >>> 7);
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 127) << 52) | (byte141 << 44) | (byte142 << 36) | (byte143 << 28) | (byte144 << 20) | (byte145 << 12) | (byte146 << 4) | (byte147 >>> 4);
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte147 & 15) << 55) | (byte148 << 47) | (byte149 << 39) | (byte150 << 31) | (byte151 << 23) | (byte152 << 15) | (byte153 << 7) | (byte154 >>> 1);
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte154 & 1) << 58) | (byte155 << 50) | (byte156 << 42) | (byte157 << 34) | (byte158 << 26) | (byte159 << 18) | (byte160 << 10) | (byte161 << 2) | (byte162 >>> 6);
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 63) << 53) | (byte163 << 45) | (byte164 << 37) | (byte165 << 29) | (byte166 << 21) | (byte167 << 13) | (byte168 << 5) | (byte169 >>> 3);
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte169 & 7) << 56) | (byte170 << 48) | (byte171 << 40) | (byte172 << 32) | (byte173 << 24) | (byte174 << 16) | (byte175 << 8) | byte176;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte177 << 51) | (byte178 << 43) | (byte179 << 35) | (byte180 << 27) | (byte181 << 19) | (byte182 << 11) | (byte183 << 3) | (byte184 >>> 5);
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 31) << 54) | (byte185 << 46) | (byte186 << 38) | (byte187 << 30) | (byte188 << 22) | (byte189 << 14) | (byte190 << 6) | (byte191 >>> 2);
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte191 & 3) << 57) | (byte192 << 49) | (byte193 << 41) | (byte194 << 33) | (byte195 << 25) | (byte196 << 17) | (byte197 << 9) | (byte198 << 1) | (byte199 >>> 7);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 127) << 52) | (byte200 << 44) | (byte201 << 36) | (byte202 << 28) | (byte203 << 20) | (byte204 << 12) | (byte205 << 4) | (byte206 >>> 4);
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte206 & 15) << 55) | (byte207 << 47) | (byte208 << 39) | (byte209 << 31) | (byte210 << 23) | (byte211 << 15) | (byte212 << 7) | (byte213 >>> 1);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 1) << 58) | (byte214 << 50) | (byte215 << 42) | (byte216 << 34) | (byte217 << 26) | (byte218 << 18) | (byte219 << 10) | (byte220 << 2) | (byte221 >>> 6);
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte221 & 63) << 53) | (byte222 << 45) | (byte223 << 37) | (byte224 << 29) | (byte225 << 21) | (byte226 << 13) | (byte227 << 5) | (byte228 >>> 3);
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 7) << 56) | (byte229 << 48) | (byte230 << 40) | (byte231 << 32) | (byte232 << 24) | (byte233 << 16) | (byte234 << 8) | byte235;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte236 << 51) | (byte237 << 43) | (byte238 << 35) | (byte239 << 27) | (byte240 << 19) | (byte241 << 11) | (byte242 << 3) | (byte243 >>> 5);
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte243 & 31) << 54) | (byte244 << 46) | (byte245 << 38) | (byte246 << 30) | (byte247 << 22) | (byte248 << 14) | (byte249 << 6) | (byte250 >>> 2);
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte250 & 3) << 57) | (byte251 << 49) | (byte252 << 41) | (byte253 << 33) | (byte254 << 25) | (byte255 << 17) | (byte256 << 9) | (byte257 << 1) | (byte258 >>> 7);
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte258 & 127) << 52) | (byte259 << 44) | (byte260 << 36) | (byte261 << 28) | (byte262 << 20) | (byte263 << 12) | (byte264 << 4) | (byte265 >>> 4);
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte265 & 15) << 55) | (byte266 << 47) | (byte267 << 39) | (byte268 << 31) | (byte269 << 23) | (byte270 << 15) | (byte271 << 7) | (byte272 >>> 1);
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte272 & 1) << 58) | (byte273 << 50) | (byte274 << 42) | (byte275 << 34) | (byte276 << 26) | (byte277 << 18) | (byte278 << 10) | (byte279 << 2) | (byte280 >>> 6);
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte280 & 63) << 53) | (byte281 << 45) | (byte282 << 37) | (byte283 << 29) | (byte284 << 21) | (byte285 << 13) | (byte286 << 5) | (byte287 >>> 3);
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte287 & 7) << 56) | (byte288 << 48) | (byte289 << 40) | (byte290 << 32) | (byte291 << 24) | (byte292 << 16) | (byte293 << 8) | byte294;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte295 << 51) | (byte296 << 43) | (byte297 << 35) | (byte298 << 27) | (byte299 << 19) | (byte300 << 11) | (byte301 << 3) | (byte302 >>> 5);
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte302 & 31) << 54) | (byte303 << 46) | (byte304 << 38) | (byte305 << 30) | (byte306 << 22) | (byte307 << 14) | (byte308 << 6) | (byte309 >>> 2);
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte309 & 3) << 57) | (byte310 << 49) | (byte311 << 41) | (byte312 << 33) | (byte313 << 25) | (byte314 << 17) | (byte315 << 9) | (byte316 << 1) | (byte317 >>> 7);
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte317 & 127) << 52) | (byte318 << 44) | (byte319 << 36) | (byte320 << 28) | (byte321 << 20) | (byte322 << 12) | (byte323 << 4) | (byte324 >>> 4);
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte324 & 15) << 55) | (byte325 << 47) | (byte326 << 39) | (byte327 << 31) | (byte328 << 23) | (byte329 << 15) | (byte330 << 7) | (byte331 >>> 1);
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte331 & 1) << 58) | (byte332 << 50) | (byte333 << 42) | (byte334 << 34) | (byte335 << 26) | (byte336 << 18) | (byte337 << 10) | (byte338 << 2) | (byte339 >>> 6);
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte339 & 63) << 53) | (byte340 << 45) | (byte341 << 37) | (byte342 << 29) | (byte343 << 21) | (byte344 << 13) | (byte345 << 5) | (byte346 >>> 3);
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte346 & 7) << 56) | (byte347 << 48) | (byte348 << 40) | (byte349 << 32) | (byte350 << 24) | (byte351 << 16) | (byte352 << 8) | byte353;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte354 << 51) | (byte355 << 43) | (byte356 << 35) | (byte357 << 27) | (byte358 << 19) | (byte359 << 11) | (byte360 << 3) | (byte361 >>> 5);
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte361 & 31) << 54) | (byte362 << 46) | (byte363 << 38) | (byte364 << 30) | (byte365 << 22) | (byte366 << 14) | (byte367 << 6) | (byte368 >>> 2);
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte368 & 3) << 57) | (byte369 << 49) | (byte370 << 41) | (byte371 << 33) | (byte372 << 25) | (byte373 << 17) | (byte374 << 9) | (byte375 << 1) | (byte376 >>> 7);
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte376 & 127) << 52) | (byte377 << 44) | (byte378 << 36) | (byte379 << 28) | (byte380 << 20) | (byte381 << 12) | (byte382 << 4) | (byte383 >>> 4);
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte383 & 15) << 55) | (byte384 << 47) | (byte385 << 39) | (byte386 << 31) | (byte387 << 23) | (byte388 << 15) | (byte389 << 7) | (byte390 >>> 1);
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte390 & 1) << 58) | (byte391 << 50) | (byte392 << 42) | (byte393 << 34) | (byte394 << 26) | (byte395 << 18) | (byte396 << 10) | (byte397 << 2) | (byte398 >>> 6);
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte398 & 63) << 53) | (byte399 << 45) | (byte400 << 37) | (byte401 << 29) | (byte402 << 21) | (byte403 << 13) | (byte404 << 5) | (byte405 >>> 3);
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- final long byte408 = blocks[blocksOffset++] & 0xFF;
- final long byte409 = blocks[blocksOffset++] & 0xFF;
- final long byte410 = blocks[blocksOffset++] & 0xFF;
- final long byte411 = blocks[blocksOffset++] & 0xFF;
- final long byte412 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte405 & 7) << 56) | (byte406 << 48) | (byte407 << 40) | (byte408 << 32) | (byte409 << 24) | (byte410 << 16) | (byte411 << 8) | byte412;
- final long byte413 = blocks[blocksOffset++] & 0xFF;
- final long byte414 = blocks[blocksOffset++] & 0xFF;
- final long byte415 = blocks[blocksOffset++] & 0xFF;
- final long byte416 = blocks[blocksOffset++] & 0xFF;
- final long byte417 = blocks[blocksOffset++] & 0xFF;
- final long byte418 = blocks[blocksOffset++] & 0xFF;
- final long byte419 = blocks[blocksOffset++] & 0xFF;
- final long byte420 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte413 << 51) | (byte414 << 43) | (byte415 << 35) | (byte416 << 27) | (byte417 << 19) | (byte418 << 11) | (byte419 << 3) | (byte420 >>> 5);
- final long byte421 = blocks[blocksOffset++] & 0xFF;
- final long byte422 = blocks[blocksOffset++] & 0xFF;
- final long byte423 = blocks[blocksOffset++] & 0xFF;
- final long byte424 = blocks[blocksOffset++] & 0xFF;
- final long byte425 = blocks[blocksOffset++] & 0xFF;
- final long byte426 = blocks[blocksOffset++] & 0xFF;
- final long byte427 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte420 & 31) << 54) | (byte421 << 46) | (byte422 << 38) | (byte423 << 30) | (byte424 << 22) | (byte425 << 14) | (byte426 << 6) | (byte427 >>> 2);
- final long byte428 = blocks[blocksOffset++] & 0xFF;
- final long byte429 = blocks[blocksOffset++] & 0xFF;
- final long byte430 = blocks[blocksOffset++] & 0xFF;
- final long byte431 = blocks[blocksOffset++] & 0xFF;
- final long byte432 = blocks[blocksOffset++] & 0xFF;
- final long byte433 = blocks[blocksOffset++] & 0xFF;
- final long byte434 = blocks[blocksOffset++] & 0xFF;
- final long byte435 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte427 & 3) << 57) | (byte428 << 49) | (byte429 << 41) | (byte430 << 33) | (byte431 << 25) | (byte432 << 17) | (byte433 << 9) | (byte434 << 1) | (byte435 >>> 7);
- final long byte436 = blocks[blocksOffset++] & 0xFF;
- final long byte437 = blocks[blocksOffset++] & 0xFF;
- final long byte438 = blocks[blocksOffset++] & 0xFF;
- final long byte439 = blocks[blocksOffset++] & 0xFF;
- final long byte440 = blocks[blocksOffset++] & 0xFF;
- final long byte441 = blocks[blocksOffset++] & 0xFF;
- final long byte442 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte435 & 127) << 52) | (byte436 << 44) | (byte437 << 36) | (byte438 << 28) | (byte439 << 20) | (byte440 << 12) | (byte441 << 4) | (byte442 >>> 4);
- final long byte443 = blocks[blocksOffset++] & 0xFF;
- final long byte444 = blocks[blocksOffset++] & 0xFF;
- final long byte445 = blocks[blocksOffset++] & 0xFF;
- final long byte446 = blocks[blocksOffset++] & 0xFF;
- final long byte447 = blocks[blocksOffset++] & 0xFF;
- final long byte448 = blocks[blocksOffset++] & 0xFF;
- final long byte449 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte442 & 15) << 55) | (byte443 << 47) | (byte444 << 39) | (byte445 << 31) | (byte446 << 23) | (byte447 << 15) | (byte448 << 7) | (byte449 >>> 1);
- final long byte450 = blocks[blocksOffset++] & 0xFF;
- final long byte451 = blocks[blocksOffset++] & 0xFF;
- final long byte452 = blocks[blocksOffset++] & 0xFF;
- final long byte453 = blocks[blocksOffset++] & 0xFF;
- final long byte454 = blocks[blocksOffset++] & 0xFF;
- final long byte455 = blocks[blocksOffset++] & 0xFF;
- final long byte456 = blocks[blocksOffset++] & 0xFF;
- final long byte457 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte449 & 1) << 58) | (byte450 << 50) | (byte451 << 42) | (byte452 << 34) | (byte453 << 26) | (byte454 << 18) | (byte455 << 10) | (byte456 << 2) | (byte457 >>> 6);
- final long byte458 = blocks[blocksOffset++] & 0xFF;
- final long byte459 = blocks[blocksOffset++] & 0xFF;
- final long byte460 = blocks[blocksOffset++] & 0xFF;
- final long byte461 = blocks[blocksOffset++] & 0xFF;
- final long byte462 = blocks[blocksOffset++] & 0xFF;
- final long byte463 = blocks[blocksOffset++] & 0xFF;
- final long byte464 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte457 & 63) << 53) | (byte458 << 45) | (byte459 << 37) | (byte460 << 29) | (byte461 << 21) | (byte462 << 13) | (byte463 << 5) | (byte464 >>> 3);
- final long byte465 = blocks[blocksOffset++] & 0xFF;
- final long byte466 = blocks[blocksOffset++] & 0xFF;
- final long byte467 = blocks[blocksOffset++] & 0xFF;
- final long byte468 = blocks[blocksOffset++] & 0xFF;
- final long byte469 = blocks[blocksOffset++] & 0xFF;
- final long byte470 = blocks[blocksOffset++] & 0xFF;
- final long byte471 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte464 & 7) << 56) | (byte465 << 48) | (byte466 << 40) | (byte467 << 32) | (byte468 << 24) | (byte469 << 16) | (byte470 << 8) | byte471;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 58);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 53);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 57);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 51);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 55);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 58);
- blocks[blocksOffset++] = (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 53);
- blocks[blocksOffset++] = (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 57);
- blocks[blocksOffset++] = (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 51);
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 55);
- blocks[blocksOffset++] = (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked4.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked4.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked4.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked4 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPacked4 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 16;
+ public BulkOperationPacked4() {
+ super(4);
+ assert blockCount() == 1;
+ assert valueCount() == 16;
}
@Override
@@ -147,22 +144,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 4) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 4) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked8.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked8.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked8.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked8 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPacked8 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 8;
+ public BulkOperationPacked8() {
+ super(8);
+ assert blockCount() == 1;
+ assert valueCount() == 8;
}
@Override
@@ -115,22 +112,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 8) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 8) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock1.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock1.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock1.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock1 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock1 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPackedSingleBlock1() {
+ super(1);
}
@Override
@@ -339,22 +334,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 63);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 1) | (values[valuesOffset++] << 2) | (values[valuesOffset++] << 3) | (values[valuesOffset++] << 4) | (values[valuesOffset++] << 5) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 7) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 11) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 53) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 55) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 57) | (values[valuesOffset++] << 58) | (values[valuesOffset++] << 59) | (values[valuesOffset++] << 60) | (values[valuesOffset++] << 61) | (values[valuesOffset++] << 62) | (values[valuesOffset++] << 63);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock5.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock5.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock5.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock5 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock5 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 12;
+ public BulkOperationPackedSingleBlock5() {
+ super(5);
}
@Override
@@ -131,22 +126,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 55);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 5) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 55);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked20.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked20.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked20.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked20 extends BulkOperation {
- @Override
- public int blockCount() {
- return 5;
- }
+final class BulkOperationPacked20 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 16;
+ public BulkOperationPacked20() {
+ super(20);
+ assert blockCount() == 5;
+ assert valueCount() == 16;
}
@Override
@@ -219,30 +216,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 20) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 20) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked12.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked12.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked12.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked12 extends BulkOperation {
- @Override
- public int blockCount() {
- return 3;
- }
+final class BulkOperationPacked12 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 16;
+ public BulkOperationPacked12() {
+ super(12);
+ assert blockCount() == 3;
+ assert valueCount() == 16;
}
@Override
@@ -183,26 +180,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 12) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 12) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked40.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked40.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked40.java (copie de travail)
@@ -1,149 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked40 extends BulkOperation {
- @Override
- public int blockCount() {
- return 5;
- }
-
- @Override
- public int valueCount() {
- return 8;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 24;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 16777215L) << 16) | (block1 >>> 48);
- values[valuesOffset++] = (block1 >>> 8) & 1099511627775L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 255L) << 32) | (block2 >>> 32);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4294967295L) << 8) | (block3 >>> 56);
- values[valuesOffset++] = (block3 >>> 16) & 1099511627775L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 65535L) << 24) | (block4 >>> 40);
- values[valuesOffset++] = block4 & 1099511627775L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 32) | (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte5 << 32) | (byte6 << 24) | (byte7 << 16) | (byte8 << 8) | byte9;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte10 << 32) | (byte11 << 24) | (byte12 << 16) | (byte13 << 8) | byte14;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte15 << 32) | (byte16 << 24) | (byte17 << 16) | (byte18 << 8) | byte19;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte20 << 32) | (byte21 << 24) | (byte22 << 16) | (byte23 << 8) | byte24;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte25 << 32) | (byte26 << 24) | (byte27 << 16) | (byte28 << 8) | byte29;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte30 << 32) | (byte31 << 24) | (byte32 << 16) | (byte33 << 8) | byte34;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte35 << 32) | (byte36 << 24) | (byte37 << 16) | (byte38 << 8) | byte39;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked32.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked32.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked32.java (copie de travail)
@@ -1,112 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked32 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
-
- @Override
- public int valueCount() {
- return 2;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 32);
- values[valuesOffset++] = (int) (block0 & 4294967295L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 24) | (byte1 << 16) | (byte2 << 8) | byte3;
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte4 << 24) | (byte5 << 16) | (byte6 << 8) | byte7;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 32;
- values[valuesOffset++] = block0 & 4294967295L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 24) | (byte1 << 16) | (byte2 << 8) | byte3;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte4 << 24) | (byte5 << 16) | (byte6 << 8) | byte7;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked60.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked60.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked60.java (copie de travail)
@@ -1,275 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked60 extends BulkOperation {
- @Override
- public int blockCount() {
- return 15;
- }
-
- @Override
- public int valueCount() {
- return 16;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 4;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 15L) << 56) | (block1 >>> 8);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 255L) << 52) | (block2 >>> 12);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4095L) << 48) | (block3 >>> 16);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 65535L) << 44) | (block4 >>> 20);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1048575L) << 40) | (block5 >>> 24);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 16777215L) << 36) | (block6 >>> 28);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 268435455L) << 32) | (block7 >>> 32);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 4294967295L) << 28) | (block8 >>> 36);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 68719476735L) << 24) | (block9 >>> 40);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1099511627775L) << 20) | (block10 >>> 44);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 17592186044415L) << 16) | (block11 >>> 48);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 281474976710655L) << 12) | (block12 >>> 52);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4503599627370495L) << 8) | (block13 >>> 56);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 72057594037927935L) << 4) | (block14 >>> 60);
- values[valuesOffset++] = block14 & 1152921504606846975L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 52) | (byte1 << 44) | (byte2 << 36) | (byte3 << 28) | (byte4 << 20) | (byte5 << 12) | (byte6 << 4) | (byte7 >>> 4);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 15) << 56) | (byte8 << 48) | (byte9 << 40) | (byte10 << 32) | (byte11 << 24) | (byte12 << 16) | (byte13 << 8) | byte14;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte15 << 52) | (byte16 << 44) | (byte17 << 36) | (byte18 << 28) | (byte19 << 20) | (byte20 << 12) | (byte21 << 4) | (byte22 >>> 4);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 15) << 56) | (byte23 << 48) | (byte24 << 40) | (byte25 << 32) | (byte26 << 24) | (byte27 << 16) | (byte28 << 8) | byte29;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte30 << 52) | (byte31 << 44) | (byte32 << 36) | (byte33 << 28) | (byte34 << 20) | (byte35 << 12) | (byte36 << 4) | (byte37 >>> 4);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 15) << 56) | (byte38 << 48) | (byte39 << 40) | (byte40 << 32) | (byte41 << 24) | (byte42 << 16) | (byte43 << 8) | byte44;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte45 << 52) | (byte46 << 44) | (byte47 << 36) | (byte48 << 28) | (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 56) | (byte53 << 48) | (byte54 << 40) | (byte55 << 32) | (byte56 << 24) | (byte57 << 16) | (byte58 << 8) | byte59;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte60 << 52) | (byte61 << 44) | (byte62 << 36) | (byte63 << 28) | (byte64 << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 56) | (byte68 << 48) | (byte69 << 40) | (byte70 << 32) | (byte71 << 24) | (byte72 << 16) | (byte73 << 8) | byte74;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte75 << 52) | (byte76 << 44) | (byte77 << 36) | (byte78 << 28) | (byte79 << 20) | (byte80 << 12) | (byte81 << 4) | (byte82 >>> 4);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 15) << 56) | (byte83 << 48) | (byte84 << 40) | (byte85 << 32) | (byte86 << 24) | (byte87 << 16) | (byte88 << 8) | byte89;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte90 << 52) | (byte91 << 44) | (byte92 << 36) | (byte93 << 28) | (byte94 << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 56) | (byte98 << 48) | (byte99 << 40) | (byte100 << 32) | (byte101 << 24) | (byte102 << 16) | (byte103 << 8) | byte104;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte105 << 52) | (byte106 << 44) | (byte107 << 36) | (byte108 << 28) | (byte109 << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 56) | (byte113 << 48) | (byte114 << 40) | (byte115 << 32) | (byte116 << 24) | (byte117 << 16) | (byte118 << 8) | byte119;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked24.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked24.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked24.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked24 extends BulkOperation {
- @Override
- public int blockCount() {
- return 3;
- }
+final class BulkOperationPacked24 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 8;
+ public BulkOperationPacked24() {
+ super(24);
+ assert blockCount() == 3;
+ assert valueCount() == 8;
}
@Override
@@ -151,26 +148,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 24) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 24) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock9.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock9.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock9.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock9 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock9 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 7;
+ public BulkOperationPackedSingleBlock9() {
+ super(9);
}
@Override
@@ -111,22 +106,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 54);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 54);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked52.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked52.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked52.java (copie de travail)
@@ -1,253 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked52 extends BulkOperation {
- @Override
- public int blockCount() {
- return 13;
- }
-
- @Override
- public int valueCount() {
- return 16;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 12;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 4095L) << 40) | (block1 >>> 24);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 16777215L) << 28) | (block2 >>> 36);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 68719476735L) << 16) | (block3 >>> 48);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 281474976710655L) << 4) | (block4 >>> 60);
- values[valuesOffset++] = (block4 >>> 8) & 4503599627370495L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 255L) << 44) | (block5 >>> 20);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 1048575L) << 32) | (block6 >>> 32);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 4294967295L) << 20) | (block7 >>> 44);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 17592186044415L) << 8) | (block8 >>> 56);
- values[valuesOffset++] = (block8 >>> 4) & 4503599627370495L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 15L) << 48) | (block9 >>> 16);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 65535L) << 36) | (block10 >>> 28);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 268435455L) << 24) | (block11 >>> 40);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 1099511627775L) << 12) | (block12 >>> 52);
- values[valuesOffset++] = block12 & 4503599627370495L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 44) | (byte1 << 36) | (byte2 << 28) | (byte3 << 20) | (byte4 << 12) | (byte5 << 4) | (byte6 >>> 4);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 15) << 48) | (byte7 << 40) | (byte8 << 32) | (byte9 << 24) | (byte10 << 16) | (byte11 << 8) | byte12;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte13 << 44) | (byte14 << 36) | (byte15 << 28) | (byte16 << 20) | (byte17 << 12) | (byte18 << 4) | (byte19 >>> 4);
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 15) << 48) | (byte20 << 40) | (byte21 << 32) | (byte22 << 24) | (byte23 << 16) | (byte24 << 8) | byte25;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte26 << 44) | (byte27 << 36) | (byte28 << 28) | (byte29 << 20) | (byte30 << 12) | (byte31 << 4) | (byte32 >>> 4);
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 15) << 48) | (byte33 << 40) | (byte34 << 32) | (byte35 << 24) | (byte36 << 16) | (byte37 << 8) | byte38;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte39 << 44) | (byte40 << 36) | (byte41 << 28) | (byte42 << 20) | (byte43 << 12) | (byte44 << 4) | (byte45 >>> 4);
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 15) << 48) | (byte46 << 40) | (byte47 << 32) | (byte48 << 24) | (byte49 << 16) | (byte50 << 8) | byte51;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte52 << 44) | (byte53 << 36) | (byte54 << 28) | (byte55 << 20) | (byte56 << 12) | (byte57 << 4) | (byte58 >>> 4);
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 15) << 48) | (byte59 << 40) | (byte60 << 32) | (byte61 << 24) | (byte62 << 16) | (byte63 << 8) | byte64;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte65 << 44) | (byte66 << 36) | (byte67 << 28) | (byte68 << 20) | (byte69 << 12) | (byte70 << 4) | (byte71 >>> 4);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 15) << 48) | (byte72 << 40) | (byte73 << 32) | (byte74 << 24) | (byte75 << 16) | (byte76 << 8) | byte77;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte78 << 44) | (byte79 << 36) | (byte80 << 28) | (byte81 << 20) | (byte82 << 12) | (byte83 << 4) | (byte84 >>> 4);
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 15) << 48) | (byte85 << 40) | (byte86 << 32) | (byte87 << 24) | (byte88 << 16) | (byte89 << 8) | byte90;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte91 << 44) | (byte92 << 36) | (byte93 << 28) | (byte94 << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 48) | (byte98 << 40) | (byte99 << 32) | (byte100 << 24) | (byte101 << 16) | (byte102 << 8) | byte103;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked16.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked16.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked16.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked16 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPacked16 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 4;
+ public BulkOperationPacked16() {
+ super(16);
+ assert blockCount() == 1;
+ assert valueCount() == 4;
}
@Override
@@ -99,22 +96,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 16) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 16) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked44.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked44.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked44.java (copie de travail)
@@ -1,231 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked44 extends BulkOperation {
- @Override
- public int blockCount() {
- return 11;
- }
-
- @Override
- public int valueCount() {
- return 16;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 20;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 1048575L) << 24) | (block1 >>> 40);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 1099511627775L) << 4) | (block2 >>> 60);
- values[valuesOffset++] = (block2 >>> 16) & 17592186044415L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 65535L) << 28) | (block3 >>> 36);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 68719476735L) << 8) | (block4 >>> 56);
- values[valuesOffset++] = (block4 >>> 12) & 17592186044415L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 4095L) << 32) | (block5 >>> 32);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 4294967295L) << 12) | (block6 >>> 52);
- values[valuesOffset++] = (block6 >>> 8) & 17592186044415L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 255L) << 36) | (block7 >>> 28);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 268435455L) << 16) | (block8 >>> 48);
- values[valuesOffset++] = (block8 >>> 4) & 17592186044415L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 15L) << 40) | (block9 >>> 24);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 16777215L) << 20) | (block10 >>> 44);
- values[valuesOffset++] = block10 & 17592186044415L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 36) | (byte1 << 28) | (byte2 << 20) | (byte3 << 12) | (byte4 << 4) | (byte5 >>> 4);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 15) << 40) | (byte6 << 32) | (byte7 << 24) | (byte8 << 16) | (byte9 << 8) | byte10;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte11 << 36) | (byte12 << 28) | (byte13 << 20) | (byte14 << 12) | (byte15 << 4) | (byte16 >>> 4);
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 15) << 40) | (byte17 << 32) | (byte18 << 24) | (byte19 << 16) | (byte20 << 8) | byte21;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte22 << 36) | (byte23 << 28) | (byte24 << 20) | (byte25 << 12) | (byte26 << 4) | (byte27 >>> 4);
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte27 & 15) << 40) | (byte28 << 32) | (byte29 << 24) | (byte30 << 16) | (byte31 << 8) | byte32;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte33 << 36) | (byte34 << 28) | (byte35 << 20) | (byte36 << 12) | (byte37 << 4) | (byte38 >>> 4);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 15) << 40) | (byte39 << 32) | (byte40 << 24) | (byte41 << 16) | (byte42 << 8) | byte43;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte44 << 36) | (byte45 << 28) | (byte46 << 20) | (byte47 << 12) | (byte48 << 4) | (byte49 >>> 4);
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte49 & 15) << 40) | (byte50 << 32) | (byte51 << 24) | (byte52 << 16) | (byte53 << 8) | byte54;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte55 << 36) | (byte56 << 28) | (byte57 << 20) | (byte58 << 12) | (byte59 << 4) | (byte60 >>> 4);
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte60 & 15) << 40) | (byte61 << 32) | (byte62 << 24) | (byte63 << 16) | (byte64 << 8) | byte65;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte66 << 36) | (byte67 << 28) | (byte68 << 20) | (byte69 << 12) | (byte70 << 4) | (byte71 >>> 4);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 15) << 40) | (byte72 << 32) | (byte73 << 24) | (byte74 << 16) | (byte75 << 8) | byte76;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte77 << 36) | (byte78 << 28) | (byte79 << 20) | (byte80 << 12) | (byte81 << 4) | (byte82 >>> 4);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 15) << 40) | (byte83 << 32) | (byte84 << 24) | (byte85 << 16) | (byte86 << 8) | byte87;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked36.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked36.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked36.java (copie de travail)
@@ -1,209 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked36 extends BulkOperation {
- @Override
- public int blockCount() {
- return 9;
- }
-
- @Override
- public int valueCount() {
- return 16;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 28;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 268435455L) << 8) | (block1 >>> 56);
- values[valuesOffset++] = (block1 >>> 20) & 68719476735L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 1048575L) << 16) | (block2 >>> 48);
- values[valuesOffset++] = (block2 >>> 12) & 68719476735L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4095L) << 24) | (block3 >>> 40);
- values[valuesOffset++] = (block3 >>> 4) & 68719476735L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 15L) << 32) | (block4 >>> 32);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 4294967295L) << 4) | (block5 >>> 60);
- values[valuesOffset++] = (block5 >>> 24) & 68719476735L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 16777215L) << 12) | (block6 >>> 52);
- values[valuesOffset++] = (block6 >>> 16) & 68719476735L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 65535L) << 20) | (block7 >>> 44);
- values[valuesOffset++] = (block7 >>> 8) & 68719476735L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 255L) << 28) | (block8 >>> 36);
- values[valuesOffset++] = block8 & 68719476735L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 28) | (byte1 << 20) | (byte2 << 12) | (byte3 << 4) | (byte4 >>> 4);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 15) << 32) | (byte5 << 24) | (byte6 << 16) | (byte7 << 8) | byte8;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte9 << 28) | (byte10 << 20) | (byte11 << 12) | (byte12 << 4) | (byte13 >>> 4);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 15) << 32) | (byte14 << 24) | (byte15 << 16) | (byte16 << 8) | byte17;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte18 << 28) | (byte19 << 20) | (byte20 << 12) | (byte21 << 4) | (byte22 >>> 4);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 15) << 32) | (byte23 << 24) | (byte24 << 16) | (byte25 << 8) | byte26;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte27 << 28) | (byte28 << 20) | (byte29 << 12) | (byte30 << 4) | (byte31 >>> 4);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 15) << 32) | (byte32 << 24) | (byte33 << 16) | (byte34 << 8) | byte35;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte36 << 28) | (byte37 << 20) | (byte38 << 12) | (byte39 << 4) | (byte40 >>> 4);
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 15) << 32) | (byte41 << 24) | (byte42 << 16) | (byte43 << 8) | byte44;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte45 << 28) | (byte46 << 20) | (byte47 << 12) | (byte48 << 4) | (byte49 >>> 4);
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte49 & 15) << 32) | (byte50 << 24) | (byte51 << 16) | (byte52 << 8) | byte53;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte54 << 28) | (byte55 << 20) | (byte56 << 12) | (byte57 << 4) | (byte58 >>> 4);
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 15) << 32) | (byte59 << 24) | (byte60 << 16) | (byte61 << 8) | byte62;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte63 << 28) | (byte64 << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 32) | (byte68 << 24) | (byte69 << 16) | (byte70 << 8) | byte71;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked64.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked64.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked64.java (copie de travail)
@@ -1,63 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.nio.LongBuffer;
-import java.nio.ByteBuffer;
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked64 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
-
- @Override
- public int valueCount() {
- return 1;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- System.arraycopy(blocks, blocksOffset, values, valuesOffset, valueCount() * iterations);
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- LongBuffer.wrap(values, valuesOffset, iterations * valueCount()).put(ByteBuffer.wrap(blocks, blocksOffset, 8 * iterations * blockCount()).asLongBuffer());
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- System.arraycopy(values, valuesOffset, blocks, blocksOffset, valueCount() * iterations);
- }
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked28.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked28.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked28.java (copie de travail)
@@ -1,288 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked28 extends BulkOperation {
- @Override
- public int blockCount() {
- return 7;
- }
-
- @Override
- public int valueCount() {
- return 16;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 36);
- values[valuesOffset++] = (int) ((block0 >>> 8) & 268435455L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 255L) << 20) | (block1 >>> 44));
- values[valuesOffset++] = (int) ((block1 >>> 16) & 268435455L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 65535L) << 12) | (block2 >>> 52));
- values[valuesOffset++] = (int) ((block2 >>> 24) & 268435455L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 16777215L) << 4) | (block3 >>> 60));
- values[valuesOffset++] = (int) ((block3 >>> 32) & 268435455L);
- values[valuesOffset++] = (int) ((block3 >>> 4) & 268435455L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 15L) << 24) | (block4 >>> 40));
- values[valuesOffset++] = (int) ((block4 >>> 12) & 268435455L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 4095L) << 16) | (block5 >>> 48));
- values[valuesOffset++] = (int) ((block5 >>> 20) & 268435455L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 1048575L) << 8) | (block6 >>> 56));
- values[valuesOffset++] = (int) ((block6 >>> 28) & 268435455L);
- values[valuesOffset++] = (int) (block6 & 268435455L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 20) | (byte1 << 12) | (byte2 << 4) | (byte3 >>> 4);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 15) << 24) | (byte4 << 16) | (byte5 << 8) | byte6;
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte7 << 20) | (byte8 << 12) | (byte9 << 4) | (byte10 >>> 4);
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 15) << 24) | (byte11 << 16) | (byte12 << 8) | byte13;
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte14 << 20) | (byte15 << 12) | (byte16 << 4) | (byte17 >>> 4);
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte17 & 15) << 24) | (byte18 << 16) | (byte19 << 8) | byte20;
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte21 << 20) | (byte22 << 12) | (byte23 << 4) | (byte24 >>> 4);
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte24 & 15) << 24) | (byte25 << 16) | (byte26 << 8) | byte27;
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte28 << 20) | (byte29 << 12) | (byte30 << 4) | (byte31 >>> 4);
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 15) << 24) | (byte32 << 16) | (byte33 << 8) | byte34;
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte35 << 20) | (byte36 << 12) | (byte37 << 4) | (byte38 >>> 4);
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 15) << 24) | (byte39 << 16) | (byte40 << 8) | byte41;
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte42 << 20) | (byte43 << 12) | (byte44 << 4) | (byte45 >>> 4);
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 15) << 24) | (byte46 << 16) | (byte47 << 8) | byte48;
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 24) | (byte53 << 16) | (byte54 << 8) | byte55;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 36;
- values[valuesOffset++] = (block0 >>> 8) & 268435455L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 255L) << 20) | (block1 >>> 44);
- values[valuesOffset++] = (block1 >>> 16) & 268435455L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 65535L) << 12) | (block2 >>> 52);
- values[valuesOffset++] = (block2 >>> 24) & 268435455L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 16777215L) << 4) | (block3 >>> 60);
- values[valuesOffset++] = (block3 >>> 32) & 268435455L;
- values[valuesOffset++] = (block3 >>> 4) & 268435455L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 15L) << 24) | (block4 >>> 40);
- values[valuesOffset++] = (block4 >>> 12) & 268435455L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 4095L) << 16) | (block5 >>> 48);
- values[valuesOffset++] = (block5 >>> 20) & 268435455L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 1048575L) << 8) | (block6 >>> 56);
- values[valuesOffset++] = (block6 >>> 28) & 268435455L;
- values[valuesOffset++] = block6 & 268435455L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 20) | (byte1 << 12) | (byte2 << 4) | (byte3 >>> 4);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 15) << 24) | (byte4 << 16) | (byte5 << 8) | byte6;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte7 << 20) | (byte8 << 12) | (byte9 << 4) | (byte10 >>> 4);
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 15) << 24) | (byte11 << 16) | (byte12 << 8) | byte13;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte14 << 20) | (byte15 << 12) | (byte16 << 4) | (byte17 >>> 4);
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte17 & 15) << 24) | (byte18 << 16) | (byte19 << 8) | byte20;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte21 << 20) | (byte22 << 12) | (byte23 << 4) | (byte24 >>> 4);
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte24 & 15) << 24) | (byte25 << 16) | (byte26 << 8) | byte27;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte28 << 20) | (byte29 << 12) | (byte30 << 4) | (byte31 >>> 4);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 15) << 24) | (byte32 << 16) | (byte33 << 8) | byte34;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte35 << 20) | (byte36 << 12) | (byte37 << 4) | (byte38 >>> 4);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 15) << 24) | (byte39 << 16) | (byte40 << 8) | byte41;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte42 << 20) | (byte43 << 12) | (byte44 << 4) | (byte45 >>> 4);
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 15) << 24) | (byte46 << 16) | (byte47 << 8) | byte48;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 24) | (byte53 << 16) | (byte54 << 8) | byte55;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 28) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 28) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked56.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked56.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked56.java (copie de travail)
@@ -1,171 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked56 extends BulkOperation {
- @Override
- public int blockCount() {
- return 7;
- }
-
- @Override
- public int valueCount() {
- return 8;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 8;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 255L) << 48) | (block1 >>> 16);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 65535L) << 40) | (block2 >>> 24);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 16777215L) << 32) | (block3 >>> 32);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 4294967295L) << 24) | (block4 >>> 40);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1099511627775L) << 16) | (block5 >>> 48);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 281474976710655L) << 8) | (block6 >>> 56);
- values[valuesOffset++] = block6 & 72057594037927935L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 48) | (byte1 << 40) | (byte2 << 32) | (byte3 << 24) | (byte4 << 16) | (byte5 << 8) | byte6;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte7 << 48) | (byte8 << 40) | (byte9 << 32) | (byte10 << 24) | (byte11 << 16) | (byte12 << 8) | byte13;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte14 << 48) | (byte15 << 40) | (byte16 << 32) | (byte17 << 24) | (byte18 << 16) | (byte19 << 8) | byte20;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte21 << 48) | (byte22 << 40) | (byte23 << 32) | (byte24 << 24) | (byte25 << 16) | (byte26 << 8) | byte27;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte28 << 48) | (byte29 << 40) | (byte30 << 32) | (byte31 << 24) | (byte32 << 16) | (byte33 << 8) | byte34;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte35 << 48) | (byte36 << 40) | (byte37 << 32) | (byte38 << 24) | (byte39 << 16) | (byte40 << 8) | byte41;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte42 << 48) | (byte43 << 40) | (byte44 << 32) | (byte45 << 24) | (byte46 << 16) | (byte47 << 8) | byte48;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte49 << 48) | (byte50 << 40) | (byte51 << 32) | (byte52 << 24) | (byte53 << 16) | (byte54 << 8) | byte55;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked48.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked48.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked48.java (copie de travail)
@@ -1,119 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked48 extends BulkOperation {
- @Override
- public int blockCount() {
- return 3;
- }
-
- @Override
- public int valueCount() {
- return 4;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 16;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 65535L) << 32) | (block1 >>> 32);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 4294967295L) << 16) | (block2 >>> 48);
- values[valuesOffset++] = block2 & 281474976710655L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 40) | (byte1 << 32) | (byte2 << 24) | (byte3 << 16) | (byte4 << 8) | byte5;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte6 << 40) | (byte7 << 32) | (byte8 << 24) | (byte9 << 16) | (byte10 << 8) | byte11;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte12 << 40) | (byte13 << 32) | (byte14 << 24) | (byte15 << 16) | (byte16 << 8) | byte17;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte18 << 40) | (byte19 << 32) | (byte20 << 24) | (byte21 << 16) | (byte22 << 8) | byte23;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock12.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock12.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock12.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock12 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock12 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 5;
+ public BulkOperationPackedSingleBlock12() {
+ super(12);
}
@Override
@@ -103,22 +98,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 48);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 48);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked1.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked1.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked1.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked1 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPacked1 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked1() {
+ super(1);
+ assert blockCount() == 1;
+ assert valueCount() == 64;
}
@Override
@@ -339,22 +336,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset++] & 0xffffffffL) << 1) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 62) | (values[valuesOffset++] << 61) | (values[valuesOffset++] << 60) | (values[valuesOffset++] << 59) | (values[valuesOffset++] << 58) | (values[valuesOffset++] << 57) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 55) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 53) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 11) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 7) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 5) | (values[valuesOffset++] << 4) | (values[valuesOffset++] << 3) | (values[valuesOffset++] << 2) | (values[valuesOffset++] << 1) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock32.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock32.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock32.java (copie de travail)
@@ -1,112 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPackedSingleBlock32 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
-
- @Override
- public int valueCount() {
- return 2;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block & 4294967295L);
- values[valuesOffset++] = (int) (block >>> 32);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = byte0 | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);
- values[valuesOffset++] = byte4 | (byte5 << 8) | (byte6 << 16) | (byte7 << 24);
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block = blocks[blocksOffset++];
- values[valuesOffset++] = block & 4294967295L;
- values[valuesOffset++] = block >>> 32;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = byte0 | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);
- values[valuesOffset++] = byte4 | (byte5 << 8) | (byte6 << 16) | (byte7 << 24);
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 32);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 32);
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock16.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock16.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock16.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock16 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock16 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 4;
+ public BulkOperationPackedSingleBlock16() {
+ super(16);
}
@Override
@@ -99,22 +94,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 48);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 48);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked5.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked5.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked5.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked5 extends BulkOperation {
- @Override
- public int blockCount() {
- return 5;
- }
+final class BulkOperationPacked5 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked5() {
+ super(5);
+ assert blockCount() == 5;
+ assert valueCount() == 64;
}
@Override
@@ -411,30 +408,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 5) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 58) | (values[valuesOffset++] << 53) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 57) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 7) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 11) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 55) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 5) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked9.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked9.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked9.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked9 extends BulkOperation {
- @Override
- public int blockCount() {
- return 9;
- }
+final class BulkOperationPacked9 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked9() {
+ super(9);
+ assert blockCount() == 9;
+ assert valueCount() == 64;
}
@Override
@@ -483,38 +480,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 9) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 11) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 53) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 9) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock2.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock2.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock2.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock2 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock2 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPackedSingleBlock2() {
+ super(2);
}
@Override
@@ -211,22 +206,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 62);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 2) | (values[valuesOffset++] << 4) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 58) | (values[valuesOffset++] << 60) | (values[valuesOffset++] << 62);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked21.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked21.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked21.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked21 extends BulkOperation {
- @Override
- public int blockCount() {
- return 21;
- }
+final class BulkOperationPacked21 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked21() {
+ super(21);
+ assert blockCount() == 21;
+ assert valueCount() == 64;
}
@Override
@@ -699,62 +696,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 21) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 21) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock6.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock6.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock6.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock6 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock6 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 10;
+ public BulkOperationPackedSingleBlock6() {
+ super(6);
}
@Override
@@ -123,22 +118,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 54);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 54);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked13.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked13.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked13.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked13 extends BulkOperation {
- @Override
- public int blockCount() {
- return 13;
- }
+final class BulkOperationPacked13 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked13() {
+ super(13);
+ assert blockCount() == 13;
+ assert valueCount() == 64;
}
@Override
@@ -555,46 +552,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 13) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 13) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked41.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked41.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked41.java (copie de travail)
@@ -1,657 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked41 extends BulkOperation {
- @Override
- public int blockCount() {
- return 41;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 23;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 8388607L) << 18) | (block1 >>> 46);
- values[valuesOffset++] = (block1 >>> 5) & 2199023255551L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 31L) << 36) | (block2 >>> 28);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 268435455L) << 13) | (block3 >>> 51);
- values[valuesOffset++] = (block3 >>> 10) & 2199023255551L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 1023L) << 31) | (block4 >>> 33);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 8589934591L) << 8) | (block5 >>> 56);
- values[valuesOffset++] = (block5 >>> 15) & 2199023255551L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 32767L) << 26) | (block6 >>> 38);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 274877906943L) << 3) | (block7 >>> 61);
- values[valuesOffset++] = (block7 >>> 20) & 2199023255551L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 1048575L) << 21) | (block8 >>> 43);
- values[valuesOffset++] = (block8 >>> 2) & 2199023255551L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 3L) << 39) | (block9 >>> 25);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 33554431L) << 16) | (block10 >>> 48);
- values[valuesOffset++] = (block10 >>> 7) & 2199023255551L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 127L) << 34) | (block11 >>> 30);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 1073741823L) << 11) | (block12 >>> 53);
- values[valuesOffset++] = (block12 >>> 12) & 2199023255551L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4095L) << 29) | (block13 >>> 35);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 34359738367L) << 6) | (block14 >>> 58);
- values[valuesOffset++] = (block14 >>> 17) & 2199023255551L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 131071L) << 24) | (block15 >>> 40);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 1099511627775L) << 1) | (block16 >>> 63);
- values[valuesOffset++] = (block16 >>> 22) & 2199023255551L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 4194303L) << 19) | (block17 >>> 45);
- values[valuesOffset++] = (block17 >>> 4) & 2199023255551L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 15L) << 37) | (block18 >>> 27);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 134217727L) << 14) | (block19 >>> 50);
- values[valuesOffset++] = (block19 >>> 9) & 2199023255551L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 511L) << 32) | (block20 >>> 32);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 4294967295L) << 9) | (block21 >>> 55);
- values[valuesOffset++] = (block21 >>> 14) & 2199023255551L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 16383L) << 27) | (block22 >>> 37);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 137438953471L) << 4) | (block23 >>> 60);
- values[valuesOffset++] = (block23 >>> 19) & 2199023255551L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 524287L) << 22) | (block24 >>> 42);
- values[valuesOffset++] = (block24 >>> 1) & 2199023255551L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 1L) << 40) | (block25 >>> 24);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 16777215L) << 17) | (block26 >>> 47);
- values[valuesOffset++] = (block26 >>> 6) & 2199023255551L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 63L) << 35) | (block27 >>> 29);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 536870911L) << 12) | (block28 >>> 52);
- values[valuesOffset++] = (block28 >>> 11) & 2199023255551L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 2047L) << 30) | (block29 >>> 34);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 17179869183L) << 7) | (block30 >>> 57);
- values[valuesOffset++] = (block30 >>> 16) & 2199023255551L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 65535L) << 25) | (block31 >>> 39);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 549755813887L) << 2) | (block32 >>> 62);
- values[valuesOffset++] = (block32 >>> 21) & 2199023255551L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 2097151L) << 20) | (block33 >>> 44);
- values[valuesOffset++] = (block33 >>> 3) & 2199023255551L;
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 7L) << 38) | (block34 >>> 26);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 67108863L) << 15) | (block35 >>> 49);
- values[valuesOffset++] = (block35 >>> 8) & 2199023255551L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 255L) << 33) | (block36 >>> 31);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 2147483647L) << 10) | (block37 >>> 54);
- values[valuesOffset++] = (block37 >>> 13) & 2199023255551L;
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 8191L) << 28) | (block38 >>> 36);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 68719476735L) << 5) | (block39 >>> 59);
- values[valuesOffset++] = (block39 >>> 18) & 2199023255551L;
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 262143L) << 23) | (block40 >>> 41);
- values[valuesOffset++] = block40 & 2199023255551L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 33) | (byte1 << 25) | (byte2 << 17) | (byte3 << 9) | (byte4 << 1) | (byte5 >>> 7);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 127) << 34) | (byte6 << 26) | (byte7 << 18) | (byte8 << 10) | (byte9 << 2) | (byte10 >>> 6);
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 63) << 35) | (byte11 << 27) | (byte12 << 19) | (byte13 << 11) | (byte14 << 3) | (byte15 >>> 5);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 31) << 36) | (byte16 << 28) | (byte17 << 20) | (byte18 << 12) | (byte19 << 4) | (byte20 >>> 4);
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte20 & 15) << 37) | (byte21 << 29) | (byte22 << 21) | (byte23 << 13) | (byte24 << 5) | (byte25 >>> 3);
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte25 & 7) << 38) | (byte26 << 30) | (byte27 << 22) | (byte28 << 14) | (byte29 << 6) | (byte30 >>> 2);
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte30 & 3) << 39) | (byte31 << 31) | (byte32 << 23) | (byte33 << 15) | (byte34 << 7) | (byte35 >>> 1);
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte35 & 1) << 40) | (byte36 << 32) | (byte37 << 24) | (byte38 << 16) | (byte39 << 8) | byte40;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte41 << 33) | (byte42 << 25) | (byte43 << 17) | (byte44 << 9) | (byte45 << 1) | (byte46 >>> 7);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 127) << 34) | (byte47 << 26) | (byte48 << 18) | (byte49 << 10) | (byte50 << 2) | (byte51 >>> 6);
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte51 & 63) << 35) | (byte52 << 27) | (byte53 << 19) | (byte54 << 11) | (byte55 << 3) | (byte56 >>> 5);
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 31) << 36) | (byte57 << 28) | (byte58 << 20) | (byte59 << 12) | (byte60 << 4) | (byte61 >>> 4);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 15) << 37) | (byte62 << 29) | (byte63 << 21) | (byte64 << 13) | (byte65 << 5) | (byte66 >>> 3);
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte66 & 7) << 38) | (byte67 << 30) | (byte68 << 22) | (byte69 << 14) | (byte70 << 6) | (byte71 >>> 2);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 3) << 39) | (byte72 << 31) | (byte73 << 23) | (byte74 << 15) | (byte75 << 7) | (byte76 >>> 1);
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 1) << 40) | (byte77 << 32) | (byte78 << 24) | (byte79 << 16) | (byte80 << 8) | byte81;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte82 << 33) | (byte83 << 25) | (byte84 << 17) | (byte85 << 9) | (byte86 << 1) | (byte87 >>> 7);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 127) << 34) | (byte88 << 26) | (byte89 << 18) | (byte90 << 10) | (byte91 << 2) | (byte92 >>> 6);
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte92 & 63) << 35) | (byte93 << 27) | (byte94 << 19) | (byte95 << 11) | (byte96 << 3) | (byte97 >>> 5);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 31) << 36) | (byte98 << 28) | (byte99 << 20) | (byte100 << 12) | (byte101 << 4) | (byte102 >>> 4);
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte102 & 15) << 37) | (byte103 << 29) | (byte104 << 21) | (byte105 << 13) | (byte106 << 5) | (byte107 >>> 3);
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte107 & 7) << 38) | (byte108 << 30) | (byte109 << 22) | (byte110 << 14) | (byte111 << 6) | (byte112 >>> 2);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 3) << 39) | (byte113 << 31) | (byte114 << 23) | (byte115 << 15) | (byte116 << 7) | (byte117 >>> 1);
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte117 & 1) << 40) | (byte118 << 32) | (byte119 << 24) | (byte120 << 16) | (byte121 << 8) | byte122;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte123 << 33) | (byte124 << 25) | (byte125 << 17) | (byte126 << 9) | (byte127 << 1) | (byte128 >>> 7);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 127) << 34) | (byte129 << 26) | (byte130 << 18) | (byte131 << 10) | (byte132 << 2) | (byte133 >>> 6);
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte133 & 63) << 35) | (byte134 << 27) | (byte135 << 19) | (byte136 << 11) | (byte137 << 3) | (byte138 >>> 5);
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte138 & 31) << 36) | (byte139 << 28) | (byte140 << 20) | (byte141 << 12) | (byte142 << 4) | (byte143 >>> 4);
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 15) << 37) | (byte144 << 29) | (byte145 << 21) | (byte146 << 13) | (byte147 << 5) | (byte148 >>> 3);
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 7) << 38) | (byte149 << 30) | (byte150 << 22) | (byte151 << 14) | (byte152 << 6) | (byte153 >>> 2);
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte153 & 3) << 39) | (byte154 << 31) | (byte155 << 23) | (byte156 << 15) | (byte157 << 7) | (byte158 >>> 1);
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte158 & 1) << 40) | (byte159 << 32) | (byte160 << 24) | (byte161 << 16) | (byte162 << 8) | byte163;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte164 << 33) | (byte165 << 25) | (byte166 << 17) | (byte167 << 9) | (byte168 << 1) | (byte169 >>> 7);
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte169 & 127) << 34) | (byte170 << 26) | (byte171 << 18) | (byte172 << 10) | (byte173 << 2) | (byte174 >>> 6);
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte174 & 63) << 35) | (byte175 << 27) | (byte176 << 19) | (byte177 << 11) | (byte178 << 3) | (byte179 >>> 5);
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte179 & 31) << 36) | (byte180 << 28) | (byte181 << 20) | (byte182 << 12) | (byte183 << 4) | (byte184 >>> 4);
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 15) << 37) | (byte185 << 29) | (byte186 << 21) | (byte187 << 13) | (byte188 << 5) | (byte189 >>> 3);
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte189 & 7) << 38) | (byte190 << 30) | (byte191 << 22) | (byte192 << 14) | (byte193 << 6) | (byte194 >>> 2);
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte194 & 3) << 39) | (byte195 << 31) | (byte196 << 23) | (byte197 << 15) | (byte198 << 7) | (byte199 >>> 1);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 1) << 40) | (byte200 << 32) | (byte201 << 24) | (byte202 << 16) | (byte203 << 8) | byte204;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte205 << 33) | (byte206 << 25) | (byte207 << 17) | (byte208 << 9) | (byte209 << 1) | (byte210 >>> 7);
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte210 & 127) << 34) | (byte211 << 26) | (byte212 << 18) | (byte213 << 10) | (byte214 << 2) | (byte215 >>> 6);
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte215 & 63) << 35) | (byte216 << 27) | (byte217 << 19) | (byte218 << 11) | (byte219 << 3) | (byte220 >>> 5);
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 31) << 36) | (byte221 << 28) | (byte222 << 20) | (byte223 << 12) | (byte224 << 4) | (byte225 >>> 4);
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte225 & 15) << 37) | (byte226 << 29) | (byte227 << 21) | (byte228 << 13) | (byte229 << 5) | (byte230 >>> 3);
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte230 & 7) << 38) | (byte231 << 30) | (byte232 << 22) | (byte233 << 14) | (byte234 << 6) | (byte235 >>> 2);
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte235 & 3) << 39) | (byte236 << 31) | (byte237 << 23) | (byte238 << 15) | (byte239 << 7) | (byte240 >>> 1);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 1) << 40) | (byte241 << 32) | (byte242 << 24) | (byte243 << 16) | (byte244 << 8) | byte245;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte246 << 33) | (byte247 << 25) | (byte248 << 17) | (byte249 << 9) | (byte250 << 1) | (byte251 >>> 7);
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte251 & 127) << 34) | (byte252 << 26) | (byte253 << 18) | (byte254 << 10) | (byte255 << 2) | (byte256 >>> 6);
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte256 & 63) << 35) | (byte257 << 27) | (byte258 << 19) | (byte259 << 11) | (byte260 << 3) | (byte261 >>> 5);
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte261 & 31) << 36) | (byte262 << 28) | (byte263 << 20) | (byte264 << 12) | (byte265 << 4) | (byte266 >>> 4);
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte266 & 15) << 37) | (byte267 << 29) | (byte268 << 21) | (byte269 << 13) | (byte270 << 5) | (byte271 >>> 3);
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte271 & 7) << 38) | (byte272 << 30) | (byte273 << 22) | (byte274 << 14) | (byte275 << 6) | (byte276 >>> 2);
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte276 & 3) << 39) | (byte277 << 31) | (byte278 << 23) | (byte279 << 15) | (byte280 << 7) | (byte281 >>> 1);
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte281 & 1) << 40) | (byte282 << 32) | (byte283 << 24) | (byte284 << 16) | (byte285 << 8) | byte286;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte287 << 33) | (byte288 << 25) | (byte289 << 17) | (byte290 << 9) | (byte291 << 1) | (byte292 >>> 7);
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte292 & 127) << 34) | (byte293 << 26) | (byte294 << 18) | (byte295 << 10) | (byte296 << 2) | (byte297 >>> 6);
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte297 & 63) << 35) | (byte298 << 27) | (byte299 << 19) | (byte300 << 11) | (byte301 << 3) | (byte302 >>> 5);
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte302 & 31) << 36) | (byte303 << 28) | (byte304 << 20) | (byte305 << 12) | (byte306 << 4) | (byte307 >>> 4);
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte307 & 15) << 37) | (byte308 << 29) | (byte309 << 21) | (byte310 << 13) | (byte311 << 5) | (byte312 >>> 3);
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte312 & 7) << 38) | (byte313 << 30) | (byte314 << 22) | (byte315 << 14) | (byte316 << 6) | (byte317 >>> 2);
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte317 & 3) << 39) | (byte318 << 31) | (byte319 << 23) | (byte320 << 15) | (byte321 << 7) | (byte322 >>> 1);
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte322 & 1) << 40) | (byte323 << 32) | (byte324 << 24) | (byte325 << 16) | (byte326 << 8) | byte327;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked33.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked33.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked33.java (copie de travail)
@@ -1,569 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked33 extends BulkOperation {
- @Override
- public int blockCount() {
- return 33;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 31;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 2147483647L) << 2) | (block1 >>> 62);
- values[valuesOffset++] = (block1 >>> 29) & 8589934591L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 536870911L) << 4) | (block2 >>> 60);
- values[valuesOffset++] = (block2 >>> 27) & 8589934591L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 134217727L) << 6) | (block3 >>> 58);
- values[valuesOffset++] = (block3 >>> 25) & 8589934591L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 33554431L) << 8) | (block4 >>> 56);
- values[valuesOffset++] = (block4 >>> 23) & 8589934591L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 8388607L) << 10) | (block5 >>> 54);
- values[valuesOffset++] = (block5 >>> 21) & 8589934591L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 2097151L) << 12) | (block6 >>> 52);
- values[valuesOffset++] = (block6 >>> 19) & 8589934591L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 524287L) << 14) | (block7 >>> 50);
- values[valuesOffset++] = (block7 >>> 17) & 8589934591L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 131071L) << 16) | (block8 >>> 48);
- values[valuesOffset++] = (block8 >>> 15) & 8589934591L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 32767L) << 18) | (block9 >>> 46);
- values[valuesOffset++] = (block9 >>> 13) & 8589934591L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 8191L) << 20) | (block10 >>> 44);
- values[valuesOffset++] = (block10 >>> 11) & 8589934591L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 2047L) << 22) | (block11 >>> 42);
- values[valuesOffset++] = (block11 >>> 9) & 8589934591L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 511L) << 24) | (block12 >>> 40);
- values[valuesOffset++] = (block12 >>> 7) & 8589934591L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 127L) << 26) | (block13 >>> 38);
- values[valuesOffset++] = (block13 >>> 5) & 8589934591L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 31L) << 28) | (block14 >>> 36);
- values[valuesOffset++] = (block14 >>> 3) & 8589934591L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 7L) << 30) | (block15 >>> 34);
- values[valuesOffset++] = (block15 >>> 1) & 8589934591L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 1L) << 32) | (block16 >>> 32);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 4294967295L) << 1) | (block17 >>> 63);
- values[valuesOffset++] = (block17 >>> 30) & 8589934591L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 1073741823L) << 3) | (block18 >>> 61);
- values[valuesOffset++] = (block18 >>> 28) & 8589934591L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 268435455L) << 5) | (block19 >>> 59);
- values[valuesOffset++] = (block19 >>> 26) & 8589934591L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 67108863L) << 7) | (block20 >>> 57);
- values[valuesOffset++] = (block20 >>> 24) & 8589934591L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 16777215L) << 9) | (block21 >>> 55);
- values[valuesOffset++] = (block21 >>> 22) & 8589934591L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 4194303L) << 11) | (block22 >>> 53);
- values[valuesOffset++] = (block22 >>> 20) & 8589934591L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 1048575L) << 13) | (block23 >>> 51);
- values[valuesOffset++] = (block23 >>> 18) & 8589934591L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 262143L) << 15) | (block24 >>> 49);
- values[valuesOffset++] = (block24 >>> 16) & 8589934591L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 65535L) << 17) | (block25 >>> 47);
- values[valuesOffset++] = (block25 >>> 14) & 8589934591L;
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 16383L) << 19) | (block26 >>> 45);
- values[valuesOffset++] = (block26 >>> 12) & 8589934591L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 4095L) << 21) | (block27 >>> 43);
- values[valuesOffset++] = (block27 >>> 10) & 8589934591L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 1023L) << 23) | (block28 >>> 41);
- values[valuesOffset++] = (block28 >>> 8) & 8589934591L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 255L) << 25) | (block29 >>> 39);
- values[valuesOffset++] = (block29 >>> 6) & 8589934591L;
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 63L) << 27) | (block30 >>> 37);
- values[valuesOffset++] = (block30 >>> 4) & 8589934591L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 15L) << 29) | (block31 >>> 35);
- values[valuesOffset++] = (block31 >>> 2) & 8589934591L;
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 3L) << 31) | (block32 >>> 33);
- values[valuesOffset++] = block32 & 8589934591L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 25) | (byte1 << 17) | (byte2 << 9) | (byte3 << 1) | (byte4 >>> 7);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 127) << 26) | (byte5 << 18) | (byte6 << 10) | (byte7 << 2) | (byte8 >>> 6);
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte8 & 63) << 27) | (byte9 << 19) | (byte10 << 11) | (byte11 << 3) | (byte12 >>> 5);
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 31) << 28) | (byte13 << 20) | (byte14 << 12) | (byte15 << 4) | (byte16 >>> 4);
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 15) << 29) | (byte17 << 21) | (byte18 << 13) | (byte19 << 5) | (byte20 >>> 3);
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte20 & 7) << 30) | (byte21 << 22) | (byte22 << 14) | (byte23 << 6) | (byte24 >>> 2);
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte24 & 3) << 31) | (byte25 << 23) | (byte26 << 15) | (byte27 << 7) | (byte28 >>> 1);
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 1) << 32) | (byte29 << 24) | (byte30 << 16) | (byte31 << 8) | byte32;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte33 << 25) | (byte34 << 17) | (byte35 << 9) | (byte36 << 1) | (byte37 >>> 7);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 127) << 26) | (byte38 << 18) | (byte39 << 10) | (byte40 << 2) | (byte41 >>> 6);
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte41 & 63) << 27) | (byte42 << 19) | (byte43 << 11) | (byte44 << 3) | (byte45 >>> 5);
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 31) << 28) | (byte46 << 20) | (byte47 << 12) | (byte48 << 4) | (byte49 >>> 4);
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte49 & 15) << 29) | (byte50 << 21) | (byte51 << 13) | (byte52 << 5) | (byte53 >>> 3);
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte53 & 7) << 30) | (byte54 << 22) | (byte55 << 14) | (byte56 << 6) | (byte57 >>> 2);
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte57 & 3) << 31) | (byte58 << 23) | (byte59 << 15) | (byte60 << 7) | (byte61 >>> 1);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 1) << 32) | (byte62 << 24) | (byte63 << 16) | (byte64 << 8) | byte65;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte66 << 25) | (byte67 << 17) | (byte68 << 9) | (byte69 << 1) | (byte70 >>> 7);
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte70 & 127) << 26) | (byte71 << 18) | (byte72 << 10) | (byte73 << 2) | (byte74 >>> 6);
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 63) << 27) | (byte75 << 19) | (byte76 << 11) | (byte77 << 3) | (byte78 >>> 5);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 31) << 28) | (byte79 << 20) | (byte80 << 12) | (byte81 << 4) | (byte82 >>> 4);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 15) << 29) | (byte83 << 21) | (byte84 << 13) | (byte85 << 5) | (byte86 >>> 3);
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte86 & 7) << 30) | (byte87 << 22) | (byte88 << 14) | (byte89 << 6) | (byte90 >>> 2);
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte90 & 3) << 31) | (byte91 << 23) | (byte92 << 15) | (byte93 << 7) | (byte94 >>> 1);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 1) << 32) | (byte95 << 24) | (byte96 << 16) | (byte97 << 8) | byte98;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte99 << 25) | (byte100 << 17) | (byte101 << 9) | (byte102 << 1) | (byte103 >>> 7);
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte103 & 127) << 26) | (byte104 << 18) | (byte105 << 10) | (byte106 << 2) | (byte107 >>> 6);
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte107 & 63) << 27) | (byte108 << 19) | (byte109 << 11) | (byte110 << 3) | (byte111 >>> 5);
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte111 & 31) << 28) | (byte112 << 20) | (byte113 << 12) | (byte114 << 4) | (byte115 >>> 4);
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte115 & 15) << 29) | (byte116 << 21) | (byte117 << 13) | (byte118 << 5) | (byte119 >>> 3);
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte119 & 7) << 30) | (byte120 << 22) | (byte121 << 14) | (byte122 << 6) | (byte123 >>> 2);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 3) << 31) | (byte124 << 23) | (byte125 << 15) | (byte126 << 7) | (byte127 >>> 1);
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte127 & 1) << 32) | (byte128 << 24) | (byte129 << 16) | (byte130 << 8) | byte131;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte132 << 25) | (byte133 << 17) | (byte134 << 9) | (byte135 << 1) | (byte136 >>> 7);
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte136 & 127) << 26) | (byte137 << 18) | (byte138 << 10) | (byte139 << 2) | (byte140 >>> 6);
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 63) << 27) | (byte141 << 19) | (byte142 << 11) | (byte143 << 3) | (byte144 >>> 5);
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte144 & 31) << 28) | (byte145 << 20) | (byte146 << 12) | (byte147 << 4) | (byte148 >>> 4);
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 15) << 29) | (byte149 << 21) | (byte150 << 13) | (byte151 << 5) | (byte152 >>> 3);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 7) << 30) | (byte153 << 22) | (byte154 << 14) | (byte155 << 6) | (byte156 >>> 2);
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte156 & 3) << 31) | (byte157 << 23) | (byte158 << 15) | (byte159 << 7) | (byte160 >>> 1);
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte160 & 1) << 32) | (byte161 << 24) | (byte162 << 16) | (byte163 << 8) | byte164;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte165 << 25) | (byte166 << 17) | (byte167 << 9) | (byte168 << 1) | (byte169 >>> 7);
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte169 & 127) << 26) | (byte170 << 18) | (byte171 << 10) | (byte172 << 2) | (byte173 >>> 6);
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte173 & 63) << 27) | (byte174 << 19) | (byte175 << 11) | (byte176 << 3) | (byte177 >>> 5);
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte177 & 31) << 28) | (byte178 << 20) | (byte179 << 12) | (byte180 << 4) | (byte181 >>> 4);
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 15) << 29) | (byte182 << 21) | (byte183 << 13) | (byte184 << 5) | (byte185 >>> 3);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 7) << 30) | (byte186 << 22) | (byte187 << 14) | (byte188 << 6) | (byte189 >>> 2);
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte189 & 3) << 31) | (byte190 << 23) | (byte191 << 15) | (byte192 << 7) | (byte193 >>> 1);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 1) << 32) | (byte194 << 24) | (byte195 << 16) | (byte196 << 8) | byte197;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte198 << 25) | (byte199 << 17) | (byte200 << 9) | (byte201 << 1) | (byte202 >>> 7);
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte202 & 127) << 26) | (byte203 << 18) | (byte204 << 10) | (byte205 << 2) | (byte206 >>> 6);
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte206 & 63) << 27) | (byte207 << 19) | (byte208 << 11) | (byte209 << 3) | (byte210 >>> 5);
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte210 & 31) << 28) | (byte211 << 20) | (byte212 << 12) | (byte213 << 4) | (byte214 >>> 4);
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte214 & 15) << 29) | (byte215 << 21) | (byte216 << 13) | (byte217 << 5) | (byte218 >>> 3);
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte218 & 7) << 30) | (byte219 << 22) | (byte220 << 14) | (byte221 << 6) | (byte222 >>> 2);
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte222 & 3) << 31) | (byte223 << 23) | (byte224 << 15) | (byte225 << 7) | (byte226 >>> 1);
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte226 & 1) << 32) | (byte227 << 24) | (byte228 << 16) | (byte229 << 8) | byte230;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte231 << 25) | (byte232 << 17) | (byte233 << 9) | (byte234 << 1) | (byte235 >>> 7);
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte235 & 127) << 26) | (byte236 << 18) | (byte237 << 10) | (byte238 << 2) | (byte239 >>> 6);
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte239 & 63) << 27) | (byte240 << 19) | (byte241 << 11) | (byte242 << 3) | (byte243 >>> 5);
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte243 & 31) << 28) | (byte244 << 20) | (byte245 << 12) | (byte246 << 4) | (byte247 >>> 4);
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte247 & 15) << 29) | (byte248 << 21) | (byte249 << 13) | (byte250 << 5) | (byte251 >>> 3);
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte251 & 7) << 30) | (byte252 << 22) | (byte253 << 14) | (byte254 << 6) | (byte255 >>> 2);
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte255 & 3) << 31) | (byte256 << 23) | (byte257 << 15) | (byte258 << 7) | (byte259 >>> 1);
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte259 & 1) << 32) | (byte260 << 24) | (byte261 << 16) | (byte262 << 8) | byte263;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked25.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked25.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked25.java (copie de travail)
@@ -1,840 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked25 extends BulkOperation {
- @Override
- public int blockCount() {
- return 25;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 39);
- values[valuesOffset++] = (int) ((block0 >>> 14) & 33554431L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 16383L) << 11) | (block1 >>> 53));
- values[valuesOffset++] = (int) ((block1 >>> 28) & 33554431L);
- values[valuesOffset++] = (int) ((block1 >>> 3) & 33554431L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 7L) << 22) | (block2 >>> 42));
- values[valuesOffset++] = (int) ((block2 >>> 17) & 33554431L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 131071L) << 8) | (block3 >>> 56));
- values[valuesOffset++] = (int) ((block3 >>> 31) & 33554431L);
- values[valuesOffset++] = (int) ((block3 >>> 6) & 33554431L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 63L) << 19) | (block4 >>> 45));
- values[valuesOffset++] = (int) ((block4 >>> 20) & 33554431L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 1048575L) << 5) | (block5 >>> 59));
- values[valuesOffset++] = (int) ((block5 >>> 34) & 33554431L);
- values[valuesOffset++] = (int) ((block5 >>> 9) & 33554431L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 511L) << 16) | (block6 >>> 48));
- values[valuesOffset++] = (int) ((block6 >>> 23) & 33554431L);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block6 & 8388607L) << 2) | (block7 >>> 62));
- values[valuesOffset++] = (int) ((block7 >>> 37) & 33554431L);
- values[valuesOffset++] = (int) ((block7 >>> 12) & 33554431L);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block7 & 4095L) << 13) | (block8 >>> 51));
- values[valuesOffset++] = (int) ((block8 >>> 26) & 33554431L);
- values[valuesOffset++] = (int) ((block8 >>> 1) & 33554431L);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block8 & 1L) << 24) | (block9 >>> 40));
- values[valuesOffset++] = (int) ((block9 >>> 15) & 33554431L);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block9 & 32767L) << 10) | (block10 >>> 54));
- values[valuesOffset++] = (int) ((block10 >>> 29) & 33554431L);
- values[valuesOffset++] = (int) ((block10 >>> 4) & 33554431L);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block10 & 15L) << 21) | (block11 >>> 43));
- values[valuesOffset++] = (int) ((block11 >>> 18) & 33554431L);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block11 & 262143L) << 7) | (block12 >>> 57));
- values[valuesOffset++] = (int) ((block12 >>> 32) & 33554431L);
- values[valuesOffset++] = (int) ((block12 >>> 7) & 33554431L);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block12 & 127L) << 18) | (block13 >>> 46));
- values[valuesOffset++] = (int) ((block13 >>> 21) & 33554431L);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block13 & 2097151L) << 4) | (block14 >>> 60));
- values[valuesOffset++] = (int) ((block14 >>> 35) & 33554431L);
- values[valuesOffset++] = (int) ((block14 >>> 10) & 33554431L);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block14 & 1023L) << 15) | (block15 >>> 49));
- values[valuesOffset++] = (int) ((block15 >>> 24) & 33554431L);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block15 & 16777215L) << 1) | (block16 >>> 63));
- values[valuesOffset++] = (int) ((block16 >>> 38) & 33554431L);
- values[valuesOffset++] = (int) ((block16 >>> 13) & 33554431L);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block16 & 8191L) << 12) | (block17 >>> 52));
- values[valuesOffset++] = (int) ((block17 >>> 27) & 33554431L);
- values[valuesOffset++] = (int) ((block17 >>> 2) & 33554431L);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block17 & 3L) << 23) | (block18 >>> 41));
- values[valuesOffset++] = (int) ((block18 >>> 16) & 33554431L);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block18 & 65535L) << 9) | (block19 >>> 55));
- values[valuesOffset++] = (int) ((block19 >>> 30) & 33554431L);
- values[valuesOffset++] = (int) ((block19 >>> 5) & 33554431L);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block19 & 31L) << 20) | (block20 >>> 44));
- values[valuesOffset++] = (int) ((block20 >>> 19) & 33554431L);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block20 & 524287L) << 6) | (block21 >>> 58));
- values[valuesOffset++] = (int) ((block21 >>> 33) & 33554431L);
- values[valuesOffset++] = (int) ((block21 >>> 8) & 33554431L);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block21 & 255L) << 17) | (block22 >>> 47));
- values[valuesOffset++] = (int) ((block22 >>> 22) & 33554431L);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block22 & 4194303L) << 3) | (block23 >>> 61));
- values[valuesOffset++] = (int) ((block23 >>> 36) & 33554431L);
- values[valuesOffset++] = (int) ((block23 >>> 11) & 33554431L);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block23 & 2047L) << 14) | (block24 >>> 50));
- values[valuesOffset++] = (int) ((block24 >>> 25) & 33554431L);
- values[valuesOffset++] = (int) (block24 & 33554431L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 17) | (byte1 << 9) | (byte2 << 1) | (byte3 >>> 7);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 127) << 18) | (byte4 << 10) | (byte5 << 2) | (byte6 >>> 6);
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 63) << 19) | (byte7 << 11) | (byte8 << 3) | (byte9 >>> 5);
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 31) << 20) | (byte10 << 12) | (byte11 << 4) | (byte12 >>> 4);
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 15) << 21) | (byte13 << 13) | (byte14 << 5) | (byte15 >>> 3);
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 7) << 22) | (byte16 << 14) | (byte17 << 6) | (byte18 >>> 2);
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 3) << 23) | (byte19 << 15) | (byte20 << 7) | (byte21 >>> 1);
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 1) << 24) | (byte22 << 16) | (byte23 << 8) | byte24;
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte25 << 17) | (byte26 << 9) | (byte27 << 1) | (byte28 >>> 7);
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 127) << 18) | (byte29 << 10) | (byte30 << 2) | (byte31 >>> 6);
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 63) << 19) | (byte32 << 11) | (byte33 << 3) | (byte34 >>> 5);
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 31) << 20) | (byte35 << 12) | (byte36 << 4) | (byte37 >>> 4);
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 15) << 21) | (byte38 << 13) | (byte39 << 5) | (byte40 >>> 3);
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 7) << 22) | (byte41 << 14) | (byte42 << 6) | (byte43 >>> 2);
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 3) << 23) | (byte44 << 15) | (byte45 << 7) | (byte46 >>> 1);
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 1) << 24) | (byte47 << 16) | (byte48 << 8) | byte49;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte50 << 17) | (byte51 << 9) | (byte52 << 1) | (byte53 >>> 7);
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- final int byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte53 & 127) << 18) | (byte54 << 10) | (byte55 << 2) | (byte56 >>> 6);
- final int byte57 = blocks[blocksOffset++] & 0xFF;
- final int byte58 = blocks[blocksOffset++] & 0xFF;
- final int byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 63) << 19) | (byte57 << 11) | (byte58 << 3) | (byte59 >>> 5);
- final int byte60 = blocks[blocksOffset++] & 0xFF;
- final int byte61 = blocks[blocksOffset++] & 0xFF;
- final int byte62 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte59 & 31) << 20) | (byte60 << 12) | (byte61 << 4) | (byte62 >>> 4);
- final int byte63 = blocks[blocksOffset++] & 0xFF;
- final int byte64 = blocks[blocksOffset++] & 0xFF;
- final int byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte62 & 15) << 21) | (byte63 << 13) | (byte64 << 5) | (byte65 >>> 3);
- final int byte66 = blocks[blocksOffset++] & 0xFF;
- final int byte67 = blocks[blocksOffset++] & 0xFF;
- final int byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 7) << 22) | (byte66 << 14) | (byte67 << 6) | (byte68 >>> 2);
- final int byte69 = blocks[blocksOffset++] & 0xFF;
- final int byte70 = blocks[blocksOffset++] & 0xFF;
- final int byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 3) << 23) | (byte69 << 15) | (byte70 << 7) | (byte71 >>> 1);
- final int byte72 = blocks[blocksOffset++] & 0xFF;
- final int byte73 = blocks[blocksOffset++] & 0xFF;
- final int byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 1) << 24) | (byte72 << 16) | (byte73 << 8) | byte74;
- final int byte75 = blocks[blocksOffset++] & 0xFF;
- final int byte76 = blocks[blocksOffset++] & 0xFF;
- final int byte77 = blocks[blocksOffset++] & 0xFF;
- final int byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte75 << 17) | (byte76 << 9) | (byte77 << 1) | (byte78 >>> 7);
- final int byte79 = blocks[blocksOffset++] & 0xFF;
- final int byte80 = blocks[blocksOffset++] & 0xFF;
- final int byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 127) << 18) | (byte79 << 10) | (byte80 << 2) | (byte81 >>> 6);
- final int byte82 = blocks[blocksOffset++] & 0xFF;
- final int byte83 = blocks[blocksOffset++] & 0xFF;
- final int byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 63) << 19) | (byte82 << 11) | (byte83 << 3) | (byte84 >>> 5);
- final int byte85 = blocks[blocksOffset++] & 0xFF;
- final int byte86 = blocks[blocksOffset++] & 0xFF;
- final int byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 31) << 20) | (byte85 << 12) | (byte86 << 4) | (byte87 >>> 4);
- final int byte88 = blocks[blocksOffset++] & 0xFF;
- final int byte89 = blocks[blocksOffset++] & 0xFF;
- final int byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 15) << 21) | (byte88 << 13) | (byte89 << 5) | (byte90 >>> 3);
- final int byte91 = blocks[blocksOffset++] & 0xFF;
- final int byte92 = blocks[blocksOffset++] & 0xFF;
- final int byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte90 & 7) << 22) | (byte91 << 14) | (byte92 << 6) | (byte93 >>> 2);
- final int byte94 = blocks[blocksOffset++] & 0xFF;
- final int byte95 = blocks[blocksOffset++] & 0xFF;
- final int byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte93 & 3) << 23) | (byte94 << 15) | (byte95 << 7) | (byte96 >>> 1);
- final int byte97 = blocks[blocksOffset++] & 0xFF;
- final int byte98 = blocks[blocksOffset++] & 0xFF;
- final int byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 1) << 24) | (byte97 << 16) | (byte98 << 8) | byte99;
- final int byte100 = blocks[blocksOffset++] & 0xFF;
- final int byte101 = blocks[blocksOffset++] & 0xFF;
- final int byte102 = blocks[blocksOffset++] & 0xFF;
- final int byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte100 << 17) | (byte101 << 9) | (byte102 << 1) | (byte103 >>> 7);
- final int byte104 = blocks[blocksOffset++] & 0xFF;
- final int byte105 = blocks[blocksOffset++] & 0xFF;
- final int byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte103 & 127) << 18) | (byte104 << 10) | (byte105 << 2) | (byte106 >>> 6);
- final int byte107 = blocks[blocksOffset++] & 0xFF;
- final int byte108 = blocks[blocksOffset++] & 0xFF;
- final int byte109 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 63) << 19) | (byte107 << 11) | (byte108 << 3) | (byte109 >>> 5);
- final int byte110 = blocks[blocksOffset++] & 0xFF;
- final int byte111 = blocks[blocksOffset++] & 0xFF;
- final int byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte109 & 31) << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final int byte113 = blocks[blocksOffset++] & 0xFF;
- final int byte114 = blocks[blocksOffset++] & 0xFF;
- final int byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 21) | (byte113 << 13) | (byte114 << 5) | (byte115 >>> 3);
- final int byte116 = blocks[blocksOffset++] & 0xFF;
- final int byte117 = blocks[blocksOffset++] & 0xFF;
- final int byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte115 & 7) << 22) | (byte116 << 14) | (byte117 << 6) | (byte118 >>> 2);
- final int byte119 = blocks[blocksOffset++] & 0xFF;
- final int byte120 = blocks[blocksOffset++] & 0xFF;
- final int byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 3) << 23) | (byte119 << 15) | (byte120 << 7) | (byte121 >>> 1);
- final int byte122 = blocks[blocksOffset++] & 0xFF;
- final int byte123 = blocks[blocksOffset++] & 0xFF;
- final int byte124 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 1) << 24) | (byte122 << 16) | (byte123 << 8) | byte124;
- final int byte125 = blocks[blocksOffset++] & 0xFF;
- final int byte126 = blocks[blocksOffset++] & 0xFF;
- final int byte127 = blocks[blocksOffset++] & 0xFF;
- final int byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte125 << 17) | (byte126 << 9) | (byte127 << 1) | (byte128 >>> 7);
- final int byte129 = blocks[blocksOffset++] & 0xFF;
- final int byte130 = blocks[blocksOffset++] & 0xFF;
- final int byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 127) << 18) | (byte129 << 10) | (byte130 << 2) | (byte131 >>> 6);
- final int byte132 = blocks[blocksOffset++] & 0xFF;
- final int byte133 = blocks[blocksOffset++] & 0xFF;
- final int byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 63) << 19) | (byte132 << 11) | (byte133 << 3) | (byte134 >>> 5);
- final int byte135 = blocks[blocksOffset++] & 0xFF;
- final int byte136 = blocks[blocksOffset++] & 0xFF;
- final int byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 31) << 20) | (byte135 << 12) | (byte136 << 4) | (byte137 >>> 4);
- final int byte138 = blocks[blocksOffset++] & 0xFF;
- final int byte139 = blocks[blocksOffset++] & 0xFF;
- final int byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 15) << 21) | (byte138 << 13) | (byte139 << 5) | (byte140 >>> 3);
- final int byte141 = blocks[blocksOffset++] & 0xFF;
- final int byte142 = blocks[blocksOffset++] & 0xFF;
- final int byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 7) << 22) | (byte141 << 14) | (byte142 << 6) | (byte143 >>> 2);
- final int byte144 = blocks[blocksOffset++] & 0xFF;
- final int byte145 = blocks[blocksOffset++] & 0xFF;
- final int byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 3) << 23) | (byte144 << 15) | (byte145 << 7) | (byte146 >>> 1);
- final int byte147 = blocks[blocksOffset++] & 0xFF;
- final int byte148 = blocks[blocksOffset++] & 0xFF;
- final int byte149 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte146 & 1) << 24) | (byte147 << 16) | (byte148 << 8) | byte149;
- final int byte150 = blocks[blocksOffset++] & 0xFF;
- final int byte151 = blocks[blocksOffset++] & 0xFF;
- final int byte152 = blocks[blocksOffset++] & 0xFF;
- final int byte153 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte150 << 17) | (byte151 << 9) | (byte152 << 1) | (byte153 >>> 7);
- final int byte154 = blocks[blocksOffset++] & 0xFF;
- final int byte155 = blocks[blocksOffset++] & 0xFF;
- final int byte156 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte153 & 127) << 18) | (byte154 << 10) | (byte155 << 2) | (byte156 >>> 6);
- final int byte157 = blocks[blocksOffset++] & 0xFF;
- final int byte158 = blocks[blocksOffset++] & 0xFF;
- final int byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte156 & 63) << 19) | (byte157 << 11) | (byte158 << 3) | (byte159 >>> 5);
- final int byte160 = blocks[blocksOffset++] & 0xFF;
- final int byte161 = blocks[blocksOffset++] & 0xFF;
- final int byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 31) << 20) | (byte160 << 12) | (byte161 << 4) | (byte162 >>> 4);
- final int byte163 = blocks[blocksOffset++] & 0xFF;
- final int byte164 = blocks[blocksOffset++] & 0xFF;
- final int byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 15) << 21) | (byte163 << 13) | (byte164 << 5) | (byte165 >>> 3);
- final int byte166 = blocks[blocksOffset++] & 0xFF;
- final int byte167 = blocks[blocksOffset++] & 0xFF;
- final int byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 7) << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final int byte169 = blocks[blocksOffset++] & 0xFF;
- final int byte170 = blocks[blocksOffset++] & 0xFF;
- final int byte171 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 23) | (byte169 << 15) | (byte170 << 7) | (byte171 >>> 1);
- final int byte172 = blocks[blocksOffset++] & 0xFF;
- final int byte173 = blocks[blocksOffset++] & 0xFF;
- final int byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte171 & 1) << 24) | (byte172 << 16) | (byte173 << 8) | byte174;
- final int byte175 = blocks[blocksOffset++] & 0xFF;
- final int byte176 = blocks[blocksOffset++] & 0xFF;
- final int byte177 = blocks[blocksOffset++] & 0xFF;
- final int byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte175 << 17) | (byte176 << 9) | (byte177 << 1) | (byte178 >>> 7);
- final int byte179 = blocks[blocksOffset++] & 0xFF;
- final int byte180 = blocks[blocksOffset++] & 0xFF;
- final int byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 127) << 18) | (byte179 << 10) | (byte180 << 2) | (byte181 >>> 6);
- final int byte182 = blocks[blocksOffset++] & 0xFF;
- final int byte183 = blocks[blocksOffset++] & 0xFF;
- final int byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 63) << 19) | (byte182 << 11) | (byte183 << 3) | (byte184 >>> 5);
- final int byte185 = blocks[blocksOffset++] & 0xFF;
- final int byte186 = blocks[blocksOffset++] & 0xFF;
- final int byte187 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 31) << 20) | (byte185 << 12) | (byte186 << 4) | (byte187 >>> 4);
- final int byte188 = blocks[blocksOffset++] & 0xFF;
- final int byte189 = blocks[blocksOffset++] & 0xFF;
- final int byte190 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte187 & 15) << 21) | (byte188 << 13) | (byte189 << 5) | (byte190 >>> 3);
- final int byte191 = blocks[blocksOffset++] & 0xFF;
- final int byte192 = blocks[blocksOffset++] & 0xFF;
- final int byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte190 & 7) << 22) | (byte191 << 14) | (byte192 << 6) | (byte193 >>> 2);
- final int byte194 = blocks[blocksOffset++] & 0xFF;
- final int byte195 = blocks[blocksOffset++] & 0xFF;
- final int byte196 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 3) << 23) | (byte194 << 15) | (byte195 << 7) | (byte196 >>> 1);
- final int byte197 = blocks[blocksOffset++] & 0xFF;
- final int byte198 = blocks[blocksOffset++] & 0xFF;
- final int byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte196 & 1) << 24) | (byte197 << 16) | (byte198 << 8) | byte199;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 39;
- values[valuesOffset++] = (block0 >>> 14) & 33554431L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 16383L) << 11) | (block1 >>> 53);
- values[valuesOffset++] = (block1 >>> 28) & 33554431L;
- values[valuesOffset++] = (block1 >>> 3) & 33554431L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 7L) << 22) | (block2 >>> 42);
- values[valuesOffset++] = (block2 >>> 17) & 33554431L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 131071L) << 8) | (block3 >>> 56);
- values[valuesOffset++] = (block3 >>> 31) & 33554431L;
- values[valuesOffset++] = (block3 >>> 6) & 33554431L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 63L) << 19) | (block4 >>> 45);
- values[valuesOffset++] = (block4 >>> 20) & 33554431L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1048575L) << 5) | (block5 >>> 59);
- values[valuesOffset++] = (block5 >>> 34) & 33554431L;
- values[valuesOffset++] = (block5 >>> 9) & 33554431L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 511L) << 16) | (block6 >>> 48);
- values[valuesOffset++] = (block6 >>> 23) & 33554431L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 8388607L) << 2) | (block7 >>> 62);
- values[valuesOffset++] = (block7 >>> 37) & 33554431L;
- values[valuesOffset++] = (block7 >>> 12) & 33554431L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 4095L) << 13) | (block8 >>> 51);
- values[valuesOffset++] = (block8 >>> 26) & 33554431L;
- values[valuesOffset++] = (block8 >>> 1) & 33554431L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 1L) << 24) | (block9 >>> 40);
- values[valuesOffset++] = (block9 >>> 15) & 33554431L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 32767L) << 10) | (block10 >>> 54);
- values[valuesOffset++] = (block10 >>> 29) & 33554431L;
- values[valuesOffset++] = (block10 >>> 4) & 33554431L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 15L) << 21) | (block11 >>> 43);
- values[valuesOffset++] = (block11 >>> 18) & 33554431L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 262143L) << 7) | (block12 >>> 57);
- values[valuesOffset++] = (block12 >>> 32) & 33554431L;
- values[valuesOffset++] = (block12 >>> 7) & 33554431L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 127L) << 18) | (block13 >>> 46);
- values[valuesOffset++] = (block13 >>> 21) & 33554431L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 2097151L) << 4) | (block14 >>> 60);
- values[valuesOffset++] = (block14 >>> 35) & 33554431L;
- values[valuesOffset++] = (block14 >>> 10) & 33554431L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1023L) << 15) | (block15 >>> 49);
- values[valuesOffset++] = (block15 >>> 24) & 33554431L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 16777215L) << 1) | (block16 >>> 63);
- values[valuesOffset++] = (block16 >>> 38) & 33554431L;
- values[valuesOffset++] = (block16 >>> 13) & 33554431L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 8191L) << 12) | (block17 >>> 52);
- values[valuesOffset++] = (block17 >>> 27) & 33554431L;
- values[valuesOffset++] = (block17 >>> 2) & 33554431L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 3L) << 23) | (block18 >>> 41);
- values[valuesOffset++] = (block18 >>> 16) & 33554431L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 65535L) << 9) | (block19 >>> 55);
- values[valuesOffset++] = (block19 >>> 30) & 33554431L;
- values[valuesOffset++] = (block19 >>> 5) & 33554431L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 31L) << 20) | (block20 >>> 44);
- values[valuesOffset++] = (block20 >>> 19) & 33554431L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 524287L) << 6) | (block21 >>> 58);
- values[valuesOffset++] = (block21 >>> 33) & 33554431L;
- values[valuesOffset++] = (block21 >>> 8) & 33554431L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 255L) << 17) | (block22 >>> 47);
- values[valuesOffset++] = (block22 >>> 22) & 33554431L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 4194303L) << 3) | (block23 >>> 61);
- values[valuesOffset++] = (block23 >>> 36) & 33554431L;
- values[valuesOffset++] = (block23 >>> 11) & 33554431L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 2047L) << 14) | (block24 >>> 50);
- values[valuesOffset++] = (block24 >>> 25) & 33554431L;
- values[valuesOffset++] = block24 & 33554431L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 17) | (byte1 << 9) | (byte2 << 1) | (byte3 >>> 7);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 127) << 18) | (byte4 << 10) | (byte5 << 2) | (byte6 >>> 6);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 63) << 19) | (byte7 << 11) | (byte8 << 3) | (byte9 >>> 5);
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 31) << 20) | (byte10 << 12) | (byte11 << 4) | (byte12 >>> 4);
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 15) << 21) | (byte13 << 13) | (byte14 << 5) | (byte15 >>> 3);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 7) << 22) | (byte16 << 14) | (byte17 << 6) | (byte18 >>> 2);
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 3) << 23) | (byte19 << 15) | (byte20 << 7) | (byte21 >>> 1);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 1) << 24) | (byte22 << 16) | (byte23 << 8) | byte24;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte25 << 17) | (byte26 << 9) | (byte27 << 1) | (byte28 >>> 7);
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 127) << 18) | (byte29 << 10) | (byte30 << 2) | (byte31 >>> 6);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 63) << 19) | (byte32 << 11) | (byte33 << 3) | (byte34 >>> 5);
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 31) << 20) | (byte35 << 12) | (byte36 << 4) | (byte37 >>> 4);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 15) << 21) | (byte38 << 13) | (byte39 << 5) | (byte40 >>> 3);
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 7) << 22) | (byte41 << 14) | (byte42 << 6) | (byte43 >>> 2);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 3) << 23) | (byte44 << 15) | (byte45 << 7) | (byte46 >>> 1);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 1) << 24) | (byte47 << 16) | (byte48 << 8) | byte49;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte50 << 17) | (byte51 << 9) | (byte52 << 1) | (byte53 >>> 7);
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte53 & 127) << 18) | (byte54 << 10) | (byte55 << 2) | (byte56 >>> 6);
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 63) << 19) | (byte57 << 11) | (byte58 << 3) | (byte59 >>> 5);
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte59 & 31) << 20) | (byte60 << 12) | (byte61 << 4) | (byte62 >>> 4);
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte62 & 15) << 21) | (byte63 << 13) | (byte64 << 5) | (byte65 >>> 3);
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 7) << 22) | (byte66 << 14) | (byte67 << 6) | (byte68 >>> 2);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 3) << 23) | (byte69 << 15) | (byte70 << 7) | (byte71 >>> 1);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 1) << 24) | (byte72 << 16) | (byte73 << 8) | byte74;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte75 << 17) | (byte76 << 9) | (byte77 << 1) | (byte78 >>> 7);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 127) << 18) | (byte79 << 10) | (byte80 << 2) | (byte81 >>> 6);
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 63) << 19) | (byte82 << 11) | (byte83 << 3) | (byte84 >>> 5);
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 31) << 20) | (byte85 << 12) | (byte86 << 4) | (byte87 >>> 4);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 15) << 21) | (byte88 << 13) | (byte89 << 5) | (byte90 >>> 3);
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte90 & 7) << 22) | (byte91 << 14) | (byte92 << 6) | (byte93 >>> 2);
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte93 & 3) << 23) | (byte94 << 15) | (byte95 << 7) | (byte96 >>> 1);
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte96 & 1) << 24) | (byte97 << 16) | (byte98 << 8) | byte99;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte100 << 17) | (byte101 << 9) | (byte102 << 1) | (byte103 >>> 7);
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte103 & 127) << 18) | (byte104 << 10) | (byte105 << 2) | (byte106 >>> 6);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 63) << 19) | (byte107 << 11) | (byte108 << 3) | (byte109 >>> 5);
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte109 & 31) << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 21) | (byte113 << 13) | (byte114 << 5) | (byte115 >>> 3);
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte115 & 7) << 22) | (byte116 << 14) | (byte117 << 6) | (byte118 >>> 2);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 3) << 23) | (byte119 << 15) | (byte120 << 7) | (byte121 >>> 1);
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 1) << 24) | (byte122 << 16) | (byte123 << 8) | byte124;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte125 << 17) | (byte126 << 9) | (byte127 << 1) | (byte128 >>> 7);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 127) << 18) | (byte129 << 10) | (byte130 << 2) | (byte131 >>> 6);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 63) << 19) | (byte132 << 11) | (byte133 << 3) | (byte134 >>> 5);
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 31) << 20) | (byte135 << 12) | (byte136 << 4) | (byte137 >>> 4);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 15) << 21) | (byte138 << 13) | (byte139 << 5) | (byte140 >>> 3);
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 7) << 22) | (byte141 << 14) | (byte142 << 6) | (byte143 >>> 2);
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 3) << 23) | (byte144 << 15) | (byte145 << 7) | (byte146 >>> 1);
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte146 & 1) << 24) | (byte147 << 16) | (byte148 << 8) | byte149;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte150 << 17) | (byte151 << 9) | (byte152 << 1) | (byte153 >>> 7);
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte153 & 127) << 18) | (byte154 << 10) | (byte155 << 2) | (byte156 >>> 6);
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte156 & 63) << 19) | (byte157 << 11) | (byte158 << 3) | (byte159 >>> 5);
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 31) << 20) | (byte160 << 12) | (byte161 << 4) | (byte162 >>> 4);
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 15) << 21) | (byte163 << 13) | (byte164 << 5) | (byte165 >>> 3);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 7) << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 23) | (byte169 << 15) | (byte170 << 7) | (byte171 >>> 1);
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte171 & 1) << 24) | (byte172 << 16) | (byte173 << 8) | byte174;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte175 << 17) | (byte176 << 9) | (byte177 << 1) | (byte178 >>> 7);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 127) << 18) | (byte179 << 10) | (byte180 << 2) | (byte181 >>> 6);
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 63) << 19) | (byte182 << 11) | (byte183 << 3) | (byte184 >>> 5);
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 31) << 20) | (byte185 << 12) | (byte186 << 4) | (byte187 >>> 4);
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte187 & 15) << 21) | (byte188 << 13) | (byte189 << 5) | (byte190 >>> 3);
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte190 & 7) << 22) | (byte191 << 14) | (byte192 << 6) | (byte193 >>> 2);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 3) << 23) | (byte194 << 15) | (byte195 << 7) | (byte196 >>> 1);
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte196 & 1) << 24) | (byte197 << 16) | (byte198 << 8) | byte199;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 25) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 25) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked61.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked61.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked61.java (copie de travail)
@@ -1,877 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked61 extends BulkOperation {
- @Override
- public int blockCount() {
- return 61;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 3;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 7L) << 58) | (block1 >>> 6);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 63L) << 55) | (block2 >>> 9);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 511L) << 52) | (block3 >>> 12);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 4095L) << 49) | (block4 >>> 15);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 32767L) << 46) | (block5 >>> 18);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 262143L) << 43) | (block6 >>> 21);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 2097151L) << 40) | (block7 >>> 24);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 16777215L) << 37) | (block8 >>> 27);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 134217727L) << 34) | (block9 >>> 30);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1073741823L) << 31) | (block10 >>> 33);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 8589934591L) << 28) | (block11 >>> 36);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 68719476735L) << 25) | (block12 >>> 39);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 549755813887L) << 22) | (block13 >>> 42);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 4398046511103L) << 19) | (block14 >>> 45);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 35184372088831L) << 16) | (block15 >>> 48);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 281474976710655L) << 13) | (block16 >>> 51);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 2251799813685247L) << 10) | (block17 >>> 54);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 18014398509481983L) << 7) | (block18 >>> 57);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 144115188075855871L) << 4) | (block19 >>> 60);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1152921504606846975L) << 1) | (block20 >>> 63);
- values[valuesOffset++] = (block20 >>> 2) & 2305843009213693951L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 3L) << 59) | (block21 >>> 5);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 31L) << 56) | (block22 >>> 8);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 255L) << 53) | (block23 >>> 11);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 2047L) << 50) | (block24 >>> 14);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 16383L) << 47) | (block25 >>> 17);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 131071L) << 44) | (block26 >>> 20);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 1048575L) << 41) | (block27 >>> 23);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 8388607L) << 38) | (block28 >>> 26);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 67108863L) << 35) | (block29 >>> 29);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 536870911L) << 32) | (block30 >>> 32);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 4294967295L) << 29) | (block31 >>> 35);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 34359738367L) << 26) | (block32 >>> 38);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 274877906943L) << 23) | (block33 >>> 41);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 2199023255551L) << 20) | (block34 >>> 44);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 17592186044415L) << 17) | (block35 >>> 47);
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 140737488355327L) << 14) | (block36 >>> 50);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 1125899906842623L) << 11) | (block37 >>> 53);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 9007199254740991L) << 8) | (block38 >>> 56);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 72057594037927935L) << 5) | (block39 >>> 59);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 576460752303423487L) << 2) | (block40 >>> 62);
- values[valuesOffset++] = (block40 >>> 1) & 2305843009213693951L;
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 1L) << 60) | (block41 >>> 4);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 15L) << 57) | (block42 >>> 7);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 127L) << 54) | (block43 >>> 10);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 1023L) << 51) | (block44 >>> 13);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 8191L) << 48) | (block45 >>> 16);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 65535L) << 45) | (block46 >>> 19);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 524287L) << 42) | (block47 >>> 22);
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 4194303L) << 39) | (block48 >>> 25);
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 33554431L) << 36) | (block49 >>> 28);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 268435455L) << 33) | (block50 >>> 31);
- final long block51 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block50 & 2147483647L) << 30) | (block51 >>> 34);
- final long block52 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block51 & 17179869183L) << 27) | (block52 >>> 37);
- final long block53 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block52 & 137438953471L) << 24) | (block53 >>> 40);
- final long block54 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block53 & 1099511627775L) << 21) | (block54 >>> 43);
- final long block55 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block54 & 8796093022207L) << 18) | (block55 >>> 46);
- final long block56 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block55 & 70368744177663L) << 15) | (block56 >>> 49);
- final long block57 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block56 & 562949953421311L) << 12) | (block57 >>> 52);
- final long block58 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block57 & 4503599627370495L) << 9) | (block58 >>> 55);
- final long block59 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block58 & 36028797018963967L) << 6) | (block59 >>> 58);
- final long block60 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block59 & 288230376151711743L) << 3) | (block60 >>> 61);
- values[valuesOffset++] = block60 & 2305843009213693951L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 53) | (byte1 << 45) | (byte2 << 37) | (byte3 << 29) | (byte4 << 21) | (byte5 << 13) | (byte6 << 5) | (byte7 >>> 3);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 7) << 58) | (byte8 << 50) | (byte9 << 42) | (byte10 << 34) | (byte11 << 26) | (byte12 << 18) | (byte13 << 10) | (byte14 << 2) | (byte15 >>> 6);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 63) << 55) | (byte16 << 47) | (byte17 << 39) | (byte18 << 31) | (byte19 << 23) | (byte20 << 15) | (byte21 << 7) | (byte22 >>> 1);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 1) << 60) | (byte23 << 52) | (byte24 << 44) | (byte25 << 36) | (byte26 << 28) | (byte27 << 20) | (byte28 << 12) | (byte29 << 4) | (byte30 >>> 4);
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte30 & 15) << 57) | (byte31 << 49) | (byte32 << 41) | (byte33 << 33) | (byte34 << 25) | (byte35 << 17) | (byte36 << 9) | (byte37 << 1) | (byte38 >>> 7);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 127) << 54) | (byte39 << 46) | (byte40 << 38) | (byte41 << 30) | (byte42 << 22) | (byte43 << 14) | (byte44 << 6) | (byte45 >>> 2);
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 3) << 59) | (byte46 << 51) | (byte47 << 43) | (byte48 << 35) | (byte49 << 27) | (byte50 << 19) | (byte51 << 11) | (byte52 << 3) | (byte53 >>> 5);
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte53 & 31) << 56) | (byte54 << 48) | (byte55 << 40) | (byte56 << 32) | (byte57 << 24) | (byte58 << 16) | (byte59 << 8) | byte60;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte61 << 53) | (byte62 << 45) | (byte63 << 37) | (byte64 << 29) | (byte65 << 21) | (byte66 << 13) | (byte67 << 5) | (byte68 >>> 3);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 7) << 58) | (byte69 << 50) | (byte70 << 42) | (byte71 << 34) | (byte72 << 26) | (byte73 << 18) | (byte74 << 10) | (byte75 << 2) | (byte76 >>> 6);
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 63) << 55) | (byte77 << 47) | (byte78 << 39) | (byte79 << 31) | (byte80 << 23) | (byte81 << 15) | (byte82 << 7) | (byte83 >>> 1);
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte83 & 1) << 60) | (byte84 << 52) | (byte85 << 44) | (byte86 << 36) | (byte87 << 28) | (byte88 << 20) | (byte89 << 12) | (byte90 << 4) | (byte91 >>> 4);
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte91 & 15) << 57) | (byte92 << 49) | (byte93 << 41) | (byte94 << 33) | (byte95 << 25) | (byte96 << 17) | (byte97 << 9) | (byte98 << 1) | (byte99 >>> 7);
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte99 & 127) << 54) | (byte100 << 46) | (byte101 << 38) | (byte102 << 30) | (byte103 << 22) | (byte104 << 14) | (byte105 << 6) | (byte106 >>> 2);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 3) << 59) | (byte107 << 51) | (byte108 << 43) | (byte109 << 35) | (byte110 << 27) | (byte111 << 19) | (byte112 << 11) | (byte113 << 3) | (byte114 >>> 5);
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte114 & 31) << 56) | (byte115 << 48) | (byte116 << 40) | (byte117 << 32) | (byte118 << 24) | (byte119 << 16) | (byte120 << 8) | byte121;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte122 << 53) | (byte123 << 45) | (byte124 << 37) | (byte125 << 29) | (byte126 << 21) | (byte127 << 13) | (byte128 << 5) | (byte129 >>> 3);
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte129 & 7) << 58) | (byte130 << 50) | (byte131 << 42) | (byte132 << 34) | (byte133 << 26) | (byte134 << 18) | (byte135 << 10) | (byte136 << 2) | (byte137 >>> 6);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 63) << 55) | (byte138 << 47) | (byte139 << 39) | (byte140 << 31) | (byte141 << 23) | (byte142 << 15) | (byte143 << 7) | (byte144 >>> 1);
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte144 & 1) << 60) | (byte145 << 52) | (byte146 << 44) | (byte147 << 36) | (byte148 << 28) | (byte149 << 20) | (byte150 << 12) | (byte151 << 4) | (byte152 >>> 4);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 15) << 57) | (byte153 << 49) | (byte154 << 41) | (byte155 << 33) | (byte156 << 25) | (byte157 << 17) | (byte158 << 9) | (byte159 << 1) | (byte160 >>> 7);
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte160 & 127) << 54) | (byte161 << 46) | (byte162 << 38) | (byte163 << 30) | (byte164 << 22) | (byte165 << 14) | (byte166 << 6) | (byte167 >>> 2);
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte167 & 3) << 59) | (byte168 << 51) | (byte169 << 43) | (byte170 << 35) | (byte171 << 27) | (byte172 << 19) | (byte173 << 11) | (byte174 << 3) | (byte175 >>> 5);
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte175 & 31) << 56) | (byte176 << 48) | (byte177 << 40) | (byte178 << 32) | (byte179 << 24) | (byte180 << 16) | (byte181 << 8) | byte182;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte183 << 53) | (byte184 << 45) | (byte185 << 37) | (byte186 << 29) | (byte187 << 21) | (byte188 << 13) | (byte189 << 5) | (byte190 >>> 3);
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte190 & 7) << 58) | (byte191 << 50) | (byte192 << 42) | (byte193 << 34) | (byte194 << 26) | (byte195 << 18) | (byte196 << 10) | (byte197 << 2) | (byte198 >>> 6);
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte198 & 63) << 55) | (byte199 << 47) | (byte200 << 39) | (byte201 << 31) | (byte202 << 23) | (byte203 << 15) | (byte204 << 7) | (byte205 >>> 1);
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 1) << 60) | (byte206 << 52) | (byte207 << 44) | (byte208 << 36) | (byte209 << 28) | (byte210 << 20) | (byte211 << 12) | (byte212 << 4) | (byte213 >>> 4);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 15) << 57) | (byte214 << 49) | (byte215 << 41) | (byte216 << 33) | (byte217 << 25) | (byte218 << 17) | (byte219 << 9) | (byte220 << 1) | (byte221 >>> 7);
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte221 & 127) << 54) | (byte222 << 46) | (byte223 << 38) | (byte224 << 30) | (byte225 << 22) | (byte226 << 14) | (byte227 << 6) | (byte228 >>> 2);
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 3) << 59) | (byte229 << 51) | (byte230 << 43) | (byte231 << 35) | (byte232 << 27) | (byte233 << 19) | (byte234 << 11) | (byte235 << 3) | (byte236 >>> 5);
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 31) << 56) | (byte237 << 48) | (byte238 << 40) | (byte239 << 32) | (byte240 << 24) | (byte241 << 16) | (byte242 << 8) | byte243;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte244 << 53) | (byte245 << 45) | (byte246 << 37) | (byte247 << 29) | (byte248 << 21) | (byte249 << 13) | (byte250 << 5) | (byte251 >>> 3);
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte251 & 7) << 58) | (byte252 << 50) | (byte253 << 42) | (byte254 << 34) | (byte255 << 26) | (byte256 << 18) | (byte257 << 10) | (byte258 << 2) | (byte259 >>> 6);
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte259 & 63) << 55) | (byte260 << 47) | (byte261 << 39) | (byte262 << 31) | (byte263 << 23) | (byte264 << 15) | (byte265 << 7) | (byte266 >>> 1);
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte266 & 1) << 60) | (byte267 << 52) | (byte268 << 44) | (byte269 << 36) | (byte270 << 28) | (byte271 << 20) | (byte272 << 12) | (byte273 << 4) | (byte274 >>> 4);
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte274 & 15) << 57) | (byte275 << 49) | (byte276 << 41) | (byte277 << 33) | (byte278 << 25) | (byte279 << 17) | (byte280 << 9) | (byte281 << 1) | (byte282 >>> 7);
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte282 & 127) << 54) | (byte283 << 46) | (byte284 << 38) | (byte285 << 30) | (byte286 << 22) | (byte287 << 14) | (byte288 << 6) | (byte289 >>> 2);
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte289 & 3) << 59) | (byte290 << 51) | (byte291 << 43) | (byte292 << 35) | (byte293 << 27) | (byte294 << 19) | (byte295 << 11) | (byte296 << 3) | (byte297 >>> 5);
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte297 & 31) << 56) | (byte298 << 48) | (byte299 << 40) | (byte300 << 32) | (byte301 << 24) | (byte302 << 16) | (byte303 << 8) | byte304;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte305 << 53) | (byte306 << 45) | (byte307 << 37) | (byte308 << 29) | (byte309 << 21) | (byte310 << 13) | (byte311 << 5) | (byte312 >>> 3);
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte312 & 7) << 58) | (byte313 << 50) | (byte314 << 42) | (byte315 << 34) | (byte316 << 26) | (byte317 << 18) | (byte318 << 10) | (byte319 << 2) | (byte320 >>> 6);
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte320 & 63) << 55) | (byte321 << 47) | (byte322 << 39) | (byte323 << 31) | (byte324 << 23) | (byte325 << 15) | (byte326 << 7) | (byte327 >>> 1);
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte327 & 1) << 60) | (byte328 << 52) | (byte329 << 44) | (byte330 << 36) | (byte331 << 28) | (byte332 << 20) | (byte333 << 12) | (byte334 << 4) | (byte335 >>> 4);
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte335 & 15) << 57) | (byte336 << 49) | (byte337 << 41) | (byte338 << 33) | (byte339 << 25) | (byte340 << 17) | (byte341 << 9) | (byte342 << 1) | (byte343 >>> 7);
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte343 & 127) << 54) | (byte344 << 46) | (byte345 << 38) | (byte346 << 30) | (byte347 << 22) | (byte348 << 14) | (byte349 << 6) | (byte350 >>> 2);
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte350 & 3) << 59) | (byte351 << 51) | (byte352 << 43) | (byte353 << 35) | (byte354 << 27) | (byte355 << 19) | (byte356 << 11) | (byte357 << 3) | (byte358 >>> 5);
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte358 & 31) << 56) | (byte359 << 48) | (byte360 << 40) | (byte361 << 32) | (byte362 << 24) | (byte363 << 16) | (byte364 << 8) | byte365;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte366 << 53) | (byte367 << 45) | (byte368 << 37) | (byte369 << 29) | (byte370 << 21) | (byte371 << 13) | (byte372 << 5) | (byte373 >>> 3);
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte373 & 7) << 58) | (byte374 << 50) | (byte375 << 42) | (byte376 << 34) | (byte377 << 26) | (byte378 << 18) | (byte379 << 10) | (byte380 << 2) | (byte381 >>> 6);
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte381 & 63) << 55) | (byte382 << 47) | (byte383 << 39) | (byte384 << 31) | (byte385 << 23) | (byte386 << 15) | (byte387 << 7) | (byte388 >>> 1);
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte388 & 1) << 60) | (byte389 << 52) | (byte390 << 44) | (byte391 << 36) | (byte392 << 28) | (byte393 << 20) | (byte394 << 12) | (byte395 << 4) | (byte396 >>> 4);
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte396 & 15) << 57) | (byte397 << 49) | (byte398 << 41) | (byte399 << 33) | (byte400 << 25) | (byte401 << 17) | (byte402 << 9) | (byte403 << 1) | (byte404 >>> 7);
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- final long byte408 = blocks[blocksOffset++] & 0xFF;
- final long byte409 = blocks[blocksOffset++] & 0xFF;
- final long byte410 = blocks[blocksOffset++] & 0xFF;
- final long byte411 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte404 & 127) << 54) | (byte405 << 46) | (byte406 << 38) | (byte407 << 30) | (byte408 << 22) | (byte409 << 14) | (byte410 << 6) | (byte411 >>> 2);
- final long byte412 = blocks[blocksOffset++] & 0xFF;
- final long byte413 = blocks[blocksOffset++] & 0xFF;
- final long byte414 = blocks[blocksOffset++] & 0xFF;
- final long byte415 = blocks[blocksOffset++] & 0xFF;
- final long byte416 = blocks[blocksOffset++] & 0xFF;
- final long byte417 = blocks[blocksOffset++] & 0xFF;
- final long byte418 = blocks[blocksOffset++] & 0xFF;
- final long byte419 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte411 & 3) << 59) | (byte412 << 51) | (byte413 << 43) | (byte414 << 35) | (byte415 << 27) | (byte416 << 19) | (byte417 << 11) | (byte418 << 3) | (byte419 >>> 5);
- final long byte420 = blocks[blocksOffset++] & 0xFF;
- final long byte421 = blocks[blocksOffset++] & 0xFF;
- final long byte422 = blocks[blocksOffset++] & 0xFF;
- final long byte423 = blocks[blocksOffset++] & 0xFF;
- final long byte424 = blocks[blocksOffset++] & 0xFF;
- final long byte425 = blocks[blocksOffset++] & 0xFF;
- final long byte426 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte419 & 31) << 56) | (byte420 << 48) | (byte421 << 40) | (byte422 << 32) | (byte423 << 24) | (byte424 << 16) | (byte425 << 8) | byte426;
- final long byte427 = blocks[blocksOffset++] & 0xFF;
- final long byte428 = blocks[blocksOffset++] & 0xFF;
- final long byte429 = blocks[blocksOffset++] & 0xFF;
- final long byte430 = blocks[blocksOffset++] & 0xFF;
- final long byte431 = blocks[blocksOffset++] & 0xFF;
- final long byte432 = blocks[blocksOffset++] & 0xFF;
- final long byte433 = blocks[blocksOffset++] & 0xFF;
- final long byte434 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte427 << 53) | (byte428 << 45) | (byte429 << 37) | (byte430 << 29) | (byte431 << 21) | (byte432 << 13) | (byte433 << 5) | (byte434 >>> 3);
- final long byte435 = blocks[blocksOffset++] & 0xFF;
- final long byte436 = blocks[blocksOffset++] & 0xFF;
- final long byte437 = blocks[blocksOffset++] & 0xFF;
- final long byte438 = blocks[blocksOffset++] & 0xFF;
- final long byte439 = blocks[blocksOffset++] & 0xFF;
- final long byte440 = blocks[blocksOffset++] & 0xFF;
- final long byte441 = blocks[blocksOffset++] & 0xFF;
- final long byte442 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte434 & 7) << 58) | (byte435 << 50) | (byte436 << 42) | (byte437 << 34) | (byte438 << 26) | (byte439 << 18) | (byte440 << 10) | (byte441 << 2) | (byte442 >>> 6);
- final long byte443 = blocks[blocksOffset++] & 0xFF;
- final long byte444 = blocks[blocksOffset++] & 0xFF;
- final long byte445 = blocks[blocksOffset++] & 0xFF;
- final long byte446 = blocks[blocksOffset++] & 0xFF;
- final long byte447 = blocks[blocksOffset++] & 0xFF;
- final long byte448 = blocks[blocksOffset++] & 0xFF;
- final long byte449 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte442 & 63) << 55) | (byte443 << 47) | (byte444 << 39) | (byte445 << 31) | (byte446 << 23) | (byte447 << 15) | (byte448 << 7) | (byte449 >>> 1);
- final long byte450 = blocks[blocksOffset++] & 0xFF;
- final long byte451 = blocks[blocksOffset++] & 0xFF;
- final long byte452 = blocks[blocksOffset++] & 0xFF;
- final long byte453 = blocks[blocksOffset++] & 0xFF;
- final long byte454 = blocks[blocksOffset++] & 0xFF;
- final long byte455 = blocks[blocksOffset++] & 0xFF;
- final long byte456 = blocks[blocksOffset++] & 0xFF;
- final long byte457 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte449 & 1) << 60) | (byte450 << 52) | (byte451 << 44) | (byte452 << 36) | (byte453 << 28) | (byte454 << 20) | (byte455 << 12) | (byte456 << 4) | (byte457 >>> 4);
- final long byte458 = blocks[blocksOffset++] & 0xFF;
- final long byte459 = blocks[blocksOffset++] & 0xFF;
- final long byte460 = blocks[blocksOffset++] & 0xFF;
- final long byte461 = blocks[blocksOffset++] & 0xFF;
- final long byte462 = blocks[blocksOffset++] & 0xFF;
- final long byte463 = blocks[blocksOffset++] & 0xFF;
- final long byte464 = blocks[blocksOffset++] & 0xFF;
- final long byte465 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte457 & 15) << 57) | (byte458 << 49) | (byte459 << 41) | (byte460 << 33) | (byte461 << 25) | (byte462 << 17) | (byte463 << 9) | (byte464 << 1) | (byte465 >>> 7);
- final long byte466 = blocks[blocksOffset++] & 0xFF;
- final long byte467 = blocks[blocksOffset++] & 0xFF;
- final long byte468 = blocks[blocksOffset++] & 0xFF;
- final long byte469 = blocks[blocksOffset++] & 0xFF;
- final long byte470 = blocks[blocksOffset++] & 0xFF;
- final long byte471 = blocks[blocksOffset++] & 0xFF;
- final long byte472 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte465 & 127) << 54) | (byte466 << 46) | (byte467 << 38) | (byte468 << 30) | (byte469 << 22) | (byte470 << 14) | (byte471 << 6) | (byte472 >>> 2);
- final long byte473 = blocks[blocksOffset++] & 0xFF;
- final long byte474 = blocks[blocksOffset++] & 0xFF;
- final long byte475 = blocks[blocksOffset++] & 0xFF;
- final long byte476 = blocks[blocksOffset++] & 0xFF;
- final long byte477 = blocks[blocksOffset++] & 0xFF;
- final long byte478 = blocks[blocksOffset++] & 0xFF;
- final long byte479 = blocks[blocksOffset++] & 0xFF;
- final long byte480 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte472 & 3) << 59) | (byte473 << 51) | (byte474 << 43) | (byte475 << 35) | (byte476 << 27) | (byte477 << 19) | (byte478 << 11) | (byte479 << 3) | (byte480 >>> 5);
- final long byte481 = blocks[blocksOffset++] & 0xFF;
- final long byte482 = blocks[blocksOffset++] & 0xFF;
- final long byte483 = blocks[blocksOffset++] & 0xFF;
- final long byte484 = blocks[blocksOffset++] & 0xFF;
- final long byte485 = blocks[blocksOffset++] & 0xFF;
- final long byte486 = blocks[blocksOffset++] & 0xFF;
- final long byte487 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte480 & 31) << 56) | (byte481 << 48) | (byte482 << 40) | (byte483 << 32) | (byte484 << 24) | (byte485 << 16) | (byte486 << 8) | byte487;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 58);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 55);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 59);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 53);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 60);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 57);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 51);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 58);
- blocks[blocksOffset++] = (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 55);
- blocks[blocksOffset++] = (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 59);
- blocks[blocksOffset++] = (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 53);
- blocks[blocksOffset++] = (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 60);
- blocks[blocksOffset++] = (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 57);
- blocks[blocksOffset++] = (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 51);
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked17.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked17.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked17.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked17 extends BulkOperation {
- @Override
- public int blockCount() {
- return 17;
- }
+final class BulkOperationPacked17 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked17() {
+ super(17);
+ assert blockCount() == 17;
+ assert valueCount() == 64;
}
@Override
@@ -627,54 +624,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 17) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 17) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked53.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked53.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked53.java (copie de travail)
@@ -1,789 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked53 extends BulkOperation {
- @Override
- public int blockCount() {
- return 53;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 11;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 2047L) << 42) | (block1 >>> 22);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 4194303L) << 31) | (block2 >>> 33);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 8589934591L) << 20) | (block3 >>> 44);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 17592186044415L) << 9) | (block4 >>> 55);
- values[valuesOffset++] = (block4 >>> 2) & 9007199254740991L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 3L) << 51) | (block5 >>> 13);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 8191L) << 40) | (block6 >>> 24);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 16777215L) << 29) | (block7 >>> 35);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 34359738367L) << 18) | (block8 >>> 46);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 70368744177663L) << 7) | (block9 >>> 57);
- values[valuesOffset++] = (block9 >>> 4) & 9007199254740991L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 15L) << 49) | (block10 >>> 15);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 32767L) << 38) | (block11 >>> 26);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 67108863L) << 27) | (block12 >>> 37);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 137438953471L) << 16) | (block13 >>> 48);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 281474976710655L) << 5) | (block14 >>> 59);
- values[valuesOffset++] = (block14 >>> 6) & 9007199254740991L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 63L) << 47) | (block15 >>> 17);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 131071L) << 36) | (block16 >>> 28);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 268435455L) << 25) | (block17 >>> 39);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 549755813887L) << 14) | (block18 >>> 50);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 1125899906842623L) << 3) | (block19 >>> 61);
- values[valuesOffset++] = (block19 >>> 8) & 9007199254740991L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 255L) << 45) | (block20 >>> 19);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 524287L) << 34) | (block21 >>> 30);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 1073741823L) << 23) | (block22 >>> 41);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 2199023255551L) << 12) | (block23 >>> 52);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 4503599627370495L) << 1) | (block24 >>> 63);
- values[valuesOffset++] = (block24 >>> 10) & 9007199254740991L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 1023L) << 43) | (block25 >>> 21);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 2097151L) << 32) | (block26 >>> 32);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 4294967295L) << 21) | (block27 >>> 43);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 8796093022207L) << 10) | (block28 >>> 54);
- values[valuesOffset++] = (block28 >>> 1) & 9007199254740991L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 1L) << 52) | (block29 >>> 12);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 4095L) << 41) | (block30 >>> 23);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 8388607L) << 30) | (block31 >>> 34);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 17179869183L) << 19) | (block32 >>> 45);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 35184372088831L) << 8) | (block33 >>> 56);
- values[valuesOffset++] = (block33 >>> 3) & 9007199254740991L;
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 7L) << 50) | (block34 >>> 14);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 16383L) << 39) | (block35 >>> 25);
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 33554431L) << 28) | (block36 >>> 36);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 68719476735L) << 17) | (block37 >>> 47);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 140737488355327L) << 6) | (block38 >>> 58);
- values[valuesOffset++] = (block38 >>> 5) & 9007199254740991L;
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 31L) << 48) | (block39 >>> 16);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 65535L) << 37) | (block40 >>> 27);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 134217727L) << 26) | (block41 >>> 38);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 274877906943L) << 15) | (block42 >>> 49);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 562949953421311L) << 4) | (block43 >>> 60);
- values[valuesOffset++] = (block43 >>> 7) & 9007199254740991L;
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 127L) << 46) | (block44 >>> 18);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 262143L) << 35) | (block45 >>> 29);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 536870911L) << 24) | (block46 >>> 40);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 1099511627775L) << 13) | (block47 >>> 51);
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 2251799813685247L) << 2) | (block48 >>> 62);
- values[valuesOffset++] = (block48 >>> 9) & 9007199254740991L;
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 511L) << 44) | (block49 >>> 20);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 1048575L) << 33) | (block50 >>> 31);
- final long block51 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block50 & 2147483647L) << 22) | (block51 >>> 42);
- final long block52 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block51 & 4398046511103L) << 11) | (block52 >>> 53);
- values[valuesOffset++] = block52 & 9007199254740991L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 45) | (byte1 << 37) | (byte2 << 29) | (byte3 << 21) | (byte4 << 13) | (byte5 << 5) | (byte6 >>> 3);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 7) << 50) | (byte7 << 42) | (byte8 << 34) | (byte9 << 26) | (byte10 << 18) | (byte11 << 10) | (byte12 << 2) | (byte13 >>> 6);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 63) << 47) | (byte14 << 39) | (byte15 << 31) | (byte16 << 23) | (byte17 << 15) | (byte18 << 7) | (byte19 >>> 1);
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 1) << 52) | (byte20 << 44) | (byte21 << 36) | (byte22 << 28) | (byte23 << 20) | (byte24 << 12) | (byte25 << 4) | (byte26 >>> 4);
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte26 & 15) << 49) | (byte27 << 41) | (byte28 << 33) | (byte29 << 25) | (byte30 << 17) | (byte31 << 9) | (byte32 << 1) | (byte33 >>> 7);
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 127) << 46) | (byte34 << 38) | (byte35 << 30) | (byte36 << 22) | (byte37 << 14) | (byte38 << 6) | (byte39 >>> 2);
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte39 & 3) << 51) | (byte40 << 43) | (byte41 << 35) | (byte42 << 27) | (byte43 << 19) | (byte44 << 11) | (byte45 << 3) | (byte46 >>> 5);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 31) << 48) | (byte47 << 40) | (byte48 << 32) | (byte49 << 24) | (byte50 << 16) | (byte51 << 8) | byte52;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte53 << 45) | (byte54 << 37) | (byte55 << 29) | (byte56 << 21) | (byte57 << 13) | (byte58 << 5) | (byte59 >>> 3);
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte59 & 7) << 50) | (byte60 << 42) | (byte61 << 34) | (byte62 << 26) | (byte63 << 18) | (byte64 << 10) | (byte65 << 2) | (byte66 >>> 6);
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte66 & 63) << 47) | (byte67 << 39) | (byte68 << 31) | (byte69 << 23) | (byte70 << 15) | (byte71 << 7) | (byte72 >>> 1);
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte72 & 1) << 52) | (byte73 << 44) | (byte74 << 36) | (byte75 << 28) | (byte76 << 20) | (byte77 << 12) | (byte78 << 4) | (byte79 >>> 4);
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte79 & 15) << 49) | (byte80 << 41) | (byte81 << 33) | (byte82 << 25) | (byte83 << 17) | (byte84 << 9) | (byte85 << 1) | (byte86 >>> 7);
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte86 & 127) << 46) | (byte87 << 38) | (byte88 << 30) | (byte89 << 22) | (byte90 << 14) | (byte91 << 6) | (byte92 >>> 2);
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte92 & 3) << 51) | (byte93 << 43) | (byte94 << 35) | (byte95 << 27) | (byte96 << 19) | (byte97 << 11) | (byte98 << 3) | (byte99 >>> 5);
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte99 & 31) << 48) | (byte100 << 40) | (byte101 << 32) | (byte102 << 24) | (byte103 << 16) | (byte104 << 8) | byte105;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte106 << 45) | (byte107 << 37) | (byte108 << 29) | (byte109 << 21) | (byte110 << 13) | (byte111 << 5) | (byte112 >>> 3);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 7) << 50) | (byte113 << 42) | (byte114 << 34) | (byte115 << 26) | (byte116 << 18) | (byte117 << 10) | (byte118 << 2) | (byte119 >>> 6);
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte119 & 63) << 47) | (byte120 << 39) | (byte121 << 31) | (byte122 << 23) | (byte123 << 15) | (byte124 << 7) | (byte125 >>> 1);
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte125 & 1) << 52) | (byte126 << 44) | (byte127 << 36) | (byte128 << 28) | (byte129 << 20) | (byte130 << 12) | (byte131 << 4) | (byte132 >>> 4);
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte132 & 15) << 49) | (byte133 << 41) | (byte134 << 33) | (byte135 << 25) | (byte136 << 17) | (byte137 << 9) | (byte138 << 1) | (byte139 >>> 7);
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte139 & 127) << 46) | (byte140 << 38) | (byte141 << 30) | (byte142 << 22) | (byte143 << 14) | (byte144 << 6) | (byte145 >>> 2);
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte145 & 3) << 51) | (byte146 << 43) | (byte147 << 35) | (byte148 << 27) | (byte149 << 19) | (byte150 << 11) | (byte151 << 3) | (byte152 >>> 5);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 31) << 48) | (byte153 << 40) | (byte154 << 32) | (byte155 << 24) | (byte156 << 16) | (byte157 << 8) | byte158;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte159 << 45) | (byte160 << 37) | (byte161 << 29) | (byte162 << 21) | (byte163 << 13) | (byte164 << 5) | (byte165 >>> 3);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 7) << 50) | (byte166 << 42) | (byte167 << 34) | (byte168 << 26) | (byte169 << 18) | (byte170 << 10) | (byte171 << 2) | (byte172 >>> 6);
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte172 & 63) << 47) | (byte173 << 39) | (byte174 << 31) | (byte175 << 23) | (byte176 << 15) | (byte177 << 7) | (byte178 >>> 1);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 1) << 52) | (byte179 << 44) | (byte180 << 36) | (byte181 << 28) | (byte182 << 20) | (byte183 << 12) | (byte184 << 4) | (byte185 >>> 4);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 15) << 49) | (byte186 << 41) | (byte187 << 33) | (byte188 << 25) | (byte189 << 17) | (byte190 << 9) | (byte191 << 1) | (byte192 >>> 7);
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 127) << 46) | (byte193 << 38) | (byte194 << 30) | (byte195 << 22) | (byte196 << 14) | (byte197 << 6) | (byte198 >>> 2);
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte198 & 3) << 51) | (byte199 << 43) | (byte200 << 35) | (byte201 << 27) | (byte202 << 19) | (byte203 << 11) | (byte204 << 3) | (byte205 >>> 5);
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte205 & 31) << 48) | (byte206 << 40) | (byte207 << 32) | (byte208 << 24) | (byte209 << 16) | (byte210 << 8) | byte211;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte212 << 45) | (byte213 << 37) | (byte214 << 29) | (byte215 << 21) | (byte216 << 13) | (byte217 << 5) | (byte218 >>> 3);
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte218 & 7) << 50) | (byte219 << 42) | (byte220 << 34) | (byte221 << 26) | (byte222 << 18) | (byte223 << 10) | (byte224 << 2) | (byte225 >>> 6);
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte225 & 63) << 47) | (byte226 << 39) | (byte227 << 31) | (byte228 << 23) | (byte229 << 15) | (byte230 << 7) | (byte231 >>> 1);
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte231 & 1) << 52) | (byte232 << 44) | (byte233 << 36) | (byte234 << 28) | (byte235 << 20) | (byte236 << 12) | (byte237 << 4) | (byte238 >>> 4);
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte238 & 15) << 49) | (byte239 << 41) | (byte240 << 33) | (byte241 << 25) | (byte242 << 17) | (byte243 << 9) | (byte244 << 1) | (byte245 >>> 7);
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte245 & 127) << 46) | (byte246 << 38) | (byte247 << 30) | (byte248 << 22) | (byte249 << 14) | (byte250 << 6) | (byte251 >>> 2);
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte251 & 3) << 51) | (byte252 << 43) | (byte253 << 35) | (byte254 << 27) | (byte255 << 19) | (byte256 << 11) | (byte257 << 3) | (byte258 >>> 5);
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte258 & 31) << 48) | (byte259 << 40) | (byte260 << 32) | (byte261 << 24) | (byte262 << 16) | (byte263 << 8) | byte264;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte265 << 45) | (byte266 << 37) | (byte267 << 29) | (byte268 << 21) | (byte269 << 13) | (byte270 << 5) | (byte271 >>> 3);
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte271 & 7) << 50) | (byte272 << 42) | (byte273 << 34) | (byte274 << 26) | (byte275 << 18) | (byte276 << 10) | (byte277 << 2) | (byte278 >>> 6);
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte278 & 63) << 47) | (byte279 << 39) | (byte280 << 31) | (byte281 << 23) | (byte282 << 15) | (byte283 << 7) | (byte284 >>> 1);
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte284 & 1) << 52) | (byte285 << 44) | (byte286 << 36) | (byte287 << 28) | (byte288 << 20) | (byte289 << 12) | (byte290 << 4) | (byte291 >>> 4);
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte291 & 15) << 49) | (byte292 << 41) | (byte293 << 33) | (byte294 << 25) | (byte295 << 17) | (byte296 << 9) | (byte297 << 1) | (byte298 >>> 7);
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte298 & 127) << 46) | (byte299 << 38) | (byte300 << 30) | (byte301 << 22) | (byte302 << 14) | (byte303 << 6) | (byte304 >>> 2);
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte304 & 3) << 51) | (byte305 << 43) | (byte306 << 35) | (byte307 << 27) | (byte308 << 19) | (byte309 << 11) | (byte310 << 3) | (byte311 >>> 5);
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte311 & 31) << 48) | (byte312 << 40) | (byte313 << 32) | (byte314 << 24) | (byte315 << 16) | (byte316 << 8) | byte317;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte318 << 45) | (byte319 << 37) | (byte320 << 29) | (byte321 << 21) | (byte322 << 13) | (byte323 << 5) | (byte324 >>> 3);
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte324 & 7) << 50) | (byte325 << 42) | (byte326 << 34) | (byte327 << 26) | (byte328 << 18) | (byte329 << 10) | (byte330 << 2) | (byte331 >>> 6);
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte331 & 63) << 47) | (byte332 << 39) | (byte333 << 31) | (byte334 << 23) | (byte335 << 15) | (byte336 << 7) | (byte337 >>> 1);
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte337 & 1) << 52) | (byte338 << 44) | (byte339 << 36) | (byte340 << 28) | (byte341 << 20) | (byte342 << 12) | (byte343 << 4) | (byte344 >>> 4);
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte344 & 15) << 49) | (byte345 << 41) | (byte346 << 33) | (byte347 << 25) | (byte348 << 17) | (byte349 << 9) | (byte350 << 1) | (byte351 >>> 7);
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte351 & 127) << 46) | (byte352 << 38) | (byte353 << 30) | (byte354 << 22) | (byte355 << 14) | (byte356 << 6) | (byte357 >>> 2);
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte357 & 3) << 51) | (byte358 << 43) | (byte359 << 35) | (byte360 << 27) | (byte361 << 19) | (byte362 << 11) | (byte363 << 3) | (byte364 >>> 5);
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte364 & 31) << 48) | (byte365 << 40) | (byte366 << 32) | (byte367 << 24) | (byte368 << 16) | (byte369 << 8) | byte370;
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte371 << 45) | (byte372 << 37) | (byte373 << 29) | (byte374 << 21) | (byte375 << 13) | (byte376 << 5) | (byte377 >>> 3);
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte377 & 7) << 50) | (byte378 << 42) | (byte379 << 34) | (byte380 << 26) | (byte381 << 18) | (byte382 << 10) | (byte383 << 2) | (byte384 >>> 6);
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte384 & 63) << 47) | (byte385 << 39) | (byte386 << 31) | (byte387 << 23) | (byte388 << 15) | (byte389 << 7) | (byte390 >>> 1);
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte390 & 1) << 52) | (byte391 << 44) | (byte392 << 36) | (byte393 << 28) | (byte394 << 20) | (byte395 << 12) | (byte396 << 4) | (byte397 >>> 4);
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte397 & 15) << 49) | (byte398 << 41) | (byte399 << 33) | (byte400 << 25) | (byte401 << 17) | (byte402 << 9) | (byte403 << 1) | (byte404 >>> 7);
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- final long byte408 = blocks[blocksOffset++] & 0xFF;
- final long byte409 = blocks[blocksOffset++] & 0xFF;
- final long byte410 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte404 & 127) << 46) | (byte405 << 38) | (byte406 << 30) | (byte407 << 22) | (byte408 << 14) | (byte409 << 6) | (byte410 >>> 2);
- final long byte411 = blocks[blocksOffset++] & 0xFF;
- final long byte412 = blocks[blocksOffset++] & 0xFF;
- final long byte413 = blocks[blocksOffset++] & 0xFF;
- final long byte414 = blocks[blocksOffset++] & 0xFF;
- final long byte415 = blocks[blocksOffset++] & 0xFF;
- final long byte416 = blocks[blocksOffset++] & 0xFF;
- final long byte417 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte410 & 3) << 51) | (byte411 << 43) | (byte412 << 35) | (byte413 << 27) | (byte414 << 19) | (byte415 << 11) | (byte416 << 3) | (byte417 >>> 5);
- final long byte418 = blocks[blocksOffset++] & 0xFF;
- final long byte419 = blocks[blocksOffset++] & 0xFF;
- final long byte420 = blocks[blocksOffset++] & 0xFF;
- final long byte421 = blocks[blocksOffset++] & 0xFF;
- final long byte422 = blocks[blocksOffset++] & 0xFF;
- final long byte423 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte417 & 31) << 48) | (byte418 << 40) | (byte419 << 32) | (byte420 << 24) | (byte421 << 16) | (byte422 << 8) | byte423;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 51);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 51);
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked45.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked45.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked45.java (copie de travail)
@@ -1,701 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked45 extends BulkOperation {
- @Override
- public int blockCount() {
- return 45;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 19;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 524287L) << 26) | (block1 >>> 38);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 274877906943L) << 7) | (block2 >>> 57);
- values[valuesOffset++] = (block2 >>> 12) & 35184372088831L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4095L) << 33) | (block3 >>> 31);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 2147483647L) << 14) | (block4 >>> 50);
- values[valuesOffset++] = (block4 >>> 5) & 35184372088831L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 31L) << 40) | (block5 >>> 24);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 16777215L) << 21) | (block6 >>> 43);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 8796093022207L) << 2) | (block7 >>> 62);
- values[valuesOffset++] = (block7 >>> 17) & 35184372088831L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 131071L) << 28) | (block8 >>> 36);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 68719476735L) << 9) | (block9 >>> 55);
- values[valuesOffset++] = (block9 >>> 10) & 35184372088831L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1023L) << 35) | (block10 >>> 29);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 536870911L) << 16) | (block11 >>> 48);
- values[valuesOffset++] = (block11 >>> 3) & 35184372088831L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 7L) << 42) | (block12 >>> 22);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4194303L) << 23) | (block13 >>> 41);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 2199023255551L) << 4) | (block14 >>> 60);
- values[valuesOffset++] = (block14 >>> 15) & 35184372088831L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 32767L) << 30) | (block15 >>> 34);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 17179869183L) << 11) | (block16 >>> 53);
- values[valuesOffset++] = (block16 >>> 8) & 35184372088831L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 255L) << 37) | (block17 >>> 27);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 134217727L) << 18) | (block18 >>> 46);
- values[valuesOffset++] = (block18 >>> 1) & 35184372088831L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 1L) << 44) | (block19 >>> 20);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1048575L) << 25) | (block20 >>> 39);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 549755813887L) << 6) | (block21 >>> 58);
- values[valuesOffset++] = (block21 >>> 13) & 35184372088831L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 8191L) << 32) | (block22 >>> 32);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 4294967295L) << 13) | (block23 >>> 51);
- values[valuesOffset++] = (block23 >>> 6) & 35184372088831L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 63L) << 39) | (block24 >>> 25);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 33554431L) << 20) | (block25 >>> 44);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 17592186044415L) << 1) | (block26 >>> 63);
- values[valuesOffset++] = (block26 >>> 18) & 35184372088831L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 262143L) << 27) | (block27 >>> 37);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 137438953471L) << 8) | (block28 >>> 56);
- values[valuesOffset++] = (block28 >>> 11) & 35184372088831L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 2047L) << 34) | (block29 >>> 30);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 1073741823L) << 15) | (block30 >>> 49);
- values[valuesOffset++] = (block30 >>> 4) & 35184372088831L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 15L) << 41) | (block31 >>> 23);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 8388607L) << 22) | (block32 >>> 42);
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 4398046511103L) << 3) | (block33 >>> 61);
- values[valuesOffset++] = (block33 >>> 16) & 35184372088831L;
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 65535L) << 29) | (block34 >>> 35);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 34359738367L) << 10) | (block35 >>> 54);
- values[valuesOffset++] = (block35 >>> 9) & 35184372088831L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 511L) << 36) | (block36 >>> 28);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 268435455L) << 17) | (block37 >>> 47);
- values[valuesOffset++] = (block37 >>> 2) & 35184372088831L;
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 3L) << 43) | (block38 >>> 21);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 2097151L) << 24) | (block39 >>> 40);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 1099511627775L) << 5) | (block40 >>> 59);
- values[valuesOffset++] = (block40 >>> 14) & 35184372088831L;
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 16383L) << 31) | (block41 >>> 33);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 8589934591L) << 12) | (block42 >>> 52);
- values[valuesOffset++] = (block42 >>> 7) & 35184372088831L;
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 127L) << 38) | (block43 >>> 26);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 67108863L) << 19) | (block44 >>> 45);
- values[valuesOffset++] = block44 & 35184372088831L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 37) | (byte1 << 29) | (byte2 << 21) | (byte3 << 13) | (byte4 << 5) | (byte5 >>> 3);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 7) << 42) | (byte6 << 34) | (byte7 << 26) | (byte8 << 18) | (byte9 << 10) | (byte10 << 2) | (byte11 >>> 6);
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 63) << 39) | (byte12 << 31) | (byte13 << 23) | (byte14 << 15) | (byte15 << 7) | (byte16 >>> 1);
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 1) << 44) | (byte17 << 36) | (byte18 << 28) | (byte19 << 20) | (byte20 << 12) | (byte21 << 4) | (byte22 >>> 4);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 15) << 41) | (byte23 << 33) | (byte24 << 25) | (byte25 << 17) | (byte26 << 9) | (byte27 << 1) | (byte28 >>> 7);
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 127) << 38) | (byte29 << 30) | (byte30 << 22) | (byte31 << 14) | (byte32 << 6) | (byte33 >>> 2);
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 3) << 43) | (byte34 << 35) | (byte35 << 27) | (byte36 << 19) | (byte37 << 11) | (byte38 << 3) | (byte39 >>> 5);
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte39 & 31) << 40) | (byte40 << 32) | (byte41 << 24) | (byte42 << 16) | (byte43 << 8) | byte44;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte45 << 37) | (byte46 << 29) | (byte47 << 21) | (byte48 << 13) | (byte49 << 5) | (byte50 >>> 3);
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 7) << 42) | (byte51 << 34) | (byte52 << 26) | (byte53 << 18) | (byte54 << 10) | (byte55 << 2) | (byte56 >>> 6);
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 63) << 39) | (byte57 << 31) | (byte58 << 23) | (byte59 << 15) | (byte60 << 7) | (byte61 >>> 1);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 1) << 44) | (byte62 << 36) | (byte63 << 28) | (byte64 << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 41) | (byte68 << 33) | (byte69 << 25) | (byte70 << 17) | (byte71 << 9) | (byte72 << 1) | (byte73 >>> 7);
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 127) << 38) | (byte74 << 30) | (byte75 << 22) | (byte76 << 14) | (byte77 << 6) | (byte78 >>> 2);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 3) << 43) | (byte79 << 35) | (byte80 << 27) | (byte81 << 19) | (byte82 << 11) | (byte83 << 3) | (byte84 >>> 5);
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 31) << 40) | (byte85 << 32) | (byte86 << 24) | (byte87 << 16) | (byte88 << 8) | byte89;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte90 << 37) | (byte91 << 29) | (byte92 << 21) | (byte93 << 13) | (byte94 << 5) | (byte95 >>> 3);
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte95 & 7) << 42) | (byte96 << 34) | (byte97 << 26) | (byte98 << 18) | (byte99 << 10) | (byte100 << 2) | (byte101 >>> 6);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 63) << 39) | (byte102 << 31) | (byte103 << 23) | (byte104 << 15) | (byte105 << 7) | (byte106 >>> 1);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 1) << 44) | (byte107 << 36) | (byte108 << 28) | (byte109 << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 41) | (byte113 << 33) | (byte114 << 25) | (byte115 << 17) | (byte116 << 9) | (byte117 << 1) | (byte118 >>> 7);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 127) << 38) | (byte119 << 30) | (byte120 << 22) | (byte121 << 14) | (byte122 << 6) | (byte123 >>> 2);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 3) << 43) | (byte124 << 35) | (byte125 << 27) | (byte126 << 19) | (byte127 << 11) | (byte128 << 3) | (byte129 >>> 5);
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte129 & 31) << 40) | (byte130 << 32) | (byte131 << 24) | (byte132 << 16) | (byte133 << 8) | byte134;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte135 << 37) | (byte136 << 29) | (byte137 << 21) | (byte138 << 13) | (byte139 << 5) | (byte140 >>> 3);
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 7) << 42) | (byte141 << 34) | (byte142 << 26) | (byte143 << 18) | (byte144 << 10) | (byte145 << 2) | (byte146 >>> 6);
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte146 & 63) << 39) | (byte147 << 31) | (byte148 << 23) | (byte149 << 15) | (byte150 << 7) | (byte151 >>> 1);
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte151 & 1) << 44) | (byte152 << 36) | (byte153 << 28) | (byte154 << 20) | (byte155 << 12) | (byte156 << 4) | (byte157 >>> 4);
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte157 & 15) << 41) | (byte158 << 33) | (byte159 << 25) | (byte160 << 17) | (byte161 << 9) | (byte162 << 1) | (byte163 >>> 7);
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte163 & 127) << 38) | (byte164 << 30) | (byte165 << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 43) | (byte169 << 35) | (byte170 << 27) | (byte171 << 19) | (byte172 << 11) | (byte173 << 3) | (byte174 >>> 5);
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte174 & 31) << 40) | (byte175 << 32) | (byte176 << 24) | (byte177 << 16) | (byte178 << 8) | byte179;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte180 << 37) | (byte181 << 29) | (byte182 << 21) | (byte183 << 13) | (byte184 << 5) | (byte185 >>> 3);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 7) << 42) | (byte186 << 34) | (byte187 << 26) | (byte188 << 18) | (byte189 << 10) | (byte190 << 2) | (byte191 >>> 6);
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte191 & 63) << 39) | (byte192 << 31) | (byte193 << 23) | (byte194 << 15) | (byte195 << 7) | (byte196 >>> 1);
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte196 & 1) << 44) | (byte197 << 36) | (byte198 << 28) | (byte199 << 20) | (byte200 << 12) | (byte201 << 4) | (byte202 >>> 4);
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte202 & 15) << 41) | (byte203 << 33) | (byte204 << 25) | (byte205 << 17) | (byte206 << 9) | (byte207 << 1) | (byte208 >>> 7);
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte208 & 127) << 38) | (byte209 << 30) | (byte210 << 22) | (byte211 << 14) | (byte212 << 6) | (byte213 >>> 2);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 3) << 43) | (byte214 << 35) | (byte215 << 27) | (byte216 << 19) | (byte217 << 11) | (byte218 << 3) | (byte219 >>> 5);
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte219 & 31) << 40) | (byte220 << 32) | (byte221 << 24) | (byte222 << 16) | (byte223 << 8) | byte224;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte225 << 37) | (byte226 << 29) | (byte227 << 21) | (byte228 << 13) | (byte229 << 5) | (byte230 >>> 3);
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte230 & 7) << 42) | (byte231 << 34) | (byte232 << 26) | (byte233 << 18) | (byte234 << 10) | (byte235 << 2) | (byte236 >>> 6);
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte236 & 63) << 39) | (byte237 << 31) | (byte238 << 23) | (byte239 << 15) | (byte240 << 7) | (byte241 >>> 1);
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte241 & 1) << 44) | (byte242 << 36) | (byte243 << 28) | (byte244 << 20) | (byte245 << 12) | (byte246 << 4) | (byte247 >>> 4);
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte247 & 15) << 41) | (byte248 << 33) | (byte249 << 25) | (byte250 << 17) | (byte251 << 9) | (byte252 << 1) | (byte253 >>> 7);
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte253 & 127) << 38) | (byte254 << 30) | (byte255 << 22) | (byte256 << 14) | (byte257 << 6) | (byte258 >>> 2);
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte258 & 3) << 43) | (byte259 << 35) | (byte260 << 27) | (byte261 << 19) | (byte262 << 11) | (byte263 << 3) | (byte264 >>> 5);
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte264 & 31) << 40) | (byte265 << 32) | (byte266 << 24) | (byte267 << 16) | (byte268 << 8) | byte269;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte270 << 37) | (byte271 << 29) | (byte272 << 21) | (byte273 << 13) | (byte274 << 5) | (byte275 >>> 3);
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte275 & 7) << 42) | (byte276 << 34) | (byte277 << 26) | (byte278 << 18) | (byte279 << 10) | (byte280 << 2) | (byte281 >>> 6);
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte281 & 63) << 39) | (byte282 << 31) | (byte283 << 23) | (byte284 << 15) | (byte285 << 7) | (byte286 >>> 1);
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte286 & 1) << 44) | (byte287 << 36) | (byte288 << 28) | (byte289 << 20) | (byte290 << 12) | (byte291 << 4) | (byte292 >>> 4);
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte292 & 15) << 41) | (byte293 << 33) | (byte294 << 25) | (byte295 << 17) | (byte296 << 9) | (byte297 << 1) | (byte298 >>> 7);
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte298 & 127) << 38) | (byte299 << 30) | (byte300 << 22) | (byte301 << 14) | (byte302 << 6) | (byte303 >>> 2);
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte303 & 3) << 43) | (byte304 << 35) | (byte305 << 27) | (byte306 << 19) | (byte307 << 11) | (byte308 << 3) | (byte309 >>> 5);
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte309 & 31) << 40) | (byte310 << 32) | (byte311 << 24) | (byte312 << 16) | (byte313 << 8) | byte314;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte315 << 37) | (byte316 << 29) | (byte317 << 21) | (byte318 << 13) | (byte319 << 5) | (byte320 >>> 3);
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte320 & 7) << 42) | (byte321 << 34) | (byte322 << 26) | (byte323 << 18) | (byte324 << 10) | (byte325 << 2) | (byte326 >>> 6);
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte326 & 63) << 39) | (byte327 << 31) | (byte328 << 23) | (byte329 << 15) | (byte330 << 7) | (byte331 >>> 1);
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte331 & 1) << 44) | (byte332 << 36) | (byte333 << 28) | (byte334 << 20) | (byte335 << 12) | (byte336 << 4) | (byte337 >>> 4);
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte337 & 15) << 41) | (byte338 << 33) | (byte339 << 25) | (byte340 << 17) | (byte341 << 9) | (byte342 << 1) | (byte343 >>> 7);
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte343 & 127) << 38) | (byte344 << 30) | (byte345 << 22) | (byte346 << 14) | (byte347 << 6) | (byte348 >>> 2);
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte348 & 3) << 43) | (byte349 << 35) | (byte350 << 27) | (byte351 << 19) | (byte352 << 11) | (byte353 << 3) | (byte354 >>> 5);
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte354 & 31) << 40) | (byte355 << 32) | (byte356 << 24) | (byte357 << 16) | (byte358 << 8) | byte359;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked37.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked37.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked37.java (copie de travail)
@@ -1,613 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked37 extends BulkOperation {
- @Override
- public int blockCount() {
- return 37;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 27;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 134217727L) << 10) | (block1 >>> 54);
- values[valuesOffset++] = (block1 >>> 17) & 137438953471L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 131071L) << 20) | (block2 >>> 44);
- values[valuesOffset++] = (block2 >>> 7) & 137438953471L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 127L) << 30) | (block3 >>> 34);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 17179869183L) << 3) | (block4 >>> 61);
- values[valuesOffset++] = (block4 >>> 24) & 137438953471L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 16777215L) << 13) | (block5 >>> 51);
- values[valuesOffset++] = (block5 >>> 14) & 137438953471L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 16383L) << 23) | (block6 >>> 41);
- values[valuesOffset++] = (block6 >>> 4) & 137438953471L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 15L) << 33) | (block7 >>> 31);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 2147483647L) << 6) | (block8 >>> 58);
- values[valuesOffset++] = (block8 >>> 21) & 137438953471L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 2097151L) << 16) | (block9 >>> 48);
- values[valuesOffset++] = (block9 >>> 11) & 137438953471L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 2047L) << 26) | (block10 >>> 38);
- values[valuesOffset++] = (block10 >>> 1) & 137438953471L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 1L) << 36) | (block11 >>> 28);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 268435455L) << 9) | (block12 >>> 55);
- values[valuesOffset++] = (block12 >>> 18) & 137438953471L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 262143L) << 19) | (block13 >>> 45);
- values[valuesOffset++] = (block13 >>> 8) & 137438953471L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 255L) << 29) | (block14 >>> 35);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 34359738367L) << 2) | (block15 >>> 62);
- values[valuesOffset++] = (block15 >>> 25) & 137438953471L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 33554431L) << 12) | (block16 >>> 52);
- values[valuesOffset++] = (block16 >>> 15) & 137438953471L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 32767L) << 22) | (block17 >>> 42);
- values[valuesOffset++] = (block17 >>> 5) & 137438953471L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 31L) << 32) | (block18 >>> 32);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 4294967295L) << 5) | (block19 >>> 59);
- values[valuesOffset++] = (block19 >>> 22) & 137438953471L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 4194303L) << 15) | (block20 >>> 49);
- values[valuesOffset++] = (block20 >>> 12) & 137438953471L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 4095L) << 25) | (block21 >>> 39);
- values[valuesOffset++] = (block21 >>> 2) & 137438953471L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 3L) << 35) | (block22 >>> 29);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 536870911L) << 8) | (block23 >>> 56);
- values[valuesOffset++] = (block23 >>> 19) & 137438953471L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 524287L) << 18) | (block24 >>> 46);
- values[valuesOffset++] = (block24 >>> 9) & 137438953471L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 511L) << 28) | (block25 >>> 36);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 68719476735L) << 1) | (block26 >>> 63);
- values[valuesOffset++] = (block26 >>> 26) & 137438953471L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 67108863L) << 11) | (block27 >>> 53);
- values[valuesOffset++] = (block27 >>> 16) & 137438953471L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 65535L) << 21) | (block28 >>> 43);
- values[valuesOffset++] = (block28 >>> 6) & 137438953471L;
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 63L) << 31) | (block29 >>> 33);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 8589934591L) << 4) | (block30 >>> 60);
- values[valuesOffset++] = (block30 >>> 23) & 137438953471L;
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 8388607L) << 14) | (block31 >>> 50);
- values[valuesOffset++] = (block31 >>> 13) & 137438953471L;
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 8191L) << 24) | (block32 >>> 40);
- values[valuesOffset++] = (block32 >>> 3) & 137438953471L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 7L) << 34) | (block33 >>> 30);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 1073741823L) << 7) | (block34 >>> 57);
- values[valuesOffset++] = (block34 >>> 20) & 137438953471L;
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 1048575L) << 17) | (block35 >>> 47);
- values[valuesOffset++] = (block35 >>> 10) & 137438953471L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 1023L) << 27) | (block36 >>> 37);
- values[valuesOffset++] = block36 & 137438953471L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 29) | (byte1 << 21) | (byte2 << 13) | (byte3 << 5) | (byte4 >>> 3);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 7) << 34) | (byte5 << 26) | (byte6 << 18) | (byte7 << 10) | (byte8 << 2) | (byte9 >>> 6);
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 63) << 31) | (byte10 << 23) | (byte11 << 15) | (byte12 << 7) | (byte13 >>> 1);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 1) << 36) | (byte14 << 28) | (byte15 << 20) | (byte16 << 12) | (byte17 << 4) | (byte18 >>> 4);
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 15) << 33) | (byte19 << 25) | (byte20 << 17) | (byte21 << 9) | (byte22 << 1) | (byte23 >>> 7);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 127) << 30) | (byte24 << 22) | (byte25 << 14) | (byte26 << 6) | (byte27 >>> 2);
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte27 & 3) << 35) | (byte28 << 27) | (byte29 << 19) | (byte30 << 11) | (byte31 << 3) | (byte32 >>> 5);
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 31) << 32) | (byte33 << 24) | (byte34 << 16) | (byte35 << 8) | byte36;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte37 << 29) | (byte38 << 21) | (byte39 << 13) | (byte40 << 5) | (byte41 >>> 3);
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte41 & 7) << 34) | (byte42 << 26) | (byte43 << 18) | (byte44 << 10) | (byte45 << 2) | (byte46 >>> 6);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 63) << 31) | (byte47 << 23) | (byte48 << 15) | (byte49 << 7) | (byte50 >>> 1);
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 1) << 36) | (byte51 << 28) | (byte52 << 20) | (byte53 << 12) | (byte54 << 4) | (byte55 >>> 4);
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte55 & 15) << 33) | (byte56 << 25) | (byte57 << 17) | (byte58 << 9) | (byte59 << 1) | (byte60 >>> 7);
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte60 & 127) << 30) | (byte61 << 22) | (byte62 << 14) | (byte63 << 6) | (byte64 >>> 2);
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte64 & 3) << 35) | (byte65 << 27) | (byte66 << 19) | (byte67 << 11) | (byte68 << 3) | (byte69 >>> 5);
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte69 & 31) << 32) | (byte70 << 24) | (byte71 << 16) | (byte72 << 8) | byte73;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte74 << 29) | (byte75 << 21) | (byte76 << 13) | (byte77 << 5) | (byte78 >>> 3);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 7) << 34) | (byte79 << 26) | (byte80 << 18) | (byte81 << 10) | (byte82 << 2) | (byte83 >>> 6);
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte83 & 63) << 31) | (byte84 << 23) | (byte85 << 15) | (byte86 << 7) | (byte87 >>> 1);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 1) << 36) | (byte88 << 28) | (byte89 << 20) | (byte90 << 12) | (byte91 << 4) | (byte92 >>> 4);
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte92 & 15) << 33) | (byte93 << 25) | (byte94 << 17) | (byte95 << 9) | (byte96 << 1) | (byte97 >>> 7);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 127) << 30) | (byte98 << 22) | (byte99 << 14) | (byte100 << 6) | (byte101 >>> 2);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 3) << 35) | (byte102 << 27) | (byte103 << 19) | (byte104 << 11) | (byte105 << 3) | (byte106 >>> 5);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 31) << 32) | (byte107 << 24) | (byte108 << 16) | (byte109 << 8) | byte110;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte111 << 29) | (byte112 << 21) | (byte113 << 13) | (byte114 << 5) | (byte115 >>> 3);
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte115 & 7) << 34) | (byte116 << 26) | (byte117 << 18) | (byte118 << 10) | (byte119 << 2) | (byte120 >>> 6);
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte120 & 63) << 31) | (byte121 << 23) | (byte122 << 15) | (byte123 << 7) | (byte124 >>> 1);
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte124 & 1) << 36) | (byte125 << 28) | (byte126 << 20) | (byte127 << 12) | (byte128 << 4) | (byte129 >>> 4);
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte129 & 15) << 33) | (byte130 << 25) | (byte131 << 17) | (byte132 << 9) | (byte133 << 1) | (byte134 >>> 7);
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 127) << 30) | (byte135 << 22) | (byte136 << 14) | (byte137 << 6) | (byte138 >>> 2);
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte138 & 3) << 35) | (byte139 << 27) | (byte140 << 19) | (byte141 << 11) | (byte142 << 3) | (byte143 >>> 5);
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 31) << 32) | (byte144 << 24) | (byte145 << 16) | (byte146 << 8) | byte147;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte148 << 29) | (byte149 << 21) | (byte150 << 13) | (byte151 << 5) | (byte152 >>> 3);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 7) << 34) | (byte153 << 26) | (byte154 << 18) | (byte155 << 10) | (byte156 << 2) | (byte157 >>> 6);
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte157 & 63) << 31) | (byte158 << 23) | (byte159 << 15) | (byte160 << 7) | (byte161 >>> 1);
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte161 & 1) << 36) | (byte162 << 28) | (byte163 << 20) | (byte164 << 12) | (byte165 << 4) | (byte166 >>> 4);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 15) << 33) | (byte167 << 25) | (byte168 << 17) | (byte169 << 9) | (byte170 << 1) | (byte171 >>> 7);
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte171 & 127) << 30) | (byte172 << 22) | (byte173 << 14) | (byte174 << 6) | (byte175 >>> 2);
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte175 & 3) << 35) | (byte176 << 27) | (byte177 << 19) | (byte178 << 11) | (byte179 << 3) | (byte180 >>> 5);
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte180 & 31) << 32) | (byte181 << 24) | (byte182 << 16) | (byte183 << 8) | byte184;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte185 << 29) | (byte186 << 21) | (byte187 << 13) | (byte188 << 5) | (byte189 >>> 3);
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte189 & 7) << 34) | (byte190 << 26) | (byte191 << 18) | (byte192 << 10) | (byte193 << 2) | (byte194 >>> 6);
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte194 & 63) << 31) | (byte195 << 23) | (byte196 << 15) | (byte197 << 7) | (byte198 >>> 1);
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte198 & 1) << 36) | (byte199 << 28) | (byte200 << 20) | (byte201 << 12) | (byte202 << 4) | (byte203 >>> 4);
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte203 & 15) << 33) | (byte204 << 25) | (byte205 << 17) | (byte206 << 9) | (byte207 << 1) | (byte208 >>> 7);
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte208 & 127) << 30) | (byte209 << 22) | (byte210 << 14) | (byte211 << 6) | (byte212 >>> 2);
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte212 & 3) << 35) | (byte213 << 27) | (byte214 << 19) | (byte215 << 11) | (byte216 << 3) | (byte217 >>> 5);
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte217 & 31) << 32) | (byte218 << 24) | (byte219 << 16) | (byte220 << 8) | byte221;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte222 << 29) | (byte223 << 21) | (byte224 << 13) | (byte225 << 5) | (byte226 >>> 3);
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte226 & 7) << 34) | (byte227 << 26) | (byte228 << 18) | (byte229 << 10) | (byte230 << 2) | (byte231 >>> 6);
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte231 & 63) << 31) | (byte232 << 23) | (byte233 << 15) | (byte234 << 7) | (byte235 >>> 1);
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte235 & 1) << 36) | (byte236 << 28) | (byte237 << 20) | (byte238 << 12) | (byte239 << 4) | (byte240 >>> 4);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 15) << 33) | (byte241 << 25) | (byte242 << 17) | (byte243 << 9) | (byte244 << 1) | (byte245 >>> 7);
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte245 & 127) << 30) | (byte246 << 22) | (byte247 << 14) | (byte248 << 6) | (byte249 >>> 2);
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte249 & 3) << 35) | (byte250 << 27) | (byte251 << 19) | (byte252 << 11) | (byte253 << 3) | (byte254 >>> 5);
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte254 & 31) << 32) | (byte255 << 24) | (byte256 << 16) | (byte257 << 8) | byte258;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte259 << 29) | (byte260 << 21) | (byte261 << 13) | (byte262 << 5) | (byte263 >>> 3);
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte263 & 7) << 34) | (byte264 << 26) | (byte265 << 18) | (byte266 << 10) | (byte267 << 2) | (byte268 >>> 6);
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte268 & 63) << 31) | (byte269 << 23) | (byte270 << 15) | (byte271 << 7) | (byte272 >>> 1);
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte272 & 1) << 36) | (byte273 << 28) | (byte274 << 20) | (byte275 << 12) | (byte276 << 4) | (byte277 >>> 4);
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte277 & 15) << 33) | (byte278 << 25) | (byte279 << 17) | (byte280 << 9) | (byte281 << 1) | (byte282 >>> 7);
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte282 & 127) << 30) | (byte283 << 22) | (byte284 << 14) | (byte285 << 6) | (byte286 >>> 2);
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte286 & 3) << 35) | (byte287 << 27) | (byte288 << 19) | (byte289 << 11) | (byte290 << 3) | (byte291 >>> 5);
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte291 & 31) << 32) | (byte292 << 24) | (byte293 << 16) | (byte294 << 8) | byte295;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked29.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked29.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked29.java (copie de travail)
@@ -1,920 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked29 extends BulkOperation {
- @Override
- public int blockCount() {
- return 29;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 35);
- values[valuesOffset++] = (int) ((block0 >>> 6) & 536870911L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 63L) << 23) | (block1 >>> 41));
- values[valuesOffset++] = (int) ((block1 >>> 12) & 536870911L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 4095L) << 17) | (block2 >>> 47));
- values[valuesOffset++] = (int) ((block2 >>> 18) & 536870911L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 262143L) << 11) | (block3 >>> 53));
- values[valuesOffset++] = (int) ((block3 >>> 24) & 536870911L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 16777215L) << 5) | (block4 >>> 59));
- values[valuesOffset++] = (int) ((block4 >>> 30) & 536870911L);
- values[valuesOffset++] = (int) ((block4 >>> 1) & 536870911L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 1L) << 28) | (block5 >>> 36));
- values[valuesOffset++] = (int) ((block5 >>> 7) & 536870911L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 127L) << 22) | (block6 >>> 42));
- values[valuesOffset++] = (int) ((block6 >>> 13) & 536870911L);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block6 & 8191L) << 16) | (block7 >>> 48));
- values[valuesOffset++] = (int) ((block7 >>> 19) & 536870911L);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block7 & 524287L) << 10) | (block8 >>> 54));
- values[valuesOffset++] = (int) ((block8 >>> 25) & 536870911L);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block8 & 33554431L) << 4) | (block9 >>> 60));
- values[valuesOffset++] = (int) ((block9 >>> 31) & 536870911L);
- values[valuesOffset++] = (int) ((block9 >>> 2) & 536870911L);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block9 & 3L) << 27) | (block10 >>> 37));
- values[valuesOffset++] = (int) ((block10 >>> 8) & 536870911L);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block10 & 255L) << 21) | (block11 >>> 43));
- values[valuesOffset++] = (int) ((block11 >>> 14) & 536870911L);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block11 & 16383L) << 15) | (block12 >>> 49));
- values[valuesOffset++] = (int) ((block12 >>> 20) & 536870911L);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block12 & 1048575L) << 9) | (block13 >>> 55));
- values[valuesOffset++] = (int) ((block13 >>> 26) & 536870911L);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block13 & 67108863L) << 3) | (block14 >>> 61));
- values[valuesOffset++] = (int) ((block14 >>> 32) & 536870911L);
- values[valuesOffset++] = (int) ((block14 >>> 3) & 536870911L);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block14 & 7L) << 26) | (block15 >>> 38));
- values[valuesOffset++] = (int) ((block15 >>> 9) & 536870911L);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block15 & 511L) << 20) | (block16 >>> 44));
- values[valuesOffset++] = (int) ((block16 >>> 15) & 536870911L);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block16 & 32767L) << 14) | (block17 >>> 50));
- values[valuesOffset++] = (int) ((block17 >>> 21) & 536870911L);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block17 & 2097151L) << 8) | (block18 >>> 56));
- values[valuesOffset++] = (int) ((block18 >>> 27) & 536870911L);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block18 & 134217727L) << 2) | (block19 >>> 62));
- values[valuesOffset++] = (int) ((block19 >>> 33) & 536870911L);
- values[valuesOffset++] = (int) ((block19 >>> 4) & 536870911L);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block19 & 15L) << 25) | (block20 >>> 39));
- values[valuesOffset++] = (int) ((block20 >>> 10) & 536870911L);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block20 & 1023L) << 19) | (block21 >>> 45));
- values[valuesOffset++] = (int) ((block21 >>> 16) & 536870911L);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block21 & 65535L) << 13) | (block22 >>> 51));
- values[valuesOffset++] = (int) ((block22 >>> 22) & 536870911L);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block22 & 4194303L) << 7) | (block23 >>> 57));
- values[valuesOffset++] = (int) ((block23 >>> 28) & 536870911L);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block23 & 268435455L) << 1) | (block24 >>> 63));
- values[valuesOffset++] = (int) ((block24 >>> 34) & 536870911L);
- values[valuesOffset++] = (int) ((block24 >>> 5) & 536870911L);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block24 & 31L) << 24) | (block25 >>> 40));
- values[valuesOffset++] = (int) ((block25 >>> 11) & 536870911L);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block25 & 2047L) << 18) | (block26 >>> 46));
- values[valuesOffset++] = (int) ((block26 >>> 17) & 536870911L);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block26 & 131071L) << 12) | (block27 >>> 52));
- values[valuesOffset++] = (int) ((block27 >>> 23) & 536870911L);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block27 & 8388607L) << 6) | (block28 >>> 58));
- values[valuesOffset++] = (int) ((block28 >>> 29) & 536870911L);
- values[valuesOffset++] = (int) (block28 & 536870911L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 21) | (byte1 << 13) | (byte2 << 5) | (byte3 >>> 3);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 7) << 26) | (byte4 << 18) | (byte5 << 10) | (byte6 << 2) | (byte7 >>> 6);
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 63) << 23) | (byte8 << 15) | (byte9 << 7) | (byte10 >>> 1);
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 1) << 28) | (byte11 << 20) | (byte12 << 12) | (byte13 << 4) | (byte14 >>> 4);
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 15) << 25) | (byte15 << 17) | (byte16 << 9) | (byte17 << 1) | (byte18 >>> 7);
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 127) << 22) | (byte19 << 14) | (byte20 << 6) | (byte21 >>> 2);
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 3) << 27) | (byte22 << 19) | (byte23 << 11) | (byte24 << 3) | (byte25 >>> 5);
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte25 & 31) << 24) | (byte26 << 16) | (byte27 << 8) | byte28;
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte29 << 21) | (byte30 << 13) | (byte31 << 5) | (byte32 >>> 3);
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 7) << 26) | (byte33 << 18) | (byte34 << 10) | (byte35 << 2) | (byte36 >>> 6);
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte36 & 63) << 23) | (byte37 << 15) | (byte38 << 7) | (byte39 >>> 1);
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte39 & 1) << 28) | (byte40 << 20) | (byte41 << 12) | (byte42 << 4) | (byte43 >>> 4);
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 15) << 25) | (byte44 << 17) | (byte45 << 9) | (byte46 << 1) | (byte47 >>> 7);
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 127) << 22) | (byte48 << 14) | (byte49 << 6) | (byte50 >>> 2);
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 3) << 27) | (byte51 << 19) | (byte52 << 11) | (byte53 << 3) | (byte54 >>> 5);
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- final int byte56 = blocks[blocksOffset++] & 0xFF;
- final int byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte54 & 31) << 24) | (byte55 << 16) | (byte56 << 8) | byte57;
- final int byte58 = blocks[blocksOffset++] & 0xFF;
- final int byte59 = blocks[blocksOffset++] & 0xFF;
- final int byte60 = blocks[blocksOffset++] & 0xFF;
- final int byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte58 << 21) | (byte59 << 13) | (byte60 << 5) | (byte61 >>> 3);
- final int byte62 = blocks[blocksOffset++] & 0xFF;
- final int byte63 = blocks[blocksOffset++] & 0xFF;
- final int byte64 = blocks[blocksOffset++] & 0xFF;
- final int byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 7) << 26) | (byte62 << 18) | (byte63 << 10) | (byte64 << 2) | (byte65 >>> 6);
- final int byte66 = blocks[blocksOffset++] & 0xFF;
- final int byte67 = blocks[blocksOffset++] & 0xFF;
- final int byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 63) << 23) | (byte66 << 15) | (byte67 << 7) | (byte68 >>> 1);
- final int byte69 = blocks[blocksOffset++] & 0xFF;
- final int byte70 = blocks[blocksOffset++] & 0xFF;
- final int byte71 = blocks[blocksOffset++] & 0xFF;
- final int byte72 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 1) << 28) | (byte69 << 20) | (byte70 << 12) | (byte71 << 4) | (byte72 >>> 4);
- final int byte73 = blocks[blocksOffset++] & 0xFF;
- final int byte74 = blocks[blocksOffset++] & 0xFF;
- final int byte75 = blocks[blocksOffset++] & 0xFF;
- final int byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte72 & 15) << 25) | (byte73 << 17) | (byte74 << 9) | (byte75 << 1) | (byte76 >>> 7);
- final int byte77 = blocks[blocksOffset++] & 0xFF;
- final int byte78 = blocks[blocksOffset++] & 0xFF;
- final int byte79 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 127) << 22) | (byte77 << 14) | (byte78 << 6) | (byte79 >>> 2);
- final int byte80 = blocks[blocksOffset++] & 0xFF;
- final int byte81 = blocks[blocksOffset++] & 0xFF;
- final int byte82 = blocks[blocksOffset++] & 0xFF;
- final int byte83 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte79 & 3) << 27) | (byte80 << 19) | (byte81 << 11) | (byte82 << 3) | (byte83 >>> 5);
- final int byte84 = blocks[blocksOffset++] & 0xFF;
- final int byte85 = blocks[blocksOffset++] & 0xFF;
- final int byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte83 & 31) << 24) | (byte84 << 16) | (byte85 << 8) | byte86;
- final int byte87 = blocks[blocksOffset++] & 0xFF;
- final int byte88 = blocks[blocksOffset++] & 0xFF;
- final int byte89 = blocks[blocksOffset++] & 0xFF;
- final int byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte87 << 21) | (byte88 << 13) | (byte89 << 5) | (byte90 >>> 3);
- final int byte91 = blocks[blocksOffset++] & 0xFF;
- final int byte92 = blocks[blocksOffset++] & 0xFF;
- final int byte93 = blocks[blocksOffset++] & 0xFF;
- final int byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte90 & 7) << 26) | (byte91 << 18) | (byte92 << 10) | (byte93 << 2) | (byte94 >>> 6);
- final int byte95 = blocks[blocksOffset++] & 0xFF;
- final int byte96 = blocks[blocksOffset++] & 0xFF;
- final int byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 63) << 23) | (byte95 << 15) | (byte96 << 7) | (byte97 >>> 1);
- final int byte98 = blocks[blocksOffset++] & 0xFF;
- final int byte99 = blocks[blocksOffset++] & 0xFF;
- final int byte100 = blocks[blocksOffset++] & 0xFF;
- final int byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 1) << 28) | (byte98 << 20) | (byte99 << 12) | (byte100 << 4) | (byte101 >>> 4);
- final int byte102 = blocks[blocksOffset++] & 0xFF;
- final int byte103 = blocks[blocksOffset++] & 0xFF;
- final int byte104 = blocks[blocksOffset++] & 0xFF;
- final int byte105 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 15) << 25) | (byte102 << 17) | (byte103 << 9) | (byte104 << 1) | (byte105 >>> 7);
- final int byte106 = blocks[blocksOffset++] & 0xFF;
- final int byte107 = blocks[blocksOffset++] & 0xFF;
- final int byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte105 & 127) << 22) | (byte106 << 14) | (byte107 << 6) | (byte108 >>> 2);
- final int byte109 = blocks[blocksOffset++] & 0xFF;
- final int byte110 = blocks[blocksOffset++] & 0xFF;
- final int byte111 = blocks[blocksOffset++] & 0xFF;
- final int byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 3) << 27) | (byte109 << 19) | (byte110 << 11) | (byte111 << 3) | (byte112 >>> 5);
- final int byte113 = blocks[blocksOffset++] & 0xFF;
- final int byte114 = blocks[blocksOffset++] & 0xFF;
- final int byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 31) << 24) | (byte113 << 16) | (byte114 << 8) | byte115;
- final int byte116 = blocks[blocksOffset++] & 0xFF;
- final int byte117 = blocks[blocksOffset++] & 0xFF;
- final int byte118 = blocks[blocksOffset++] & 0xFF;
- final int byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte116 << 21) | (byte117 << 13) | (byte118 << 5) | (byte119 >>> 3);
- final int byte120 = blocks[blocksOffset++] & 0xFF;
- final int byte121 = blocks[blocksOffset++] & 0xFF;
- final int byte122 = blocks[blocksOffset++] & 0xFF;
- final int byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte119 & 7) << 26) | (byte120 << 18) | (byte121 << 10) | (byte122 << 2) | (byte123 >>> 6);
- final int byte124 = blocks[blocksOffset++] & 0xFF;
- final int byte125 = blocks[blocksOffset++] & 0xFF;
- final int byte126 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 63) << 23) | (byte124 << 15) | (byte125 << 7) | (byte126 >>> 1);
- final int byte127 = blocks[blocksOffset++] & 0xFF;
- final int byte128 = blocks[blocksOffset++] & 0xFF;
- final int byte129 = blocks[blocksOffset++] & 0xFF;
- final int byte130 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte126 & 1) << 28) | (byte127 << 20) | (byte128 << 12) | (byte129 << 4) | (byte130 >>> 4);
- final int byte131 = blocks[blocksOffset++] & 0xFF;
- final int byte132 = blocks[blocksOffset++] & 0xFF;
- final int byte133 = blocks[blocksOffset++] & 0xFF;
- final int byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte130 & 15) << 25) | (byte131 << 17) | (byte132 << 9) | (byte133 << 1) | (byte134 >>> 7);
- final int byte135 = blocks[blocksOffset++] & 0xFF;
- final int byte136 = blocks[blocksOffset++] & 0xFF;
- final int byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 127) << 22) | (byte135 << 14) | (byte136 << 6) | (byte137 >>> 2);
- final int byte138 = blocks[blocksOffset++] & 0xFF;
- final int byte139 = blocks[blocksOffset++] & 0xFF;
- final int byte140 = blocks[blocksOffset++] & 0xFF;
- final int byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 3) << 27) | (byte138 << 19) | (byte139 << 11) | (byte140 << 3) | (byte141 >>> 5);
- final int byte142 = blocks[blocksOffset++] & 0xFF;
- final int byte143 = blocks[blocksOffset++] & 0xFF;
- final int byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 31) << 24) | (byte142 << 16) | (byte143 << 8) | byte144;
- final int byte145 = blocks[blocksOffset++] & 0xFF;
- final int byte146 = blocks[blocksOffset++] & 0xFF;
- final int byte147 = blocks[blocksOffset++] & 0xFF;
- final int byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte145 << 21) | (byte146 << 13) | (byte147 << 5) | (byte148 >>> 3);
- final int byte149 = blocks[blocksOffset++] & 0xFF;
- final int byte150 = blocks[blocksOffset++] & 0xFF;
- final int byte151 = blocks[blocksOffset++] & 0xFF;
- final int byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 7) << 26) | (byte149 << 18) | (byte150 << 10) | (byte151 << 2) | (byte152 >>> 6);
- final int byte153 = blocks[blocksOffset++] & 0xFF;
- final int byte154 = blocks[blocksOffset++] & 0xFF;
- final int byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 63) << 23) | (byte153 << 15) | (byte154 << 7) | (byte155 >>> 1);
- final int byte156 = blocks[blocksOffset++] & 0xFF;
- final int byte157 = blocks[blocksOffset++] & 0xFF;
- final int byte158 = blocks[blocksOffset++] & 0xFF;
- final int byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 1) << 28) | (byte156 << 20) | (byte157 << 12) | (byte158 << 4) | (byte159 >>> 4);
- final int byte160 = blocks[blocksOffset++] & 0xFF;
- final int byte161 = blocks[blocksOffset++] & 0xFF;
- final int byte162 = blocks[blocksOffset++] & 0xFF;
- final int byte163 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 15) << 25) | (byte160 << 17) | (byte161 << 9) | (byte162 << 1) | (byte163 >>> 7);
- final int byte164 = blocks[blocksOffset++] & 0xFF;
- final int byte165 = blocks[blocksOffset++] & 0xFF;
- final int byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte163 & 127) << 22) | (byte164 << 14) | (byte165 << 6) | (byte166 >>> 2);
- final int byte167 = blocks[blocksOffset++] & 0xFF;
- final int byte168 = blocks[blocksOffset++] & 0xFF;
- final int byte169 = blocks[blocksOffset++] & 0xFF;
- final int byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 3) << 27) | (byte167 << 19) | (byte168 << 11) | (byte169 << 3) | (byte170 >>> 5);
- final int byte171 = blocks[blocksOffset++] & 0xFF;
- final int byte172 = blocks[blocksOffset++] & 0xFF;
- final int byte173 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 31) << 24) | (byte171 << 16) | (byte172 << 8) | byte173;
- final int byte174 = blocks[blocksOffset++] & 0xFF;
- final int byte175 = blocks[blocksOffset++] & 0xFF;
- final int byte176 = blocks[blocksOffset++] & 0xFF;
- final int byte177 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte174 << 21) | (byte175 << 13) | (byte176 << 5) | (byte177 >>> 3);
- final int byte178 = blocks[blocksOffset++] & 0xFF;
- final int byte179 = blocks[blocksOffset++] & 0xFF;
- final int byte180 = blocks[blocksOffset++] & 0xFF;
- final int byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte177 & 7) << 26) | (byte178 << 18) | (byte179 << 10) | (byte180 << 2) | (byte181 >>> 6);
- final int byte182 = blocks[blocksOffset++] & 0xFF;
- final int byte183 = blocks[blocksOffset++] & 0xFF;
- final int byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 63) << 23) | (byte182 << 15) | (byte183 << 7) | (byte184 >>> 1);
- final int byte185 = blocks[blocksOffset++] & 0xFF;
- final int byte186 = blocks[blocksOffset++] & 0xFF;
- final int byte187 = blocks[blocksOffset++] & 0xFF;
- final int byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 1) << 28) | (byte185 << 20) | (byte186 << 12) | (byte187 << 4) | (byte188 >>> 4);
- final int byte189 = blocks[blocksOffset++] & 0xFF;
- final int byte190 = blocks[blocksOffset++] & 0xFF;
- final int byte191 = blocks[blocksOffset++] & 0xFF;
- final int byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte188 & 15) << 25) | (byte189 << 17) | (byte190 << 9) | (byte191 << 1) | (byte192 >>> 7);
- final int byte193 = blocks[blocksOffset++] & 0xFF;
- final int byte194 = blocks[blocksOffset++] & 0xFF;
- final int byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 127) << 22) | (byte193 << 14) | (byte194 << 6) | (byte195 >>> 2);
- final int byte196 = blocks[blocksOffset++] & 0xFF;
- final int byte197 = blocks[blocksOffset++] & 0xFF;
- final int byte198 = blocks[blocksOffset++] & 0xFF;
- final int byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte195 & 3) << 27) | (byte196 << 19) | (byte197 << 11) | (byte198 << 3) | (byte199 >>> 5);
- final int byte200 = blocks[blocksOffset++] & 0xFF;
- final int byte201 = blocks[blocksOffset++] & 0xFF;
- final int byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 31) << 24) | (byte200 << 16) | (byte201 << 8) | byte202;
- final int byte203 = blocks[blocksOffset++] & 0xFF;
- final int byte204 = blocks[blocksOffset++] & 0xFF;
- final int byte205 = blocks[blocksOffset++] & 0xFF;
- final int byte206 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte203 << 21) | (byte204 << 13) | (byte205 << 5) | (byte206 >>> 3);
- final int byte207 = blocks[blocksOffset++] & 0xFF;
- final int byte208 = blocks[blocksOffset++] & 0xFF;
- final int byte209 = blocks[blocksOffset++] & 0xFF;
- final int byte210 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte206 & 7) << 26) | (byte207 << 18) | (byte208 << 10) | (byte209 << 2) | (byte210 >>> 6);
- final int byte211 = blocks[blocksOffset++] & 0xFF;
- final int byte212 = blocks[blocksOffset++] & 0xFF;
- final int byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte210 & 63) << 23) | (byte211 << 15) | (byte212 << 7) | (byte213 >>> 1);
- final int byte214 = blocks[blocksOffset++] & 0xFF;
- final int byte215 = blocks[blocksOffset++] & 0xFF;
- final int byte216 = blocks[blocksOffset++] & 0xFF;
- final int byte217 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 1) << 28) | (byte214 << 20) | (byte215 << 12) | (byte216 << 4) | (byte217 >>> 4);
- final int byte218 = blocks[blocksOffset++] & 0xFF;
- final int byte219 = blocks[blocksOffset++] & 0xFF;
- final int byte220 = blocks[blocksOffset++] & 0xFF;
- final int byte221 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte217 & 15) << 25) | (byte218 << 17) | (byte219 << 9) | (byte220 << 1) | (byte221 >>> 7);
- final int byte222 = blocks[blocksOffset++] & 0xFF;
- final int byte223 = blocks[blocksOffset++] & 0xFF;
- final int byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte221 & 127) << 22) | (byte222 << 14) | (byte223 << 6) | (byte224 >>> 2);
- final int byte225 = blocks[blocksOffset++] & 0xFF;
- final int byte226 = blocks[blocksOffset++] & 0xFF;
- final int byte227 = blocks[blocksOffset++] & 0xFF;
- final int byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 3) << 27) | (byte225 << 19) | (byte226 << 11) | (byte227 << 3) | (byte228 >>> 5);
- final int byte229 = blocks[blocksOffset++] & 0xFF;
- final int byte230 = blocks[blocksOffset++] & 0xFF;
- final int byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 31) << 24) | (byte229 << 16) | (byte230 << 8) | byte231;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 35;
- values[valuesOffset++] = (block0 >>> 6) & 536870911L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 63L) << 23) | (block1 >>> 41);
- values[valuesOffset++] = (block1 >>> 12) & 536870911L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 4095L) << 17) | (block2 >>> 47);
- values[valuesOffset++] = (block2 >>> 18) & 536870911L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 262143L) << 11) | (block3 >>> 53);
- values[valuesOffset++] = (block3 >>> 24) & 536870911L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 16777215L) << 5) | (block4 >>> 59);
- values[valuesOffset++] = (block4 >>> 30) & 536870911L;
- values[valuesOffset++] = (block4 >>> 1) & 536870911L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1L) << 28) | (block5 >>> 36);
- values[valuesOffset++] = (block5 >>> 7) & 536870911L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 127L) << 22) | (block6 >>> 42);
- values[valuesOffset++] = (block6 >>> 13) & 536870911L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 8191L) << 16) | (block7 >>> 48);
- values[valuesOffset++] = (block7 >>> 19) & 536870911L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 524287L) << 10) | (block8 >>> 54);
- values[valuesOffset++] = (block8 >>> 25) & 536870911L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 33554431L) << 4) | (block9 >>> 60);
- values[valuesOffset++] = (block9 >>> 31) & 536870911L;
- values[valuesOffset++] = (block9 >>> 2) & 536870911L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 3L) << 27) | (block10 >>> 37);
- values[valuesOffset++] = (block10 >>> 8) & 536870911L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 255L) << 21) | (block11 >>> 43);
- values[valuesOffset++] = (block11 >>> 14) & 536870911L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 16383L) << 15) | (block12 >>> 49);
- values[valuesOffset++] = (block12 >>> 20) & 536870911L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 1048575L) << 9) | (block13 >>> 55);
- values[valuesOffset++] = (block13 >>> 26) & 536870911L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 67108863L) << 3) | (block14 >>> 61);
- values[valuesOffset++] = (block14 >>> 32) & 536870911L;
- values[valuesOffset++] = (block14 >>> 3) & 536870911L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 7L) << 26) | (block15 >>> 38);
- values[valuesOffset++] = (block15 >>> 9) & 536870911L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 511L) << 20) | (block16 >>> 44);
- values[valuesOffset++] = (block16 >>> 15) & 536870911L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 32767L) << 14) | (block17 >>> 50);
- values[valuesOffset++] = (block17 >>> 21) & 536870911L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 2097151L) << 8) | (block18 >>> 56);
- values[valuesOffset++] = (block18 >>> 27) & 536870911L;
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 134217727L) << 2) | (block19 >>> 62);
- values[valuesOffset++] = (block19 >>> 33) & 536870911L;
- values[valuesOffset++] = (block19 >>> 4) & 536870911L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 15L) << 25) | (block20 >>> 39);
- values[valuesOffset++] = (block20 >>> 10) & 536870911L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 1023L) << 19) | (block21 >>> 45);
- values[valuesOffset++] = (block21 >>> 16) & 536870911L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 65535L) << 13) | (block22 >>> 51);
- values[valuesOffset++] = (block22 >>> 22) & 536870911L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 4194303L) << 7) | (block23 >>> 57);
- values[valuesOffset++] = (block23 >>> 28) & 536870911L;
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 268435455L) << 1) | (block24 >>> 63);
- values[valuesOffset++] = (block24 >>> 34) & 536870911L;
- values[valuesOffset++] = (block24 >>> 5) & 536870911L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 31L) << 24) | (block25 >>> 40);
- values[valuesOffset++] = (block25 >>> 11) & 536870911L;
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 2047L) << 18) | (block26 >>> 46);
- values[valuesOffset++] = (block26 >>> 17) & 536870911L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 131071L) << 12) | (block27 >>> 52);
- values[valuesOffset++] = (block27 >>> 23) & 536870911L;
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 8388607L) << 6) | (block28 >>> 58);
- values[valuesOffset++] = (block28 >>> 29) & 536870911L;
- values[valuesOffset++] = block28 & 536870911L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 21) | (byte1 << 13) | (byte2 << 5) | (byte3 >>> 3);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 7) << 26) | (byte4 << 18) | (byte5 << 10) | (byte6 << 2) | (byte7 >>> 6);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 63) << 23) | (byte8 << 15) | (byte9 << 7) | (byte10 >>> 1);
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 1) << 28) | (byte11 << 20) | (byte12 << 12) | (byte13 << 4) | (byte14 >>> 4);
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 15) << 25) | (byte15 << 17) | (byte16 << 9) | (byte17 << 1) | (byte18 >>> 7);
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 127) << 22) | (byte19 << 14) | (byte20 << 6) | (byte21 >>> 2);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 3) << 27) | (byte22 << 19) | (byte23 << 11) | (byte24 << 3) | (byte25 >>> 5);
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte25 & 31) << 24) | (byte26 << 16) | (byte27 << 8) | byte28;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte29 << 21) | (byte30 << 13) | (byte31 << 5) | (byte32 >>> 3);
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 7) << 26) | (byte33 << 18) | (byte34 << 10) | (byte35 << 2) | (byte36 >>> 6);
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte36 & 63) << 23) | (byte37 << 15) | (byte38 << 7) | (byte39 >>> 1);
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte39 & 1) << 28) | (byte40 << 20) | (byte41 << 12) | (byte42 << 4) | (byte43 >>> 4);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 15) << 25) | (byte44 << 17) | (byte45 << 9) | (byte46 << 1) | (byte47 >>> 7);
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 127) << 22) | (byte48 << 14) | (byte49 << 6) | (byte50 >>> 2);
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 3) << 27) | (byte51 << 19) | (byte52 << 11) | (byte53 << 3) | (byte54 >>> 5);
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte54 & 31) << 24) | (byte55 << 16) | (byte56 << 8) | byte57;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte58 << 21) | (byte59 << 13) | (byte60 << 5) | (byte61 >>> 3);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 7) << 26) | (byte62 << 18) | (byte63 << 10) | (byte64 << 2) | (byte65 >>> 6);
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 63) << 23) | (byte66 << 15) | (byte67 << 7) | (byte68 >>> 1);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 1) << 28) | (byte69 << 20) | (byte70 << 12) | (byte71 << 4) | (byte72 >>> 4);
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte72 & 15) << 25) | (byte73 << 17) | (byte74 << 9) | (byte75 << 1) | (byte76 >>> 7);
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 127) << 22) | (byte77 << 14) | (byte78 << 6) | (byte79 >>> 2);
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte79 & 3) << 27) | (byte80 << 19) | (byte81 << 11) | (byte82 << 3) | (byte83 >>> 5);
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte83 & 31) << 24) | (byte84 << 16) | (byte85 << 8) | byte86;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte87 << 21) | (byte88 << 13) | (byte89 << 5) | (byte90 >>> 3);
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte90 & 7) << 26) | (byte91 << 18) | (byte92 << 10) | (byte93 << 2) | (byte94 >>> 6);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 63) << 23) | (byte95 << 15) | (byte96 << 7) | (byte97 >>> 1);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 1) << 28) | (byte98 << 20) | (byte99 << 12) | (byte100 << 4) | (byte101 >>> 4);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 15) << 25) | (byte102 << 17) | (byte103 << 9) | (byte104 << 1) | (byte105 >>> 7);
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte105 & 127) << 22) | (byte106 << 14) | (byte107 << 6) | (byte108 >>> 2);
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 3) << 27) | (byte109 << 19) | (byte110 << 11) | (byte111 << 3) | (byte112 >>> 5);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 31) << 24) | (byte113 << 16) | (byte114 << 8) | byte115;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte116 << 21) | (byte117 << 13) | (byte118 << 5) | (byte119 >>> 3);
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte119 & 7) << 26) | (byte120 << 18) | (byte121 << 10) | (byte122 << 2) | (byte123 >>> 6);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 63) << 23) | (byte124 << 15) | (byte125 << 7) | (byte126 >>> 1);
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte126 & 1) << 28) | (byte127 << 20) | (byte128 << 12) | (byte129 << 4) | (byte130 >>> 4);
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte130 & 15) << 25) | (byte131 << 17) | (byte132 << 9) | (byte133 << 1) | (byte134 >>> 7);
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 127) << 22) | (byte135 << 14) | (byte136 << 6) | (byte137 >>> 2);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 3) << 27) | (byte138 << 19) | (byte139 << 11) | (byte140 << 3) | (byte141 >>> 5);
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 31) << 24) | (byte142 << 16) | (byte143 << 8) | byte144;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte145 << 21) | (byte146 << 13) | (byte147 << 5) | (byte148 >>> 3);
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 7) << 26) | (byte149 << 18) | (byte150 << 10) | (byte151 << 2) | (byte152 >>> 6);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 63) << 23) | (byte153 << 15) | (byte154 << 7) | (byte155 >>> 1);
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 1) << 28) | (byte156 << 20) | (byte157 << 12) | (byte158 << 4) | (byte159 >>> 4);
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 15) << 25) | (byte160 << 17) | (byte161 << 9) | (byte162 << 1) | (byte163 >>> 7);
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte163 & 127) << 22) | (byte164 << 14) | (byte165 << 6) | (byte166 >>> 2);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 3) << 27) | (byte167 << 19) | (byte168 << 11) | (byte169 << 3) | (byte170 >>> 5);
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 31) << 24) | (byte171 << 16) | (byte172 << 8) | byte173;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte174 << 21) | (byte175 << 13) | (byte176 << 5) | (byte177 >>> 3);
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte177 & 7) << 26) | (byte178 << 18) | (byte179 << 10) | (byte180 << 2) | (byte181 >>> 6);
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 63) << 23) | (byte182 << 15) | (byte183 << 7) | (byte184 >>> 1);
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte184 & 1) << 28) | (byte185 << 20) | (byte186 << 12) | (byte187 << 4) | (byte188 >>> 4);
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte188 & 15) << 25) | (byte189 << 17) | (byte190 << 9) | (byte191 << 1) | (byte192 >>> 7);
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 127) << 22) | (byte193 << 14) | (byte194 << 6) | (byte195 >>> 2);
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte195 & 3) << 27) | (byte196 << 19) | (byte197 << 11) | (byte198 << 3) | (byte199 >>> 5);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 31) << 24) | (byte200 << 16) | (byte201 << 8) | byte202;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte203 << 21) | (byte204 << 13) | (byte205 << 5) | (byte206 >>> 3);
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte206 & 7) << 26) | (byte207 << 18) | (byte208 << 10) | (byte209 << 2) | (byte210 >>> 6);
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte210 & 63) << 23) | (byte211 << 15) | (byte212 << 7) | (byte213 >>> 1);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 1) << 28) | (byte214 << 20) | (byte215 << 12) | (byte216 << 4) | (byte217 >>> 4);
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte217 & 15) << 25) | (byte218 << 17) | (byte219 << 9) | (byte220 << 1) | (byte221 >>> 7);
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte221 & 127) << 22) | (byte222 << 14) | (byte223 << 6) | (byte224 >>> 2);
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 3) << 27) | (byte225 << 19) | (byte226 << 11) | (byte227 << 3) | (byte228 >>> 5);
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte228 & 31) << 24) | (byte229 << 16) | (byte230 << 8) | byte231;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 29) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 29) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked57.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked57.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked57.java (copie de travail)
@@ -1,833 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked57 extends BulkOperation {
- @Override
- public int blockCount() {
- return 57;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 7;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 127L) << 50) | (block1 >>> 14);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 16383L) << 43) | (block2 >>> 21);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 2097151L) << 36) | (block3 >>> 28);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 268435455L) << 29) | (block4 >>> 35);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 34359738367L) << 22) | (block5 >>> 42);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 4398046511103L) << 15) | (block6 >>> 49);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 562949953421311L) << 8) | (block7 >>> 56);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 72057594037927935L) << 1) | (block8 >>> 63);
- values[valuesOffset++] = (block8 >>> 6) & 144115188075855871L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 63L) << 51) | (block9 >>> 13);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 8191L) << 44) | (block10 >>> 20);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 1048575L) << 37) | (block11 >>> 27);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 134217727L) << 30) | (block12 >>> 34);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 17179869183L) << 23) | (block13 >>> 41);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 2199023255551L) << 16) | (block14 >>> 48);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 281474976710655L) << 9) | (block15 >>> 55);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 36028797018963967L) << 2) | (block16 >>> 62);
- values[valuesOffset++] = (block16 >>> 5) & 144115188075855871L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 31L) << 52) | (block17 >>> 12);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 4095L) << 45) | (block18 >>> 19);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 524287L) << 38) | (block19 >>> 26);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 67108863L) << 31) | (block20 >>> 33);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 8589934591L) << 24) | (block21 >>> 40);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 1099511627775L) << 17) | (block22 >>> 47);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 140737488355327L) << 10) | (block23 >>> 54);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 18014398509481983L) << 3) | (block24 >>> 61);
- values[valuesOffset++] = (block24 >>> 4) & 144115188075855871L;
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 15L) << 53) | (block25 >>> 11);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 2047L) << 46) | (block26 >>> 18);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 262143L) << 39) | (block27 >>> 25);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 33554431L) << 32) | (block28 >>> 32);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 4294967295L) << 25) | (block29 >>> 39);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 549755813887L) << 18) | (block30 >>> 46);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 70368744177663L) << 11) | (block31 >>> 53);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 9007199254740991L) << 4) | (block32 >>> 60);
- values[valuesOffset++] = (block32 >>> 3) & 144115188075855871L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 7L) << 54) | (block33 >>> 10);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 1023L) << 47) | (block34 >>> 17);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 131071L) << 40) | (block35 >>> 24);
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 16777215L) << 33) | (block36 >>> 31);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 2147483647L) << 26) | (block37 >>> 38);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 274877906943L) << 19) | (block38 >>> 45);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 35184372088831L) << 12) | (block39 >>> 52);
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 4503599627370495L) << 5) | (block40 >>> 59);
- values[valuesOffset++] = (block40 >>> 2) & 144115188075855871L;
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 3L) << 55) | (block41 >>> 9);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 511L) << 48) | (block42 >>> 16);
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 65535L) << 41) | (block43 >>> 23);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 8388607L) << 34) | (block44 >>> 30);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 1073741823L) << 27) | (block45 >>> 37);
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 137438953471L) << 20) | (block46 >>> 44);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 17592186044415L) << 13) | (block47 >>> 51);
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 2251799813685247L) << 6) | (block48 >>> 58);
- values[valuesOffset++] = (block48 >>> 1) & 144115188075855871L;
- final long block49 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block48 & 1L) << 56) | (block49 >>> 8);
- final long block50 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block49 & 255L) << 49) | (block50 >>> 15);
- final long block51 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block50 & 32767L) << 42) | (block51 >>> 22);
- final long block52 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block51 & 4194303L) << 35) | (block52 >>> 29);
- final long block53 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block52 & 536870911L) << 28) | (block53 >>> 36);
- final long block54 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block53 & 68719476735L) << 21) | (block54 >>> 43);
- final long block55 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block54 & 8796093022207L) << 14) | (block55 >>> 50);
- final long block56 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block55 & 1125899906842623L) << 7) | (block56 >>> 57);
- values[valuesOffset++] = block56 & 144115188075855871L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 49) | (byte1 << 41) | (byte2 << 33) | (byte3 << 25) | (byte4 << 17) | (byte5 << 9) | (byte6 << 1) | (byte7 >>> 7);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 127) << 50) | (byte8 << 42) | (byte9 << 34) | (byte10 << 26) | (byte11 << 18) | (byte12 << 10) | (byte13 << 2) | (byte14 >>> 6);
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 63) << 51) | (byte15 << 43) | (byte16 << 35) | (byte17 << 27) | (byte18 << 19) | (byte19 << 11) | (byte20 << 3) | (byte21 >>> 5);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 31) << 52) | (byte22 << 44) | (byte23 << 36) | (byte24 << 28) | (byte25 << 20) | (byte26 << 12) | (byte27 << 4) | (byte28 >>> 4);
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 15) << 53) | (byte29 << 45) | (byte30 << 37) | (byte31 << 29) | (byte32 << 21) | (byte33 << 13) | (byte34 << 5) | (byte35 >>> 3);
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte35 & 7) << 54) | (byte36 << 46) | (byte37 << 38) | (byte38 << 30) | (byte39 << 22) | (byte40 << 14) | (byte41 << 6) | (byte42 >>> 2);
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 3) << 55) | (byte43 << 47) | (byte44 << 39) | (byte45 << 31) | (byte46 << 23) | (byte47 << 15) | (byte48 << 7) | (byte49 >>> 1);
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte49 & 1) << 56) | (byte50 << 48) | (byte51 << 40) | (byte52 << 32) | (byte53 << 24) | (byte54 << 16) | (byte55 << 8) | byte56;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte57 << 49) | (byte58 << 41) | (byte59 << 33) | (byte60 << 25) | (byte61 << 17) | (byte62 << 9) | (byte63 << 1) | (byte64 >>> 7);
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte64 & 127) << 50) | (byte65 << 42) | (byte66 << 34) | (byte67 << 26) | (byte68 << 18) | (byte69 << 10) | (byte70 << 2) | (byte71 >>> 6);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 63) << 51) | (byte72 << 43) | (byte73 << 35) | (byte74 << 27) | (byte75 << 19) | (byte76 << 11) | (byte77 << 3) | (byte78 >>> 5);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 31) << 52) | (byte79 << 44) | (byte80 << 36) | (byte81 << 28) | (byte82 << 20) | (byte83 << 12) | (byte84 << 4) | (byte85 >>> 4);
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte85 & 15) << 53) | (byte86 << 45) | (byte87 << 37) | (byte88 << 29) | (byte89 << 21) | (byte90 << 13) | (byte91 << 5) | (byte92 >>> 3);
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte92 & 7) << 54) | (byte93 << 46) | (byte94 << 38) | (byte95 << 30) | (byte96 << 22) | (byte97 << 14) | (byte98 << 6) | (byte99 >>> 2);
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte99 & 3) << 55) | (byte100 << 47) | (byte101 << 39) | (byte102 << 31) | (byte103 << 23) | (byte104 << 15) | (byte105 << 7) | (byte106 >>> 1);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 1) << 56) | (byte107 << 48) | (byte108 << 40) | (byte109 << 32) | (byte110 << 24) | (byte111 << 16) | (byte112 << 8) | byte113;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte114 << 49) | (byte115 << 41) | (byte116 << 33) | (byte117 << 25) | (byte118 << 17) | (byte119 << 9) | (byte120 << 1) | (byte121 >>> 7);
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 127) << 50) | (byte122 << 42) | (byte123 << 34) | (byte124 << 26) | (byte125 << 18) | (byte126 << 10) | (byte127 << 2) | (byte128 >>> 6);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 63) << 51) | (byte129 << 43) | (byte130 << 35) | (byte131 << 27) | (byte132 << 19) | (byte133 << 11) | (byte134 << 3) | (byte135 >>> 5);
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte135 & 31) << 52) | (byte136 << 44) | (byte137 << 36) | (byte138 << 28) | (byte139 << 20) | (byte140 << 12) | (byte141 << 4) | (byte142 >>> 4);
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte142 & 15) << 53) | (byte143 << 45) | (byte144 << 37) | (byte145 << 29) | (byte146 << 21) | (byte147 << 13) | (byte148 << 5) | (byte149 >>> 3);
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte149 & 7) << 54) | (byte150 << 46) | (byte151 << 38) | (byte152 << 30) | (byte153 << 22) | (byte154 << 14) | (byte155 << 6) | (byte156 >>> 2);
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte156 & 3) << 55) | (byte157 << 47) | (byte158 << 39) | (byte159 << 31) | (byte160 << 23) | (byte161 << 15) | (byte162 << 7) | (byte163 >>> 1);
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte163 & 1) << 56) | (byte164 << 48) | (byte165 << 40) | (byte166 << 32) | (byte167 << 24) | (byte168 << 16) | (byte169 << 8) | byte170;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte171 << 49) | (byte172 << 41) | (byte173 << 33) | (byte174 << 25) | (byte175 << 17) | (byte176 << 9) | (byte177 << 1) | (byte178 >>> 7);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 127) << 50) | (byte179 << 42) | (byte180 << 34) | (byte181 << 26) | (byte182 << 18) | (byte183 << 10) | (byte184 << 2) | (byte185 >>> 6);
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte185 & 63) << 51) | (byte186 << 43) | (byte187 << 35) | (byte188 << 27) | (byte189 << 19) | (byte190 << 11) | (byte191 << 3) | (byte192 >>> 5);
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte192 & 31) << 52) | (byte193 << 44) | (byte194 << 36) | (byte195 << 28) | (byte196 << 20) | (byte197 << 12) | (byte198 << 4) | (byte199 >>> 4);
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte199 & 15) << 53) | (byte200 << 45) | (byte201 << 37) | (byte202 << 29) | (byte203 << 21) | (byte204 << 13) | (byte205 << 5) | (byte206 >>> 3);
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte206 & 7) << 54) | (byte207 << 46) | (byte208 << 38) | (byte209 << 30) | (byte210 << 22) | (byte211 << 14) | (byte212 << 6) | (byte213 >>> 2);
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte213 & 3) << 55) | (byte214 << 47) | (byte215 << 39) | (byte216 << 31) | (byte217 << 23) | (byte218 << 15) | (byte219 << 7) | (byte220 >>> 1);
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 1) << 56) | (byte221 << 48) | (byte222 << 40) | (byte223 << 32) | (byte224 << 24) | (byte225 << 16) | (byte226 << 8) | byte227;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte228 << 49) | (byte229 << 41) | (byte230 << 33) | (byte231 << 25) | (byte232 << 17) | (byte233 << 9) | (byte234 << 1) | (byte235 >>> 7);
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte235 & 127) << 50) | (byte236 << 42) | (byte237 << 34) | (byte238 << 26) | (byte239 << 18) | (byte240 << 10) | (byte241 << 2) | (byte242 >>> 6);
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte242 & 63) << 51) | (byte243 << 43) | (byte244 << 35) | (byte245 << 27) | (byte246 << 19) | (byte247 << 11) | (byte248 << 3) | (byte249 >>> 5);
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte249 & 31) << 52) | (byte250 << 44) | (byte251 << 36) | (byte252 << 28) | (byte253 << 20) | (byte254 << 12) | (byte255 << 4) | (byte256 >>> 4);
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte256 & 15) << 53) | (byte257 << 45) | (byte258 << 37) | (byte259 << 29) | (byte260 << 21) | (byte261 << 13) | (byte262 << 5) | (byte263 >>> 3);
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte263 & 7) << 54) | (byte264 << 46) | (byte265 << 38) | (byte266 << 30) | (byte267 << 22) | (byte268 << 14) | (byte269 << 6) | (byte270 >>> 2);
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte270 & 3) << 55) | (byte271 << 47) | (byte272 << 39) | (byte273 << 31) | (byte274 << 23) | (byte275 << 15) | (byte276 << 7) | (byte277 >>> 1);
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte277 & 1) << 56) | (byte278 << 48) | (byte279 << 40) | (byte280 << 32) | (byte281 << 24) | (byte282 << 16) | (byte283 << 8) | byte284;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte285 << 49) | (byte286 << 41) | (byte287 << 33) | (byte288 << 25) | (byte289 << 17) | (byte290 << 9) | (byte291 << 1) | (byte292 >>> 7);
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte292 & 127) << 50) | (byte293 << 42) | (byte294 << 34) | (byte295 << 26) | (byte296 << 18) | (byte297 << 10) | (byte298 << 2) | (byte299 >>> 6);
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte299 & 63) << 51) | (byte300 << 43) | (byte301 << 35) | (byte302 << 27) | (byte303 << 19) | (byte304 << 11) | (byte305 << 3) | (byte306 >>> 5);
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte306 & 31) << 52) | (byte307 << 44) | (byte308 << 36) | (byte309 << 28) | (byte310 << 20) | (byte311 << 12) | (byte312 << 4) | (byte313 >>> 4);
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte313 & 15) << 53) | (byte314 << 45) | (byte315 << 37) | (byte316 << 29) | (byte317 << 21) | (byte318 << 13) | (byte319 << 5) | (byte320 >>> 3);
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte320 & 7) << 54) | (byte321 << 46) | (byte322 << 38) | (byte323 << 30) | (byte324 << 22) | (byte325 << 14) | (byte326 << 6) | (byte327 >>> 2);
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte327 & 3) << 55) | (byte328 << 47) | (byte329 << 39) | (byte330 << 31) | (byte331 << 23) | (byte332 << 15) | (byte333 << 7) | (byte334 >>> 1);
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte334 & 1) << 56) | (byte335 << 48) | (byte336 << 40) | (byte337 << 32) | (byte338 << 24) | (byte339 << 16) | (byte340 << 8) | byte341;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte342 << 49) | (byte343 << 41) | (byte344 << 33) | (byte345 << 25) | (byte346 << 17) | (byte347 << 9) | (byte348 << 1) | (byte349 >>> 7);
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte349 & 127) << 50) | (byte350 << 42) | (byte351 << 34) | (byte352 << 26) | (byte353 << 18) | (byte354 << 10) | (byte355 << 2) | (byte356 >>> 6);
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte356 & 63) << 51) | (byte357 << 43) | (byte358 << 35) | (byte359 << 27) | (byte360 << 19) | (byte361 << 11) | (byte362 << 3) | (byte363 >>> 5);
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte363 & 31) << 52) | (byte364 << 44) | (byte365 << 36) | (byte366 << 28) | (byte367 << 20) | (byte368 << 12) | (byte369 << 4) | (byte370 >>> 4);
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte370 & 15) << 53) | (byte371 << 45) | (byte372 << 37) | (byte373 << 29) | (byte374 << 21) | (byte375 << 13) | (byte376 << 5) | (byte377 >>> 3);
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte377 & 7) << 54) | (byte378 << 46) | (byte379 << 38) | (byte380 << 30) | (byte381 << 22) | (byte382 << 14) | (byte383 << 6) | (byte384 >>> 2);
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte384 & 3) << 55) | (byte385 << 47) | (byte386 << 39) | (byte387 << 31) | (byte388 << 23) | (byte389 << 15) | (byte390 << 7) | (byte391 >>> 1);
- final long byte392 = blocks[blocksOffset++] & 0xFF;
- final long byte393 = blocks[blocksOffset++] & 0xFF;
- final long byte394 = blocks[blocksOffset++] & 0xFF;
- final long byte395 = blocks[blocksOffset++] & 0xFF;
- final long byte396 = blocks[blocksOffset++] & 0xFF;
- final long byte397 = blocks[blocksOffset++] & 0xFF;
- final long byte398 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte391 & 1) << 56) | (byte392 << 48) | (byte393 << 40) | (byte394 << 32) | (byte395 << 24) | (byte396 << 16) | (byte397 << 8) | byte398;
- final long byte399 = blocks[blocksOffset++] & 0xFF;
- final long byte400 = blocks[blocksOffset++] & 0xFF;
- final long byte401 = blocks[blocksOffset++] & 0xFF;
- final long byte402 = blocks[blocksOffset++] & 0xFF;
- final long byte403 = blocks[blocksOffset++] & 0xFF;
- final long byte404 = blocks[blocksOffset++] & 0xFF;
- final long byte405 = blocks[blocksOffset++] & 0xFF;
- final long byte406 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte399 << 49) | (byte400 << 41) | (byte401 << 33) | (byte402 << 25) | (byte403 << 17) | (byte404 << 9) | (byte405 << 1) | (byte406 >>> 7);
- final long byte407 = blocks[blocksOffset++] & 0xFF;
- final long byte408 = blocks[blocksOffset++] & 0xFF;
- final long byte409 = blocks[blocksOffset++] & 0xFF;
- final long byte410 = blocks[blocksOffset++] & 0xFF;
- final long byte411 = blocks[blocksOffset++] & 0xFF;
- final long byte412 = blocks[blocksOffset++] & 0xFF;
- final long byte413 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte406 & 127) << 50) | (byte407 << 42) | (byte408 << 34) | (byte409 << 26) | (byte410 << 18) | (byte411 << 10) | (byte412 << 2) | (byte413 >>> 6);
- final long byte414 = blocks[blocksOffset++] & 0xFF;
- final long byte415 = blocks[blocksOffset++] & 0xFF;
- final long byte416 = blocks[blocksOffset++] & 0xFF;
- final long byte417 = blocks[blocksOffset++] & 0xFF;
- final long byte418 = blocks[blocksOffset++] & 0xFF;
- final long byte419 = blocks[blocksOffset++] & 0xFF;
- final long byte420 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte413 & 63) << 51) | (byte414 << 43) | (byte415 << 35) | (byte416 << 27) | (byte417 << 19) | (byte418 << 11) | (byte419 << 3) | (byte420 >>> 5);
- final long byte421 = blocks[blocksOffset++] & 0xFF;
- final long byte422 = blocks[blocksOffset++] & 0xFF;
- final long byte423 = blocks[blocksOffset++] & 0xFF;
- final long byte424 = blocks[blocksOffset++] & 0xFF;
- final long byte425 = blocks[blocksOffset++] & 0xFF;
- final long byte426 = blocks[blocksOffset++] & 0xFF;
- final long byte427 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte420 & 31) << 52) | (byte421 << 44) | (byte422 << 36) | (byte423 << 28) | (byte424 << 20) | (byte425 << 12) | (byte426 << 4) | (byte427 >>> 4);
- final long byte428 = blocks[blocksOffset++] & 0xFF;
- final long byte429 = blocks[blocksOffset++] & 0xFF;
- final long byte430 = blocks[blocksOffset++] & 0xFF;
- final long byte431 = blocks[blocksOffset++] & 0xFF;
- final long byte432 = blocks[blocksOffset++] & 0xFF;
- final long byte433 = blocks[blocksOffset++] & 0xFF;
- final long byte434 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte427 & 15) << 53) | (byte428 << 45) | (byte429 << 37) | (byte430 << 29) | (byte431 << 21) | (byte432 << 13) | (byte433 << 5) | (byte434 >>> 3);
- final long byte435 = blocks[blocksOffset++] & 0xFF;
- final long byte436 = blocks[blocksOffset++] & 0xFF;
- final long byte437 = blocks[blocksOffset++] & 0xFF;
- final long byte438 = blocks[blocksOffset++] & 0xFF;
- final long byte439 = blocks[blocksOffset++] & 0xFF;
- final long byte440 = blocks[blocksOffset++] & 0xFF;
- final long byte441 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte434 & 7) << 54) | (byte435 << 46) | (byte436 << 38) | (byte437 << 30) | (byte438 << 22) | (byte439 << 14) | (byte440 << 6) | (byte441 >>> 2);
- final long byte442 = blocks[blocksOffset++] & 0xFF;
- final long byte443 = blocks[blocksOffset++] & 0xFF;
- final long byte444 = blocks[blocksOffset++] & 0xFF;
- final long byte445 = blocks[blocksOffset++] & 0xFF;
- final long byte446 = blocks[blocksOffset++] & 0xFF;
- final long byte447 = blocks[blocksOffset++] & 0xFF;
- final long byte448 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte441 & 3) << 55) | (byte442 << 47) | (byte443 << 39) | (byte444 << 31) | (byte445 << 23) | (byte446 << 15) | (byte447 << 7) | (byte448 >>> 1);
- final long byte449 = blocks[blocksOffset++] & 0xFF;
- final long byte450 = blocks[blocksOffset++] & 0xFF;
- final long byte451 = blocks[blocksOffset++] & 0xFF;
- final long byte452 = blocks[blocksOffset++] & 0xFF;
- final long byte453 = blocks[blocksOffset++] & 0xFF;
- final long byte454 = blocks[blocksOffset++] & 0xFF;
- final long byte455 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte448 & 1) << 56) | (byte449 << 48) | (byte450 << 40) | (byte451 << 32) | (byte452 << 24) | (byte453 << 16) | (byte454 << 8) | byte455;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 51);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 53);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 55);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 49);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 51);
- blocks[blocksOffset++] = (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 53);
- blocks[blocksOffset++] = (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 55);
- blocks[blocksOffset++] = (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 49);
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked49.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked49.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked49.java (copie de travail)
@@ -1,745 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked49 extends BulkOperation {
- @Override
- public int blockCount() {
- return 49;
- }
-
- @Override
- public int valueCount() {
- return 64;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 15;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 32767L) << 34) | (block1 >>> 30);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 1073741823L) << 19) | (block2 >>> 45);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 35184372088831L) << 4) | (block3 >>> 60);
- values[valuesOffset++] = (block3 >>> 11) & 562949953421311L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 2047L) << 38) | (block4 >>> 26);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 67108863L) << 23) | (block5 >>> 41);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 2199023255551L) << 8) | (block6 >>> 56);
- values[valuesOffset++] = (block6 >>> 7) & 562949953421311L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 127L) << 42) | (block7 >>> 22);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 4194303L) << 27) | (block8 >>> 37);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 137438953471L) << 12) | (block9 >>> 52);
- values[valuesOffset++] = (block9 >>> 3) & 562949953421311L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 7L) << 46) | (block10 >>> 18);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 262143L) << 31) | (block11 >>> 33);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 8589934591L) << 16) | (block12 >>> 48);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 281474976710655L) << 1) | (block13 >>> 63);
- values[valuesOffset++] = (block13 >>> 14) & 562949953421311L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 16383L) << 35) | (block14 >>> 29);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 536870911L) << 20) | (block15 >>> 44);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 17592186044415L) << 5) | (block16 >>> 59);
- values[valuesOffset++] = (block16 >>> 10) & 562949953421311L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 1023L) << 39) | (block17 >>> 25);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 33554431L) << 24) | (block18 >>> 40);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 1099511627775L) << 9) | (block19 >>> 55);
- values[valuesOffset++] = (block19 >>> 6) & 562949953421311L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 63L) << 43) | (block20 >>> 21);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 2097151L) << 28) | (block21 >>> 36);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 68719476735L) << 13) | (block22 >>> 51);
- values[valuesOffset++] = (block22 >>> 2) & 562949953421311L;
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 3L) << 47) | (block23 >>> 17);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 131071L) << 32) | (block24 >>> 32);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 4294967295L) << 17) | (block25 >>> 47);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 140737488355327L) << 2) | (block26 >>> 62);
- values[valuesOffset++] = (block26 >>> 13) & 562949953421311L;
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 8191L) << 36) | (block27 >>> 28);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 268435455L) << 21) | (block28 >>> 43);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 8796093022207L) << 6) | (block29 >>> 58);
- values[valuesOffset++] = (block29 >>> 9) & 562949953421311L;
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 511L) << 40) | (block30 >>> 24);
- final long block31 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block30 & 16777215L) << 25) | (block31 >>> 39);
- final long block32 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block31 & 549755813887L) << 10) | (block32 >>> 54);
- values[valuesOffset++] = (block32 >>> 5) & 562949953421311L;
- final long block33 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block32 & 31L) << 44) | (block33 >>> 20);
- final long block34 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block33 & 1048575L) << 29) | (block34 >>> 35);
- final long block35 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block34 & 34359738367L) << 14) | (block35 >>> 50);
- values[valuesOffset++] = (block35 >>> 1) & 562949953421311L;
- final long block36 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block35 & 1L) << 48) | (block36 >>> 16);
- final long block37 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block36 & 65535L) << 33) | (block37 >>> 31);
- final long block38 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block37 & 2147483647L) << 18) | (block38 >>> 46);
- final long block39 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block38 & 70368744177663L) << 3) | (block39 >>> 61);
- values[valuesOffset++] = (block39 >>> 12) & 562949953421311L;
- final long block40 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block39 & 4095L) << 37) | (block40 >>> 27);
- final long block41 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block40 & 134217727L) << 22) | (block41 >>> 42);
- final long block42 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block41 & 4398046511103L) << 7) | (block42 >>> 57);
- values[valuesOffset++] = (block42 >>> 8) & 562949953421311L;
- final long block43 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block42 & 255L) << 41) | (block43 >>> 23);
- final long block44 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block43 & 8388607L) << 26) | (block44 >>> 38);
- final long block45 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block44 & 274877906943L) << 11) | (block45 >>> 53);
- values[valuesOffset++] = (block45 >>> 4) & 562949953421311L;
- final long block46 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block45 & 15L) << 45) | (block46 >>> 19);
- final long block47 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block46 & 524287L) << 30) | (block47 >>> 34);
- final long block48 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block47 & 17179869183L) << 15) | (block48 >>> 49);
- values[valuesOffset++] = block48 & 562949953421311L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 41) | (byte1 << 33) | (byte2 << 25) | (byte3 << 17) | (byte4 << 9) | (byte5 << 1) | (byte6 >>> 7);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 127) << 42) | (byte7 << 34) | (byte8 << 26) | (byte9 << 18) | (byte10 << 10) | (byte11 << 2) | (byte12 >>> 6);
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 63) << 43) | (byte13 << 35) | (byte14 << 27) | (byte15 << 19) | (byte16 << 11) | (byte17 << 3) | (byte18 >>> 5);
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 31) << 44) | (byte19 << 36) | (byte20 << 28) | (byte21 << 20) | (byte22 << 12) | (byte23 << 4) | (byte24 >>> 4);
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte24 & 15) << 45) | (byte25 << 37) | (byte26 << 29) | (byte27 << 21) | (byte28 << 13) | (byte29 << 5) | (byte30 >>> 3);
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte30 & 7) << 46) | (byte31 << 38) | (byte32 << 30) | (byte33 << 22) | (byte34 << 14) | (byte35 << 6) | (byte36 >>> 2);
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte36 & 3) << 47) | (byte37 << 39) | (byte38 << 31) | (byte39 << 23) | (byte40 << 15) | (byte41 << 7) | (byte42 >>> 1);
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 1) << 48) | (byte43 << 40) | (byte44 << 32) | (byte45 << 24) | (byte46 << 16) | (byte47 << 8) | byte48;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte49 << 41) | (byte50 << 33) | (byte51 << 25) | (byte52 << 17) | (byte53 << 9) | (byte54 << 1) | (byte55 >>> 7);
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte55 & 127) << 42) | (byte56 << 34) | (byte57 << 26) | (byte58 << 18) | (byte59 << 10) | (byte60 << 2) | (byte61 >>> 6);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 63) << 43) | (byte62 << 35) | (byte63 << 27) | (byte64 << 19) | (byte65 << 11) | (byte66 << 3) | (byte67 >>> 5);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 31) << 44) | (byte68 << 36) | (byte69 << 28) | (byte70 << 20) | (byte71 << 12) | (byte72 << 4) | (byte73 >>> 4);
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 15) << 45) | (byte74 << 37) | (byte75 << 29) | (byte76 << 21) | (byte77 << 13) | (byte78 << 5) | (byte79 >>> 3);
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte79 & 7) << 46) | (byte80 << 38) | (byte81 << 30) | (byte82 << 22) | (byte83 << 14) | (byte84 << 6) | (byte85 >>> 2);
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte85 & 3) << 47) | (byte86 << 39) | (byte87 << 31) | (byte88 << 23) | (byte89 << 15) | (byte90 << 7) | (byte91 >>> 1);
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte91 & 1) << 48) | (byte92 << 40) | (byte93 << 32) | (byte94 << 24) | (byte95 << 16) | (byte96 << 8) | byte97;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte98 << 41) | (byte99 << 33) | (byte100 << 25) | (byte101 << 17) | (byte102 << 9) | (byte103 << 1) | (byte104 >>> 7);
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte104 & 127) << 42) | (byte105 << 34) | (byte106 << 26) | (byte107 << 18) | (byte108 << 10) | (byte109 << 2) | (byte110 >>> 6);
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte110 & 63) << 43) | (byte111 << 35) | (byte112 << 27) | (byte113 << 19) | (byte114 << 11) | (byte115 << 3) | (byte116 >>> 5);
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 31) << 44) | (byte117 << 36) | (byte118 << 28) | (byte119 << 20) | (byte120 << 12) | (byte121 << 4) | (byte122 >>> 4);
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte122 & 15) << 45) | (byte123 << 37) | (byte124 << 29) | (byte125 << 21) | (byte126 << 13) | (byte127 << 5) | (byte128 >>> 3);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 7) << 46) | (byte129 << 38) | (byte130 << 30) | (byte131 << 22) | (byte132 << 14) | (byte133 << 6) | (byte134 >>> 2);
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte134 & 3) << 47) | (byte135 << 39) | (byte136 << 31) | (byte137 << 23) | (byte138 << 15) | (byte139 << 7) | (byte140 >>> 1);
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte140 & 1) << 48) | (byte141 << 40) | (byte142 << 32) | (byte143 << 24) | (byte144 << 16) | (byte145 << 8) | byte146;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte147 << 41) | (byte148 << 33) | (byte149 << 25) | (byte150 << 17) | (byte151 << 9) | (byte152 << 1) | (byte153 >>> 7);
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte153 & 127) << 42) | (byte154 << 34) | (byte155 << 26) | (byte156 << 18) | (byte157 << 10) | (byte158 << 2) | (byte159 >>> 6);
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 63) << 43) | (byte160 << 35) | (byte161 << 27) | (byte162 << 19) | (byte163 << 11) | (byte164 << 3) | (byte165 >>> 5);
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte165 & 31) << 44) | (byte166 << 36) | (byte167 << 28) | (byte168 << 20) | (byte169 << 12) | (byte170 << 4) | (byte171 >>> 4);
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte171 & 15) << 45) | (byte172 << 37) | (byte173 << 29) | (byte174 << 21) | (byte175 << 13) | (byte176 << 5) | (byte177 >>> 3);
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte177 & 7) << 46) | (byte178 << 38) | (byte179 << 30) | (byte180 << 22) | (byte181 << 14) | (byte182 << 6) | (byte183 >>> 2);
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte183 & 3) << 47) | (byte184 << 39) | (byte185 << 31) | (byte186 << 23) | (byte187 << 15) | (byte188 << 7) | (byte189 >>> 1);
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte189 & 1) << 48) | (byte190 << 40) | (byte191 << 32) | (byte192 << 24) | (byte193 << 16) | (byte194 << 8) | byte195;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte196 << 41) | (byte197 << 33) | (byte198 << 25) | (byte199 << 17) | (byte200 << 9) | (byte201 << 1) | (byte202 >>> 7);
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte202 & 127) << 42) | (byte203 << 34) | (byte204 << 26) | (byte205 << 18) | (byte206 << 10) | (byte207 << 2) | (byte208 >>> 6);
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte208 & 63) << 43) | (byte209 << 35) | (byte210 << 27) | (byte211 << 19) | (byte212 << 11) | (byte213 << 3) | (byte214 >>> 5);
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte214 & 31) << 44) | (byte215 << 36) | (byte216 << 28) | (byte217 << 20) | (byte218 << 12) | (byte219 << 4) | (byte220 >>> 4);
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte220 & 15) << 45) | (byte221 << 37) | (byte222 << 29) | (byte223 << 21) | (byte224 << 13) | (byte225 << 5) | (byte226 >>> 3);
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte226 & 7) << 46) | (byte227 << 38) | (byte228 << 30) | (byte229 << 22) | (byte230 << 14) | (byte231 << 6) | (byte232 >>> 2);
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte232 & 3) << 47) | (byte233 << 39) | (byte234 << 31) | (byte235 << 23) | (byte236 << 15) | (byte237 << 7) | (byte238 >>> 1);
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte238 & 1) << 48) | (byte239 << 40) | (byte240 << 32) | (byte241 << 24) | (byte242 << 16) | (byte243 << 8) | byte244;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- final long byte248 = blocks[blocksOffset++] & 0xFF;
- final long byte249 = blocks[blocksOffset++] & 0xFF;
- final long byte250 = blocks[blocksOffset++] & 0xFF;
- final long byte251 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte245 << 41) | (byte246 << 33) | (byte247 << 25) | (byte248 << 17) | (byte249 << 9) | (byte250 << 1) | (byte251 >>> 7);
- final long byte252 = blocks[blocksOffset++] & 0xFF;
- final long byte253 = blocks[blocksOffset++] & 0xFF;
- final long byte254 = blocks[blocksOffset++] & 0xFF;
- final long byte255 = blocks[blocksOffset++] & 0xFF;
- final long byte256 = blocks[blocksOffset++] & 0xFF;
- final long byte257 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte251 & 127) << 42) | (byte252 << 34) | (byte253 << 26) | (byte254 << 18) | (byte255 << 10) | (byte256 << 2) | (byte257 >>> 6);
- final long byte258 = blocks[blocksOffset++] & 0xFF;
- final long byte259 = blocks[blocksOffset++] & 0xFF;
- final long byte260 = blocks[blocksOffset++] & 0xFF;
- final long byte261 = blocks[blocksOffset++] & 0xFF;
- final long byte262 = blocks[blocksOffset++] & 0xFF;
- final long byte263 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte257 & 63) << 43) | (byte258 << 35) | (byte259 << 27) | (byte260 << 19) | (byte261 << 11) | (byte262 << 3) | (byte263 >>> 5);
- final long byte264 = blocks[blocksOffset++] & 0xFF;
- final long byte265 = blocks[blocksOffset++] & 0xFF;
- final long byte266 = blocks[blocksOffset++] & 0xFF;
- final long byte267 = blocks[blocksOffset++] & 0xFF;
- final long byte268 = blocks[blocksOffset++] & 0xFF;
- final long byte269 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte263 & 31) << 44) | (byte264 << 36) | (byte265 << 28) | (byte266 << 20) | (byte267 << 12) | (byte268 << 4) | (byte269 >>> 4);
- final long byte270 = blocks[blocksOffset++] & 0xFF;
- final long byte271 = blocks[blocksOffset++] & 0xFF;
- final long byte272 = blocks[blocksOffset++] & 0xFF;
- final long byte273 = blocks[blocksOffset++] & 0xFF;
- final long byte274 = blocks[blocksOffset++] & 0xFF;
- final long byte275 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte269 & 15) << 45) | (byte270 << 37) | (byte271 << 29) | (byte272 << 21) | (byte273 << 13) | (byte274 << 5) | (byte275 >>> 3);
- final long byte276 = blocks[blocksOffset++] & 0xFF;
- final long byte277 = blocks[blocksOffset++] & 0xFF;
- final long byte278 = blocks[blocksOffset++] & 0xFF;
- final long byte279 = blocks[blocksOffset++] & 0xFF;
- final long byte280 = blocks[blocksOffset++] & 0xFF;
- final long byte281 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte275 & 7) << 46) | (byte276 << 38) | (byte277 << 30) | (byte278 << 22) | (byte279 << 14) | (byte280 << 6) | (byte281 >>> 2);
- final long byte282 = blocks[blocksOffset++] & 0xFF;
- final long byte283 = blocks[blocksOffset++] & 0xFF;
- final long byte284 = blocks[blocksOffset++] & 0xFF;
- final long byte285 = blocks[blocksOffset++] & 0xFF;
- final long byte286 = blocks[blocksOffset++] & 0xFF;
- final long byte287 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte281 & 3) << 47) | (byte282 << 39) | (byte283 << 31) | (byte284 << 23) | (byte285 << 15) | (byte286 << 7) | (byte287 >>> 1);
- final long byte288 = blocks[blocksOffset++] & 0xFF;
- final long byte289 = blocks[blocksOffset++] & 0xFF;
- final long byte290 = blocks[blocksOffset++] & 0xFF;
- final long byte291 = blocks[blocksOffset++] & 0xFF;
- final long byte292 = blocks[blocksOffset++] & 0xFF;
- final long byte293 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte287 & 1) << 48) | (byte288 << 40) | (byte289 << 32) | (byte290 << 24) | (byte291 << 16) | (byte292 << 8) | byte293;
- final long byte294 = blocks[blocksOffset++] & 0xFF;
- final long byte295 = blocks[blocksOffset++] & 0xFF;
- final long byte296 = blocks[blocksOffset++] & 0xFF;
- final long byte297 = blocks[blocksOffset++] & 0xFF;
- final long byte298 = blocks[blocksOffset++] & 0xFF;
- final long byte299 = blocks[blocksOffset++] & 0xFF;
- final long byte300 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte294 << 41) | (byte295 << 33) | (byte296 << 25) | (byte297 << 17) | (byte298 << 9) | (byte299 << 1) | (byte300 >>> 7);
- final long byte301 = blocks[blocksOffset++] & 0xFF;
- final long byte302 = blocks[blocksOffset++] & 0xFF;
- final long byte303 = blocks[blocksOffset++] & 0xFF;
- final long byte304 = blocks[blocksOffset++] & 0xFF;
- final long byte305 = blocks[blocksOffset++] & 0xFF;
- final long byte306 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte300 & 127) << 42) | (byte301 << 34) | (byte302 << 26) | (byte303 << 18) | (byte304 << 10) | (byte305 << 2) | (byte306 >>> 6);
- final long byte307 = blocks[blocksOffset++] & 0xFF;
- final long byte308 = blocks[blocksOffset++] & 0xFF;
- final long byte309 = blocks[blocksOffset++] & 0xFF;
- final long byte310 = blocks[blocksOffset++] & 0xFF;
- final long byte311 = blocks[blocksOffset++] & 0xFF;
- final long byte312 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte306 & 63) << 43) | (byte307 << 35) | (byte308 << 27) | (byte309 << 19) | (byte310 << 11) | (byte311 << 3) | (byte312 >>> 5);
- final long byte313 = blocks[blocksOffset++] & 0xFF;
- final long byte314 = blocks[blocksOffset++] & 0xFF;
- final long byte315 = blocks[blocksOffset++] & 0xFF;
- final long byte316 = blocks[blocksOffset++] & 0xFF;
- final long byte317 = blocks[blocksOffset++] & 0xFF;
- final long byte318 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte312 & 31) << 44) | (byte313 << 36) | (byte314 << 28) | (byte315 << 20) | (byte316 << 12) | (byte317 << 4) | (byte318 >>> 4);
- final long byte319 = blocks[blocksOffset++] & 0xFF;
- final long byte320 = blocks[blocksOffset++] & 0xFF;
- final long byte321 = blocks[blocksOffset++] & 0xFF;
- final long byte322 = blocks[blocksOffset++] & 0xFF;
- final long byte323 = blocks[blocksOffset++] & 0xFF;
- final long byte324 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte318 & 15) << 45) | (byte319 << 37) | (byte320 << 29) | (byte321 << 21) | (byte322 << 13) | (byte323 << 5) | (byte324 >>> 3);
- final long byte325 = blocks[blocksOffset++] & 0xFF;
- final long byte326 = blocks[blocksOffset++] & 0xFF;
- final long byte327 = blocks[blocksOffset++] & 0xFF;
- final long byte328 = blocks[blocksOffset++] & 0xFF;
- final long byte329 = blocks[blocksOffset++] & 0xFF;
- final long byte330 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte324 & 7) << 46) | (byte325 << 38) | (byte326 << 30) | (byte327 << 22) | (byte328 << 14) | (byte329 << 6) | (byte330 >>> 2);
- final long byte331 = blocks[blocksOffset++] & 0xFF;
- final long byte332 = blocks[blocksOffset++] & 0xFF;
- final long byte333 = blocks[blocksOffset++] & 0xFF;
- final long byte334 = blocks[blocksOffset++] & 0xFF;
- final long byte335 = blocks[blocksOffset++] & 0xFF;
- final long byte336 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte330 & 3) << 47) | (byte331 << 39) | (byte332 << 31) | (byte333 << 23) | (byte334 << 15) | (byte335 << 7) | (byte336 >>> 1);
- final long byte337 = blocks[blocksOffset++] & 0xFF;
- final long byte338 = blocks[blocksOffset++] & 0xFF;
- final long byte339 = blocks[blocksOffset++] & 0xFF;
- final long byte340 = blocks[blocksOffset++] & 0xFF;
- final long byte341 = blocks[blocksOffset++] & 0xFF;
- final long byte342 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte336 & 1) << 48) | (byte337 << 40) | (byte338 << 32) | (byte339 << 24) | (byte340 << 16) | (byte341 << 8) | byte342;
- final long byte343 = blocks[blocksOffset++] & 0xFF;
- final long byte344 = blocks[blocksOffset++] & 0xFF;
- final long byte345 = blocks[blocksOffset++] & 0xFF;
- final long byte346 = blocks[blocksOffset++] & 0xFF;
- final long byte347 = blocks[blocksOffset++] & 0xFF;
- final long byte348 = blocks[blocksOffset++] & 0xFF;
- final long byte349 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte343 << 41) | (byte344 << 33) | (byte345 << 25) | (byte346 << 17) | (byte347 << 9) | (byte348 << 1) | (byte349 >>> 7);
- final long byte350 = blocks[blocksOffset++] & 0xFF;
- final long byte351 = blocks[blocksOffset++] & 0xFF;
- final long byte352 = blocks[blocksOffset++] & 0xFF;
- final long byte353 = blocks[blocksOffset++] & 0xFF;
- final long byte354 = blocks[blocksOffset++] & 0xFF;
- final long byte355 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte349 & 127) << 42) | (byte350 << 34) | (byte351 << 26) | (byte352 << 18) | (byte353 << 10) | (byte354 << 2) | (byte355 >>> 6);
- final long byte356 = blocks[blocksOffset++] & 0xFF;
- final long byte357 = blocks[blocksOffset++] & 0xFF;
- final long byte358 = blocks[blocksOffset++] & 0xFF;
- final long byte359 = blocks[blocksOffset++] & 0xFF;
- final long byte360 = blocks[blocksOffset++] & 0xFF;
- final long byte361 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte355 & 63) << 43) | (byte356 << 35) | (byte357 << 27) | (byte358 << 19) | (byte359 << 11) | (byte360 << 3) | (byte361 >>> 5);
- final long byte362 = blocks[blocksOffset++] & 0xFF;
- final long byte363 = blocks[blocksOffset++] & 0xFF;
- final long byte364 = blocks[blocksOffset++] & 0xFF;
- final long byte365 = blocks[blocksOffset++] & 0xFF;
- final long byte366 = blocks[blocksOffset++] & 0xFF;
- final long byte367 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte361 & 31) << 44) | (byte362 << 36) | (byte363 << 28) | (byte364 << 20) | (byte365 << 12) | (byte366 << 4) | (byte367 >>> 4);
- final long byte368 = blocks[blocksOffset++] & 0xFF;
- final long byte369 = blocks[blocksOffset++] & 0xFF;
- final long byte370 = blocks[blocksOffset++] & 0xFF;
- final long byte371 = blocks[blocksOffset++] & 0xFF;
- final long byte372 = blocks[blocksOffset++] & 0xFF;
- final long byte373 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte367 & 15) << 45) | (byte368 << 37) | (byte369 << 29) | (byte370 << 21) | (byte371 << 13) | (byte372 << 5) | (byte373 >>> 3);
- final long byte374 = blocks[blocksOffset++] & 0xFF;
- final long byte375 = blocks[blocksOffset++] & 0xFF;
- final long byte376 = blocks[blocksOffset++] & 0xFF;
- final long byte377 = blocks[blocksOffset++] & 0xFF;
- final long byte378 = blocks[blocksOffset++] & 0xFF;
- final long byte379 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte373 & 7) << 46) | (byte374 << 38) | (byte375 << 30) | (byte376 << 22) | (byte377 << 14) | (byte378 << 6) | (byte379 >>> 2);
- final long byte380 = blocks[blocksOffset++] & 0xFF;
- final long byte381 = blocks[blocksOffset++] & 0xFF;
- final long byte382 = blocks[blocksOffset++] & 0xFF;
- final long byte383 = blocks[blocksOffset++] & 0xFF;
- final long byte384 = blocks[blocksOffset++] & 0xFF;
- final long byte385 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte379 & 3) << 47) | (byte380 << 39) | (byte381 << 31) | (byte382 << 23) | (byte383 << 15) | (byte384 << 7) | (byte385 >>> 1);
- final long byte386 = blocks[blocksOffset++] & 0xFF;
- final long byte387 = blocks[blocksOffset++] & 0xFF;
- final long byte388 = blocks[blocksOffset++] & 0xFF;
- final long byte389 = blocks[blocksOffset++] & 0xFF;
- final long byte390 = blocks[blocksOffset++] & 0xFF;
- final long byte391 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte385 & 1) << 48) | (byte386 << 40) | (byte387 << 32) | (byte388 << 24) | (byte389 << 16) | (byte390 << 8) | byte391;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 19);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 23);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 27);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 31);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 35);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 5);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 39);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 9);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 43);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 13);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 47);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 17);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 21);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 25);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 29);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 33);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 3);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 37);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 7);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 41);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 11);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 45);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 15);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 49) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 15) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 19);
- blocks[blocksOffset++] = (values[valuesOffset++] << 45) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 11) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 23);
- blocks[blocksOffset++] = (values[valuesOffset++] << 41) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 7) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 27);
- blocks[blocksOffset++] = (values[valuesOffset++] << 37) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 3) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 31);
- blocks[blocksOffset++] = (values[valuesOffset++] << 33) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 35);
- blocks[blocksOffset++] = (values[valuesOffset++] << 29) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 5);
- blocks[blocksOffset++] = (values[valuesOffset++] << 59) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 39);
- blocks[blocksOffset++] = (values[valuesOffset++] << 25) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 9);
- blocks[blocksOffset++] = (values[valuesOffset++] << 55) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 43);
- blocks[blocksOffset++] = (values[valuesOffset++] << 21) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 13);
- blocks[blocksOffset++] = (values[valuesOffset++] << 51) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 47);
- blocks[blocksOffset++] = (values[valuesOffset++] << 17) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 17);
- blocks[blocksOffset++] = (values[valuesOffset++] << 47) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 13) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 21);
- blocks[blocksOffset++] = (values[valuesOffset++] << 43) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 9) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 25);
- blocks[blocksOffset++] = (values[valuesOffset++] << 39) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 5) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 29);
- blocks[blocksOffset++] = (values[valuesOffset++] << 35) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 33);
- blocks[blocksOffset++] = (values[valuesOffset++] << 31) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 3);
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 37);
- blocks[blocksOffset++] = (values[valuesOffset++] << 27) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 7);
- blocks[blocksOffset++] = (values[valuesOffset++] << 57) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 41);
- blocks[blocksOffset++] = (values[valuesOffset++] << 23) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 11);
- blocks[blocksOffset++] = (values[valuesOffset++] << 53) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 45);
- blocks[blocksOffset++] = (values[valuesOffset++] << 19) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 15);
- blocks[blocksOffset++] = (values[valuesOffset++] << 49) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock.java (révision 0)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock.java (révision 0)
@@ -0,0 +1,173 @@
+package org.apache.lucene.util.packed;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Non-specialized {@link BulkOperation} for {@link PackedInts.Format#PACKED_SINGLE_BLOCK}.
+ */
+class BulkOperationPackedSingleBlock extends BulkOperation {
+
+ private static final int BLOCK_COUNT = 1;
+
+ private final int bitsPerValue;
+ private final int valueCount;
+ private final long mask;
+
+ public BulkOperationPackedSingleBlock(int bitsPerValue) {
+ this.bitsPerValue = bitsPerValue;
+ this.valueCount = 64 / bitsPerValue;
+ this.mask = (1L << bitsPerValue) - 1;
+ }
+
+ @Override
+ public final int blockCount() {
+ return BLOCK_COUNT;
+ }
+
+ @Override
+ public int valueCount() {
+ return valueCount;
+ }
+
+ private static long readLong(byte[] blocks, int blocksOffset) {
+ return (blocks[blocksOffset++] & 0xFFL) << 56
+ | (blocks[blocksOffset++] & 0xFFL) << 48
+ | (blocks[blocksOffset++] & 0xFFL) << 40
+ | (blocks[blocksOffset++] & 0xFFL) << 32
+ | (blocks[blocksOffset++] & 0xFFL) << 24
+ | (blocks[blocksOffset++] & 0xFFL) << 16
+ | (blocks[blocksOffset++] & 0xFFL) << 8
+ | blocks[blocksOffset++] & 0xFFL;
+ }
+
+ private int decode(long block, long[] values, int valuesOffset) {
+ values[valuesOffset++] = block & mask;
+ for (int j = 1; j < valueCount; ++j) {
+ block >>>= bitsPerValue;
+ values[valuesOffset++] = block & mask;
+ }
+ return valuesOffset;
+ }
+
+ private int decode(long block, int[] values, int valuesOffset) {
+ values[valuesOffset++] = (int) (block & mask);
+ for (int j = 1; j < valueCount; ++j) {
+ block >>>= bitsPerValue;
+ values[valuesOffset++] = (int) (block & mask);
+ }
+ return valuesOffset;
+ }
+
+ private long encode(long[] values, int valuesOffset) {
+ long block = values[valuesOffset++];
+ for (int j = 1; j < valueCount; ++j) {
+ block |= values[valuesOffset++] << (j * bitsPerValue);
+ }
+ return block;
+ }
+
+ private long encode(int[] values, int valuesOffset) {
+ long block = values[valuesOffset++] & 0xFFFFFFFFL;
+ for (int j = 1; j < valueCount; ++j) {
+ block |= (values[valuesOffset++] & 0xFFFFFFFFL) << (j * bitsPerValue);
+ }
+ return block;
+ }
+
+ @Override
+ public void decode(long[] blocks, int blocksOffset, long[] values,
+ int valuesOffset, int iterations) {
+ for (int i = 0; i < iterations; ++i) {
+ final long block = blocks[blocksOffset++];
+ valuesOffset = decode(block, values, valuesOffset);
+ }
+ }
+
+ @Override
+ public void decode(byte[] blocks, int blocksOffset, long[] values,
+ int valuesOffset, int iterations) {
+ for (int i = 0; i < iterations; ++i) {
+ final long block = readLong(blocks, blocksOffset);
+ blocksOffset += 8;
+ valuesOffset = decode(block, values, valuesOffset);
+ }
+ }
+
+ @Override
+ public void decode(long[] blocks, int blocksOffset, int[] values,
+ int valuesOffset, int iterations) {
+ if (bitsPerValue > 32) {
+ throw new UnsupportedOperationException("Cannot decode " + bitsPerValue + "-bits values into an int[]");
+ }
+ for (int i = 0; i < iterations; ++i) {
+ final long block = blocks[blocksOffset++];
+ valuesOffset = decode(block, values, valuesOffset);
+ }
+ }
+
+ @Override
+ public void decode(byte[] blocks, int blocksOffset, int[] values,
+ int valuesOffset, int iterations) {
+ if (bitsPerValue > 32) {
+ throw new UnsupportedOperationException("Cannot decode " + bitsPerValue + "-bits values into an int[]");
+ }
+ for (int i = 0; i < iterations; ++i) {
+ final long block = readLong(blocks, blocksOffset);
+ blocksOffset += 8;
+ valuesOffset = decode(block, values, valuesOffset);
+ }
+ }
+
+ @Override
+ public void encode(long[] values, int valuesOffset, long[] blocks,
+ int blocksOffset, int iterations) {
+ for (int i = 0; i < iterations; ++i) {
+ blocks[blocksOffset++] = encode(values, valuesOffset);
+ valuesOffset += valueCount;
+ }
+ }
+
+ @Override
+ public void encode(int[] values, int valuesOffset, long[] blocks,
+ int blocksOffset, int iterations) {
+ for (int i = 0; i < iterations; ++i) {
+ blocks[blocksOffset++] = encode(values, valuesOffset);
+ valuesOffset += valueCount;
+ }
+ }
+
+ @Override
+ public void encode(long[] values, int valuesOffset, byte[] blocks, int blocksOffset, int iterations) {
+ for (int i = 0; i < iterations; ++i) {
+ final long block = encode(values, valuesOffset);
+ valuesOffset += valueCount;
+ blocksOffset = writeLong(block, blocks, blocksOffset);
+ }
+ }
+
+ @Override
+ public void encode(int[] values, int valuesOffset, byte[] blocks,
+ int blocksOffset, int iterations) {
+ for (int i = 0; i < iterations; ++i) {
+ final long block = encode(values, valuesOffset);
+ valuesOffset += valueCount;
+ blocksOffset = writeLong(block, blocks, blocksOffset);
+ }
+ }
+
+}
Modification de propriétés sur lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock.java
___________________________________________________________________
Ajouté : svn:eol-style
+ native
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock21.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock21.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock21.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock21 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock21 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 3;
+ public BulkOperationPackedSingleBlock21() {
+ super(21);
}
@Override
@@ -95,22 +90,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 42);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 42);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked2.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked2.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked2.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked2 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPacked2 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPacked2() {
+ super(2);
+ assert blockCount() == 1;
+ assert valueCount() == 32;
}
@Override
@@ -211,22 +208,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset++] & 0xffffffffL) << 2) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 60) | (values[valuesOffset++] << 58) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 4) | (values[valuesOffset++] << 2) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked6.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked6.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked6.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked6 extends BulkOperation {
- @Override
- public int blockCount() {
- return 3;
- }
+final class BulkOperationPacked6 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPacked6() {
+ super(6);
+ assert blockCount() == 3;
+ assert valueCount() == 32;
}
@Override
@@ -247,26 +244,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 6) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 6) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock3.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock3.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock3.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock3 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock3 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 21;
+ public BulkOperationPackedSingleBlock3() {
+ super(3);
}
@Override
@@ -167,22 +162,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 3) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 60);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 3) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 57) | (values[valuesOffset++] << 60);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked10.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked10.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked10.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked10 extends BulkOperation {
- @Override
- public int blockCount() {
- return 5;
- }
+final class BulkOperationPacked10 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPacked10() {
+ super(10);
+ assert blockCount() == 5;
+ assert valueCount() == 32;
}
@Override
@@ -283,30 +280,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 10) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 10) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked30.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked30.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked30.java (copie de travail)
@@ -1,512 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked30 extends BulkOperation {
- @Override
- public int blockCount() {
- return 15;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 34);
- values[valuesOffset++] = (int) ((block0 >>> 4) & 1073741823L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 15L) << 26) | (block1 >>> 38));
- values[valuesOffset++] = (int) ((block1 >>> 8) & 1073741823L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 255L) << 22) | (block2 >>> 42));
- values[valuesOffset++] = (int) ((block2 >>> 12) & 1073741823L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 4095L) << 18) | (block3 >>> 46));
- values[valuesOffset++] = (int) ((block3 >>> 16) & 1073741823L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 65535L) << 14) | (block4 >>> 50));
- values[valuesOffset++] = (int) ((block4 >>> 20) & 1073741823L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 1048575L) << 10) | (block5 >>> 54));
- values[valuesOffset++] = (int) ((block5 >>> 24) & 1073741823L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 16777215L) << 6) | (block6 >>> 58));
- values[valuesOffset++] = (int) ((block6 >>> 28) & 1073741823L);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block6 & 268435455L) << 2) | (block7 >>> 62));
- values[valuesOffset++] = (int) ((block7 >>> 32) & 1073741823L);
- values[valuesOffset++] = (int) ((block7 >>> 2) & 1073741823L);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block7 & 3L) << 28) | (block8 >>> 36));
- values[valuesOffset++] = (int) ((block8 >>> 6) & 1073741823L);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block8 & 63L) << 24) | (block9 >>> 40));
- values[valuesOffset++] = (int) ((block9 >>> 10) & 1073741823L);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block9 & 1023L) << 20) | (block10 >>> 44));
- values[valuesOffset++] = (int) ((block10 >>> 14) & 1073741823L);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block10 & 16383L) << 16) | (block11 >>> 48));
- values[valuesOffset++] = (int) ((block11 >>> 18) & 1073741823L);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block11 & 262143L) << 12) | (block12 >>> 52));
- values[valuesOffset++] = (int) ((block12 >>> 22) & 1073741823L);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block12 & 4194303L) << 8) | (block13 >>> 56));
- values[valuesOffset++] = (int) ((block13 >>> 26) & 1073741823L);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block13 & 67108863L) << 4) | (block14 >>> 60));
- values[valuesOffset++] = (int) ((block14 >>> 30) & 1073741823L);
- values[valuesOffset++] = (int) (block14 & 1073741823L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 22) | (byte1 << 14) | (byte2 << 6) | (byte3 >>> 2);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 3) << 28) | (byte4 << 20) | (byte5 << 12) | (byte6 << 4) | (byte7 >>> 4);
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 15) << 26) | (byte8 << 18) | (byte9 << 10) | (byte10 << 2) | (byte11 >>> 6);
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 63) << 24) | (byte12 << 16) | (byte13 << 8) | byte14;
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte15 << 22) | (byte16 << 14) | (byte17 << 6) | (byte18 >>> 2);
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 3) << 28) | (byte19 << 20) | (byte20 << 12) | (byte21 << 4) | (byte22 >>> 4);
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 15) << 26) | (byte23 << 18) | (byte24 << 10) | (byte25 << 2) | (byte26 >>> 6);
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte26 & 63) << 24) | (byte27 << 16) | (byte28 << 8) | byte29;
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte30 << 22) | (byte31 << 14) | (byte32 << 6) | (byte33 >>> 2);
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 3) << 28) | (byte34 << 20) | (byte35 << 12) | (byte36 << 4) | (byte37 >>> 4);
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 15) << 26) | (byte38 << 18) | (byte39 << 10) | (byte40 << 2) | (byte41 >>> 6);
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte41 & 63) << 24) | (byte42 << 16) | (byte43 << 8) | byte44;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte45 << 22) | (byte46 << 14) | (byte47 << 6) | (byte48 >>> 2);
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 3) << 28) | (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- final int byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 26) | (byte53 << 18) | (byte54 << 10) | (byte55 << 2) | (byte56 >>> 6);
- final int byte57 = blocks[blocksOffset++] & 0xFF;
- final int byte58 = blocks[blocksOffset++] & 0xFF;
- final int byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 63) << 24) | (byte57 << 16) | (byte58 << 8) | byte59;
- final int byte60 = blocks[blocksOffset++] & 0xFF;
- final int byte61 = blocks[blocksOffset++] & 0xFF;
- final int byte62 = blocks[blocksOffset++] & 0xFF;
- final int byte63 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte60 << 22) | (byte61 << 14) | (byte62 << 6) | (byte63 >>> 2);
- final int byte64 = blocks[blocksOffset++] & 0xFF;
- final int byte65 = blocks[blocksOffset++] & 0xFF;
- final int byte66 = blocks[blocksOffset++] & 0xFF;
- final int byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte63 & 3) << 28) | (byte64 << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final int byte68 = blocks[blocksOffset++] & 0xFF;
- final int byte69 = blocks[blocksOffset++] & 0xFF;
- final int byte70 = blocks[blocksOffset++] & 0xFF;
- final int byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 26) | (byte68 << 18) | (byte69 << 10) | (byte70 << 2) | (byte71 >>> 6);
- final int byte72 = blocks[blocksOffset++] & 0xFF;
- final int byte73 = blocks[blocksOffset++] & 0xFF;
- final int byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 63) << 24) | (byte72 << 16) | (byte73 << 8) | byte74;
- final int byte75 = blocks[blocksOffset++] & 0xFF;
- final int byte76 = blocks[blocksOffset++] & 0xFF;
- final int byte77 = blocks[blocksOffset++] & 0xFF;
- final int byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte75 << 22) | (byte76 << 14) | (byte77 << 6) | (byte78 >>> 2);
- final int byte79 = blocks[blocksOffset++] & 0xFF;
- final int byte80 = blocks[blocksOffset++] & 0xFF;
- final int byte81 = blocks[blocksOffset++] & 0xFF;
- final int byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 3) << 28) | (byte79 << 20) | (byte80 << 12) | (byte81 << 4) | (byte82 >>> 4);
- final int byte83 = blocks[blocksOffset++] & 0xFF;
- final int byte84 = blocks[blocksOffset++] & 0xFF;
- final int byte85 = blocks[blocksOffset++] & 0xFF;
- final int byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 15) << 26) | (byte83 << 18) | (byte84 << 10) | (byte85 << 2) | (byte86 >>> 6);
- final int byte87 = blocks[blocksOffset++] & 0xFF;
- final int byte88 = blocks[blocksOffset++] & 0xFF;
- final int byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte86 & 63) << 24) | (byte87 << 16) | (byte88 << 8) | byte89;
- final int byte90 = blocks[blocksOffset++] & 0xFF;
- final int byte91 = blocks[blocksOffset++] & 0xFF;
- final int byte92 = blocks[blocksOffset++] & 0xFF;
- final int byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte90 << 22) | (byte91 << 14) | (byte92 << 6) | (byte93 >>> 2);
- final int byte94 = blocks[blocksOffset++] & 0xFF;
- final int byte95 = blocks[blocksOffset++] & 0xFF;
- final int byte96 = blocks[blocksOffset++] & 0xFF;
- final int byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte93 & 3) << 28) | (byte94 << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final int byte98 = blocks[blocksOffset++] & 0xFF;
- final int byte99 = blocks[blocksOffset++] & 0xFF;
- final int byte100 = blocks[blocksOffset++] & 0xFF;
- final int byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 26) | (byte98 << 18) | (byte99 << 10) | (byte100 << 2) | (byte101 >>> 6);
- final int byte102 = blocks[blocksOffset++] & 0xFF;
- final int byte103 = blocks[blocksOffset++] & 0xFF;
- final int byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 63) << 24) | (byte102 << 16) | (byte103 << 8) | byte104;
- final int byte105 = blocks[blocksOffset++] & 0xFF;
- final int byte106 = blocks[blocksOffset++] & 0xFF;
- final int byte107 = blocks[blocksOffset++] & 0xFF;
- final int byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte105 << 22) | (byte106 << 14) | (byte107 << 6) | (byte108 >>> 2);
- final int byte109 = blocks[blocksOffset++] & 0xFF;
- final int byte110 = blocks[blocksOffset++] & 0xFF;
- final int byte111 = blocks[blocksOffset++] & 0xFF;
- final int byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 3) << 28) | (byte109 << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final int byte113 = blocks[blocksOffset++] & 0xFF;
- final int byte114 = blocks[blocksOffset++] & 0xFF;
- final int byte115 = blocks[blocksOffset++] & 0xFF;
- final int byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 26) | (byte113 << 18) | (byte114 << 10) | (byte115 << 2) | (byte116 >>> 6);
- final int byte117 = blocks[blocksOffset++] & 0xFF;
- final int byte118 = blocks[blocksOffset++] & 0xFF;
- final int byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 63) << 24) | (byte117 << 16) | (byte118 << 8) | byte119;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 34;
- values[valuesOffset++] = (block0 >>> 4) & 1073741823L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 15L) << 26) | (block1 >>> 38);
- values[valuesOffset++] = (block1 >>> 8) & 1073741823L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 255L) << 22) | (block2 >>> 42);
- values[valuesOffset++] = (block2 >>> 12) & 1073741823L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4095L) << 18) | (block3 >>> 46);
- values[valuesOffset++] = (block3 >>> 16) & 1073741823L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 65535L) << 14) | (block4 >>> 50);
- values[valuesOffset++] = (block4 >>> 20) & 1073741823L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1048575L) << 10) | (block5 >>> 54);
- values[valuesOffset++] = (block5 >>> 24) & 1073741823L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 16777215L) << 6) | (block6 >>> 58);
- values[valuesOffset++] = (block6 >>> 28) & 1073741823L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 268435455L) << 2) | (block7 >>> 62);
- values[valuesOffset++] = (block7 >>> 32) & 1073741823L;
- values[valuesOffset++] = (block7 >>> 2) & 1073741823L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 3L) << 28) | (block8 >>> 36);
- values[valuesOffset++] = (block8 >>> 6) & 1073741823L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 63L) << 24) | (block9 >>> 40);
- values[valuesOffset++] = (block9 >>> 10) & 1073741823L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1023L) << 20) | (block10 >>> 44);
- values[valuesOffset++] = (block10 >>> 14) & 1073741823L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 16383L) << 16) | (block11 >>> 48);
- values[valuesOffset++] = (block11 >>> 18) & 1073741823L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 262143L) << 12) | (block12 >>> 52);
- values[valuesOffset++] = (block12 >>> 22) & 1073741823L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4194303L) << 8) | (block13 >>> 56);
- values[valuesOffset++] = (block13 >>> 26) & 1073741823L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 67108863L) << 4) | (block14 >>> 60);
- values[valuesOffset++] = (block14 >>> 30) & 1073741823L;
- values[valuesOffset++] = block14 & 1073741823L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 22) | (byte1 << 14) | (byte2 << 6) | (byte3 >>> 2);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 3) << 28) | (byte4 << 20) | (byte5 << 12) | (byte6 << 4) | (byte7 >>> 4);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 15) << 26) | (byte8 << 18) | (byte9 << 10) | (byte10 << 2) | (byte11 >>> 6);
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 63) << 24) | (byte12 << 16) | (byte13 << 8) | byte14;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte15 << 22) | (byte16 << 14) | (byte17 << 6) | (byte18 >>> 2);
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 3) << 28) | (byte19 << 20) | (byte20 << 12) | (byte21 << 4) | (byte22 >>> 4);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 15) << 26) | (byte23 << 18) | (byte24 << 10) | (byte25 << 2) | (byte26 >>> 6);
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte26 & 63) << 24) | (byte27 << 16) | (byte28 << 8) | byte29;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte30 << 22) | (byte31 << 14) | (byte32 << 6) | (byte33 >>> 2);
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 3) << 28) | (byte34 << 20) | (byte35 << 12) | (byte36 << 4) | (byte37 >>> 4);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 15) << 26) | (byte38 << 18) | (byte39 << 10) | (byte40 << 2) | (byte41 >>> 6);
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte41 & 63) << 24) | (byte42 << 16) | (byte43 << 8) | byte44;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte45 << 22) | (byte46 << 14) | (byte47 << 6) | (byte48 >>> 2);
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 3) << 28) | (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 26) | (byte53 << 18) | (byte54 << 10) | (byte55 << 2) | (byte56 >>> 6);
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 63) << 24) | (byte57 << 16) | (byte58 << 8) | byte59;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte60 << 22) | (byte61 << 14) | (byte62 << 6) | (byte63 >>> 2);
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte63 & 3) << 28) | (byte64 << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 26) | (byte68 << 18) | (byte69 << 10) | (byte70 << 2) | (byte71 >>> 6);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 63) << 24) | (byte72 << 16) | (byte73 << 8) | byte74;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte75 << 22) | (byte76 << 14) | (byte77 << 6) | (byte78 >>> 2);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 3) << 28) | (byte79 << 20) | (byte80 << 12) | (byte81 << 4) | (byte82 >>> 4);
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte82 & 15) << 26) | (byte83 << 18) | (byte84 << 10) | (byte85 << 2) | (byte86 >>> 6);
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte86 & 63) << 24) | (byte87 << 16) | (byte88 << 8) | byte89;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte90 << 22) | (byte91 << 14) | (byte92 << 6) | (byte93 >>> 2);
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte93 & 3) << 28) | (byte94 << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 26) | (byte98 << 18) | (byte99 << 10) | (byte100 << 2) | (byte101 >>> 6);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 63) << 24) | (byte102 << 16) | (byte103 << 8) | byte104;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte105 << 22) | (byte106 << 14) | (byte107 << 6) | (byte108 >>> 2);
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 3) << 28) | (byte109 << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 26) | (byte113 << 18) | (byte114 << 10) | (byte115 << 2) | (byte116 >>> 6);
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 63) << 24) | (byte117 << 16) | (byte118 << 8) | byte119;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 30) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 30) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked22.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked22.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked22.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked22 extends BulkOperation {
- @Override
- public int blockCount() {
- return 11;
- }
+final class BulkOperationPacked22 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPacked22() {
+ super(22);
+ assert blockCount() == 11;
+ assert valueCount() == 32;
}
@Override
@@ -391,42 +388,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 22) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 22) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock7.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock7.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock7.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock7 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock7 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 9;
+ public BulkOperationPackedSingleBlock7() {
+ super(7);
}
@Override
@@ -119,22 +114,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 56);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 7) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 56);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked14.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked14.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked14.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked14 extends BulkOperation {
- @Override
- public int blockCount() {
- return 7;
- }
+final class BulkOperationPacked14 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPacked14() {
+ super(14);
+ assert blockCount() == 7;
+ assert valueCount() == 32;
}
@Override
@@ -319,34 +316,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 14) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 14) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked50.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked50.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked50.java (copie de travail)
@@ -1,417 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked50 extends BulkOperation {
- @Override
- public int blockCount() {
- return 25;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 14;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 16383L) << 36) | (block1 >>> 28);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 268435455L) << 22) | (block2 >>> 42);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4398046511103L) << 8) | (block3 >>> 56);
- values[valuesOffset++] = (block3 >>> 6) & 1125899906842623L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 63L) << 44) | (block4 >>> 20);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1048575L) << 30) | (block5 >>> 34);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 17179869183L) << 16) | (block6 >>> 48);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 281474976710655L) << 2) | (block7 >>> 62);
- values[valuesOffset++] = (block7 >>> 12) & 1125899906842623L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 4095L) << 38) | (block8 >>> 26);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 67108863L) << 24) | (block9 >>> 40);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1099511627775L) << 10) | (block10 >>> 54);
- values[valuesOffset++] = (block10 >>> 4) & 1125899906842623L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 15L) << 46) | (block11 >>> 18);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 262143L) << 32) | (block12 >>> 32);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4294967295L) << 18) | (block13 >>> 46);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 70368744177663L) << 4) | (block14 >>> 60);
- values[valuesOffset++] = (block14 >>> 10) & 1125899906842623L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1023L) << 40) | (block15 >>> 24);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 16777215L) << 26) | (block16 >>> 38);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 274877906943L) << 12) | (block17 >>> 52);
- values[valuesOffset++] = (block17 >>> 2) & 1125899906842623L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 3L) << 48) | (block18 >>> 16);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 65535L) << 34) | (block19 >>> 30);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1073741823L) << 20) | (block20 >>> 44);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 17592186044415L) << 6) | (block21 >>> 58);
- values[valuesOffset++] = (block21 >>> 8) & 1125899906842623L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 255L) << 42) | (block22 >>> 22);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 4194303L) << 28) | (block23 >>> 36);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 68719476735L) << 14) | (block24 >>> 50);
- values[valuesOffset++] = block24 & 1125899906842623L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 42) | (byte1 << 34) | (byte2 << 26) | (byte3 << 18) | (byte4 << 10) | (byte5 << 2) | (byte6 >>> 6);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 63) << 44) | (byte7 << 36) | (byte8 << 28) | (byte9 << 20) | (byte10 << 12) | (byte11 << 4) | (byte12 >>> 4);
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 15) << 46) | (byte13 << 38) | (byte14 << 30) | (byte15 << 22) | (byte16 << 14) | (byte17 << 6) | (byte18 >>> 2);
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte18 & 3) << 48) | (byte19 << 40) | (byte20 << 32) | (byte21 << 24) | (byte22 << 16) | (byte23 << 8) | byte24;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte25 << 42) | (byte26 << 34) | (byte27 << 26) | (byte28 << 18) | (byte29 << 10) | (byte30 << 2) | (byte31 >>> 6);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 63) << 44) | (byte32 << 36) | (byte33 << 28) | (byte34 << 20) | (byte35 << 12) | (byte36 << 4) | (byte37 >>> 4);
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte37 & 15) << 46) | (byte38 << 38) | (byte39 << 30) | (byte40 << 22) | (byte41 << 14) | (byte42 << 6) | (byte43 >>> 2);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 3) << 48) | (byte44 << 40) | (byte45 << 32) | (byte46 << 24) | (byte47 << 16) | (byte48 << 8) | byte49;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte50 << 42) | (byte51 << 34) | (byte52 << 26) | (byte53 << 18) | (byte54 << 10) | (byte55 << 2) | (byte56 >>> 6);
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte56 & 63) << 44) | (byte57 << 36) | (byte58 << 28) | (byte59 << 20) | (byte60 << 12) | (byte61 << 4) | (byte62 >>> 4);
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte62 & 15) << 46) | (byte63 << 38) | (byte64 << 30) | (byte65 << 22) | (byte66 << 14) | (byte67 << 6) | (byte68 >>> 2);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 3) << 48) | (byte69 << 40) | (byte70 << 32) | (byte71 << 24) | (byte72 << 16) | (byte73 << 8) | byte74;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte75 << 42) | (byte76 << 34) | (byte77 << 26) | (byte78 << 18) | (byte79 << 10) | (byte80 << 2) | (byte81 >>> 6);
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 63) << 44) | (byte82 << 36) | (byte83 << 28) | (byte84 << 20) | (byte85 << 12) | (byte86 << 4) | (byte87 >>> 4);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 15) << 46) | (byte88 << 38) | (byte89 << 30) | (byte90 << 22) | (byte91 << 14) | (byte92 << 6) | (byte93 >>> 2);
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte93 & 3) << 48) | (byte94 << 40) | (byte95 << 32) | (byte96 << 24) | (byte97 << 16) | (byte98 << 8) | byte99;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte100 << 42) | (byte101 << 34) | (byte102 << 26) | (byte103 << 18) | (byte104 << 10) | (byte105 << 2) | (byte106 >>> 6);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 63) << 44) | (byte107 << 36) | (byte108 << 28) | (byte109 << 20) | (byte110 << 12) | (byte111 << 4) | (byte112 >>> 4);
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte112 & 15) << 46) | (byte113 << 38) | (byte114 << 30) | (byte115 << 22) | (byte116 << 14) | (byte117 << 6) | (byte118 >>> 2);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 3) << 48) | (byte119 << 40) | (byte120 << 32) | (byte121 << 24) | (byte122 << 16) | (byte123 << 8) | byte124;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte125 << 42) | (byte126 << 34) | (byte127 << 26) | (byte128 << 18) | (byte129 << 10) | (byte130 << 2) | (byte131 >>> 6);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 63) << 44) | (byte132 << 36) | (byte133 << 28) | (byte134 << 20) | (byte135 << 12) | (byte136 << 4) | (byte137 >>> 4);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 15) << 46) | (byte138 << 38) | (byte139 << 30) | (byte140 << 22) | (byte141 << 14) | (byte142 << 6) | (byte143 >>> 2);
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 3) << 48) | (byte144 << 40) | (byte145 << 32) | (byte146 << 24) | (byte147 << 16) | (byte148 << 8) | byte149;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte150 << 42) | (byte151 << 34) | (byte152 << 26) | (byte153 << 18) | (byte154 << 10) | (byte155 << 2) | (byte156 >>> 6);
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte156 & 63) << 44) | (byte157 << 36) | (byte158 << 28) | (byte159 << 20) | (byte160 << 12) | (byte161 << 4) | (byte162 >>> 4);
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 15) << 46) | (byte163 << 38) | (byte164 << 30) | (byte165 << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 48) | (byte169 << 40) | (byte170 << 32) | (byte171 << 24) | (byte172 << 16) | (byte173 << 8) | byte174;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte175 << 42) | (byte176 << 34) | (byte177 << 26) | (byte178 << 18) | (byte179 << 10) | (byte180 << 2) | (byte181 >>> 6);
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 63) << 44) | (byte182 << 36) | (byte183 << 28) | (byte184 << 20) | (byte185 << 12) | (byte186 << 4) | (byte187 >>> 4);
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte187 & 15) << 46) | (byte188 << 38) | (byte189 << 30) | (byte190 << 22) | (byte191 << 14) | (byte192 << 6) | (byte193 >>> 2);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 3) << 48) | (byte194 << 40) | (byte195 << 32) | (byte196 << 24) | (byte197 << 16) | (byte198 << 8) | byte199;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked42.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked42.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked42.java (copie de travail)
@@ -1,373 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked42 extends BulkOperation {
- @Override
- public int blockCount() {
- return 21;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 22;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 4194303L) << 20) | (block1 >>> 44);
- values[valuesOffset++] = (block1 >>> 2) & 4398046511103L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 3L) << 40) | (block2 >>> 24);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 16777215L) << 18) | (block3 >>> 46);
- values[valuesOffset++] = (block3 >>> 4) & 4398046511103L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 15L) << 38) | (block4 >>> 26);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 67108863L) << 16) | (block5 >>> 48);
- values[valuesOffset++] = (block5 >>> 6) & 4398046511103L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 63L) << 36) | (block6 >>> 28);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 268435455L) << 14) | (block7 >>> 50);
- values[valuesOffset++] = (block7 >>> 8) & 4398046511103L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 255L) << 34) | (block8 >>> 30);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 1073741823L) << 12) | (block9 >>> 52);
- values[valuesOffset++] = (block9 >>> 10) & 4398046511103L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1023L) << 32) | (block10 >>> 32);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 4294967295L) << 10) | (block11 >>> 54);
- values[valuesOffset++] = (block11 >>> 12) & 4398046511103L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 4095L) << 30) | (block12 >>> 34);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 17179869183L) << 8) | (block13 >>> 56);
- values[valuesOffset++] = (block13 >>> 14) & 4398046511103L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 16383L) << 28) | (block14 >>> 36);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 68719476735L) << 6) | (block15 >>> 58);
- values[valuesOffset++] = (block15 >>> 16) & 4398046511103L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 65535L) << 26) | (block16 >>> 38);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 274877906943L) << 4) | (block17 >>> 60);
- values[valuesOffset++] = (block17 >>> 18) & 4398046511103L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 262143L) << 24) | (block18 >>> 40);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 1099511627775L) << 2) | (block19 >>> 62);
- values[valuesOffset++] = (block19 >>> 20) & 4398046511103L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1048575L) << 22) | (block20 >>> 42);
- values[valuesOffset++] = block20 & 4398046511103L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 34) | (byte1 << 26) | (byte2 << 18) | (byte3 << 10) | (byte4 << 2) | (byte5 >>> 6);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 63) << 36) | (byte6 << 28) | (byte7 << 20) | (byte8 << 12) | (byte9 << 4) | (byte10 >>> 4);
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte10 & 15) << 38) | (byte11 << 30) | (byte12 << 22) | (byte13 << 14) | (byte14 << 6) | (byte15 >>> 2);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 3) << 40) | (byte16 << 32) | (byte17 << 24) | (byte18 << 16) | (byte19 << 8) | byte20;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte21 << 34) | (byte22 << 26) | (byte23 << 18) | (byte24 << 10) | (byte25 << 2) | (byte26 >>> 6);
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte26 & 63) << 36) | (byte27 << 28) | (byte28 << 20) | (byte29 << 12) | (byte30 << 4) | (byte31 >>> 4);
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte31 & 15) << 38) | (byte32 << 30) | (byte33 << 22) | (byte34 << 14) | (byte35 << 6) | (byte36 >>> 2);
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte36 & 3) << 40) | (byte37 << 32) | (byte38 << 24) | (byte39 << 16) | (byte40 << 8) | byte41;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte42 << 34) | (byte43 << 26) | (byte44 << 18) | (byte45 << 10) | (byte46 << 2) | (byte47 >>> 6);
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 63) << 36) | (byte48 << 28) | (byte49 << 20) | (byte50 << 12) | (byte51 << 4) | (byte52 >>> 4);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 15) << 38) | (byte53 << 30) | (byte54 << 22) | (byte55 << 14) | (byte56 << 6) | (byte57 >>> 2);
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte57 & 3) << 40) | (byte58 << 32) | (byte59 << 24) | (byte60 << 16) | (byte61 << 8) | byte62;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte63 << 34) | (byte64 << 26) | (byte65 << 18) | (byte66 << 10) | (byte67 << 2) | (byte68 >>> 6);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 63) << 36) | (byte69 << 28) | (byte70 << 20) | (byte71 << 12) | (byte72 << 4) | (byte73 >>> 4);
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte73 & 15) << 38) | (byte74 << 30) | (byte75 << 22) | (byte76 << 14) | (byte77 << 6) | (byte78 >>> 2);
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte78 & 3) << 40) | (byte79 << 32) | (byte80 << 24) | (byte81 << 16) | (byte82 << 8) | byte83;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte84 << 34) | (byte85 << 26) | (byte86 << 18) | (byte87 << 10) | (byte88 << 2) | (byte89 >>> 6);
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte89 & 63) << 36) | (byte90 << 28) | (byte91 << 20) | (byte92 << 12) | (byte93 << 4) | (byte94 >>> 4);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 15) << 38) | (byte95 << 30) | (byte96 << 22) | (byte97 << 14) | (byte98 << 6) | (byte99 >>> 2);
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte99 & 3) << 40) | (byte100 << 32) | (byte101 << 24) | (byte102 << 16) | (byte103 << 8) | byte104;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte105 << 34) | (byte106 << 26) | (byte107 << 18) | (byte108 << 10) | (byte109 << 2) | (byte110 >>> 6);
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte110 & 63) << 36) | (byte111 << 28) | (byte112 << 20) | (byte113 << 12) | (byte114 << 4) | (byte115 >>> 4);
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte115 & 15) << 38) | (byte116 << 30) | (byte117 << 22) | (byte118 << 14) | (byte119 << 6) | (byte120 >>> 2);
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte120 & 3) << 40) | (byte121 << 32) | (byte122 << 24) | (byte123 << 16) | (byte124 << 8) | byte125;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte126 << 34) | (byte127 << 26) | (byte128 << 18) | (byte129 << 10) | (byte130 << 2) | (byte131 >>> 6);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 63) << 36) | (byte132 << 28) | (byte133 << 20) | (byte134 << 12) | (byte135 << 4) | (byte136 >>> 4);
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte136 & 15) << 38) | (byte137 << 30) | (byte138 << 22) | (byte139 << 14) | (byte140 << 6) | (byte141 >>> 2);
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 3) << 40) | (byte142 << 32) | (byte143 << 24) | (byte144 << 16) | (byte145 << 8) | byte146;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte147 << 34) | (byte148 << 26) | (byte149 << 18) | (byte150 << 10) | (byte151 << 2) | (byte152 >>> 6);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 63) << 36) | (byte153 << 28) | (byte154 << 20) | (byte155 << 12) | (byte156 << 4) | (byte157 >>> 4);
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte157 & 15) << 38) | (byte158 << 30) | (byte159 << 22) | (byte160 << 14) | (byte161 << 6) | (byte162 >>> 2);
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 3) << 40) | (byte163 << 32) | (byte164 << 24) | (byte165 << 16) | (byte166 << 8) | byte167;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked34.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked34.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked34.java (copie de travail)
@@ -1,329 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked34 extends BulkOperation {
- @Override
- public int blockCount() {
- return 17;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 30;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 1073741823L) << 4) | (block1 >>> 60);
- values[valuesOffset++] = (block1 >>> 26) & 17179869183L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 67108863L) << 8) | (block2 >>> 56);
- values[valuesOffset++] = (block2 >>> 22) & 17179869183L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 4194303L) << 12) | (block3 >>> 52);
- values[valuesOffset++] = (block3 >>> 18) & 17179869183L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 262143L) << 16) | (block4 >>> 48);
- values[valuesOffset++] = (block4 >>> 14) & 17179869183L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 16383L) << 20) | (block5 >>> 44);
- values[valuesOffset++] = (block5 >>> 10) & 17179869183L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 1023L) << 24) | (block6 >>> 40);
- values[valuesOffset++] = (block6 >>> 6) & 17179869183L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 63L) << 28) | (block7 >>> 36);
- values[valuesOffset++] = (block7 >>> 2) & 17179869183L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 3L) << 32) | (block8 >>> 32);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 4294967295L) << 2) | (block9 >>> 62);
- values[valuesOffset++] = (block9 >>> 28) & 17179869183L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 268435455L) << 6) | (block10 >>> 58);
- values[valuesOffset++] = (block10 >>> 24) & 17179869183L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 16777215L) << 10) | (block11 >>> 54);
- values[valuesOffset++] = (block11 >>> 20) & 17179869183L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 1048575L) << 14) | (block12 >>> 50);
- values[valuesOffset++] = (block12 >>> 16) & 17179869183L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 65535L) << 18) | (block13 >>> 46);
- values[valuesOffset++] = (block13 >>> 12) & 17179869183L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 4095L) << 22) | (block14 >>> 42);
- values[valuesOffset++] = (block14 >>> 8) & 17179869183L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 255L) << 26) | (block15 >>> 38);
- values[valuesOffset++] = (block15 >>> 4) & 17179869183L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 15L) << 30) | (block16 >>> 34);
- values[valuesOffset++] = block16 & 17179869183L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 26) | (byte1 << 18) | (byte2 << 10) | (byte3 << 2) | (byte4 >>> 6);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 63) << 28) | (byte5 << 20) | (byte6 << 12) | (byte7 << 4) | (byte8 >>> 4);
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte8 & 15) << 30) | (byte9 << 22) | (byte10 << 14) | (byte11 << 6) | (byte12 >>> 2);
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte12 & 3) << 32) | (byte13 << 24) | (byte14 << 16) | (byte15 << 8) | byte16;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte17 << 26) | (byte18 << 18) | (byte19 << 10) | (byte20 << 2) | (byte21 >>> 6);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 63) << 28) | (byte22 << 20) | (byte23 << 12) | (byte24 << 4) | (byte25 >>> 4);
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte25 & 15) << 30) | (byte26 << 22) | (byte27 << 14) | (byte28 << 6) | (byte29 >>> 2);
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte29 & 3) << 32) | (byte30 << 24) | (byte31 << 16) | (byte32 << 8) | byte33;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte34 << 26) | (byte35 << 18) | (byte36 << 10) | (byte37 << 2) | (byte38 >>> 6);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 63) << 28) | (byte39 << 20) | (byte40 << 12) | (byte41 << 4) | (byte42 >>> 4);
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 15) << 30) | (byte43 << 22) | (byte44 << 14) | (byte45 << 6) | (byte46 >>> 2);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 3) << 32) | (byte47 << 24) | (byte48 << 16) | (byte49 << 8) | byte50;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte51 << 26) | (byte52 << 18) | (byte53 << 10) | (byte54 << 2) | (byte55 >>> 6);
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte55 & 63) << 28) | (byte56 << 20) | (byte57 << 12) | (byte58 << 4) | (byte59 >>> 4);
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte59 & 15) << 30) | (byte60 << 22) | (byte61 << 14) | (byte62 << 6) | (byte63 >>> 2);
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte63 & 3) << 32) | (byte64 << 24) | (byte65 << 16) | (byte66 << 8) | byte67;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte68 << 26) | (byte69 << 18) | (byte70 << 10) | (byte71 << 2) | (byte72 >>> 6);
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte72 & 63) << 28) | (byte73 << 20) | (byte74 << 12) | (byte75 << 4) | (byte76 >>> 4);
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte76 & 15) << 30) | (byte77 << 22) | (byte78 << 14) | (byte79 << 6) | (byte80 >>> 2);
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte80 & 3) << 32) | (byte81 << 24) | (byte82 << 16) | (byte83 << 8) | byte84;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte85 << 26) | (byte86 << 18) | (byte87 << 10) | (byte88 << 2) | (byte89 >>> 6);
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte89 & 63) << 28) | (byte90 << 20) | (byte91 << 12) | (byte92 << 4) | (byte93 >>> 4);
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte93 & 15) << 30) | (byte94 << 22) | (byte95 << 14) | (byte96 << 6) | (byte97 >>> 2);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 3) << 32) | (byte98 << 24) | (byte99 << 16) | (byte100 << 8) | byte101;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte102 << 26) | (byte103 << 18) | (byte104 << 10) | (byte105 << 2) | (byte106 >>> 6);
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte106 & 63) << 28) | (byte107 << 20) | (byte108 << 12) | (byte109 << 4) | (byte110 >>> 4);
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte110 & 15) << 30) | (byte111 << 22) | (byte112 << 14) | (byte113 << 6) | (byte114 >>> 2);
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte114 & 3) << 32) | (byte115 << 24) | (byte116 << 16) | (byte117 << 8) | byte118;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte119 << 26) | (byte120 << 18) | (byte121 << 10) | (byte122 << 2) | (byte123 >>> 6);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 63) << 28) | (byte124 << 20) | (byte125 << 12) | (byte126 << 4) | (byte127 >>> 4);
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte127 & 15) << 30) | (byte128 << 22) | (byte129 << 14) | (byte130 << 6) | (byte131 >>> 2);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 3) << 32) | (byte132 << 24) | (byte133 << 16) | (byte134 << 8) | byte135;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked26.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked26.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked26.java (copie de travail)
@@ -1,472 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked26 extends BulkOperation {
- @Override
- public int blockCount() {
- return 13;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (block0 >>> 38);
- values[valuesOffset++] = (int) ((block0 >>> 12) & 67108863L);
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block0 & 4095L) << 14) | (block1 >>> 50));
- values[valuesOffset++] = (int) ((block1 >>> 24) & 67108863L);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block1 & 16777215L) << 2) | (block2 >>> 62));
- values[valuesOffset++] = (int) ((block2 >>> 36) & 67108863L);
- values[valuesOffset++] = (int) ((block2 >>> 10) & 67108863L);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block2 & 1023L) << 16) | (block3 >>> 48));
- values[valuesOffset++] = (int) ((block3 >>> 22) & 67108863L);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block3 & 4194303L) << 4) | (block4 >>> 60));
- values[valuesOffset++] = (int) ((block4 >>> 34) & 67108863L);
- values[valuesOffset++] = (int) ((block4 >>> 8) & 67108863L);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block4 & 255L) << 18) | (block5 >>> 46));
- values[valuesOffset++] = (int) ((block5 >>> 20) & 67108863L);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block5 & 1048575L) << 6) | (block6 >>> 58));
- values[valuesOffset++] = (int) ((block6 >>> 32) & 67108863L);
- values[valuesOffset++] = (int) ((block6 >>> 6) & 67108863L);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block6 & 63L) << 20) | (block7 >>> 44));
- values[valuesOffset++] = (int) ((block7 >>> 18) & 67108863L);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block7 & 262143L) << 8) | (block8 >>> 56));
- values[valuesOffset++] = (int) ((block8 >>> 30) & 67108863L);
- values[valuesOffset++] = (int) ((block8 >>> 4) & 67108863L);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block8 & 15L) << 22) | (block9 >>> 42));
- values[valuesOffset++] = (int) ((block9 >>> 16) & 67108863L);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block9 & 65535L) << 10) | (block10 >>> 54));
- values[valuesOffset++] = (int) ((block10 >>> 28) & 67108863L);
- values[valuesOffset++] = (int) ((block10 >>> 2) & 67108863L);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block10 & 3L) << 24) | (block11 >>> 40));
- values[valuesOffset++] = (int) ((block11 >>> 14) & 67108863L);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = (int) (((block11 & 16383L) << 12) | (block12 >>> 52));
- values[valuesOffset++] = (int) ((block12 >>> 26) & 67108863L);
- values[valuesOffset++] = (int) (block12 & 67108863L);
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final int byte0 = blocks[blocksOffset++] & 0xFF;
- final int byte1 = blocks[blocksOffset++] & 0xFF;
- final int byte2 = blocks[blocksOffset++] & 0xFF;
- final int byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 18) | (byte1 << 10) | (byte2 << 2) | (byte3 >>> 6);
- final int byte4 = blocks[blocksOffset++] & 0xFF;
- final int byte5 = blocks[blocksOffset++] & 0xFF;
- final int byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 63) << 20) | (byte4 << 12) | (byte5 << 4) | (byte6 >>> 4);
- final int byte7 = blocks[blocksOffset++] & 0xFF;
- final int byte8 = blocks[blocksOffset++] & 0xFF;
- final int byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 15) << 22) | (byte7 << 14) | (byte8 << 6) | (byte9 >>> 2);
- final int byte10 = blocks[blocksOffset++] & 0xFF;
- final int byte11 = blocks[blocksOffset++] & 0xFF;
- final int byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 3) << 24) | (byte10 << 16) | (byte11 << 8) | byte12;
- final int byte13 = blocks[blocksOffset++] & 0xFF;
- final int byte14 = blocks[blocksOffset++] & 0xFF;
- final int byte15 = blocks[blocksOffset++] & 0xFF;
- final int byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte13 << 18) | (byte14 << 10) | (byte15 << 2) | (byte16 >>> 6);
- final int byte17 = blocks[blocksOffset++] & 0xFF;
- final int byte18 = blocks[blocksOffset++] & 0xFF;
- final int byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 63) << 20) | (byte17 << 12) | (byte18 << 4) | (byte19 >>> 4);
- final int byte20 = blocks[blocksOffset++] & 0xFF;
- final int byte21 = blocks[blocksOffset++] & 0xFF;
- final int byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 15) << 22) | (byte20 << 14) | (byte21 << 6) | (byte22 >>> 2);
- final int byte23 = blocks[blocksOffset++] & 0xFF;
- final int byte24 = blocks[blocksOffset++] & 0xFF;
- final int byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 3) << 24) | (byte23 << 16) | (byte24 << 8) | byte25;
- final int byte26 = blocks[blocksOffset++] & 0xFF;
- final int byte27 = blocks[blocksOffset++] & 0xFF;
- final int byte28 = blocks[blocksOffset++] & 0xFF;
- final int byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte26 << 18) | (byte27 << 10) | (byte28 << 2) | (byte29 >>> 6);
- final int byte30 = blocks[blocksOffset++] & 0xFF;
- final int byte31 = blocks[blocksOffset++] & 0xFF;
- final int byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte29 & 63) << 20) | (byte30 << 12) | (byte31 << 4) | (byte32 >>> 4);
- final int byte33 = blocks[blocksOffset++] & 0xFF;
- final int byte34 = blocks[blocksOffset++] & 0xFF;
- final int byte35 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 15) << 22) | (byte33 << 14) | (byte34 << 6) | (byte35 >>> 2);
- final int byte36 = blocks[blocksOffset++] & 0xFF;
- final int byte37 = blocks[blocksOffset++] & 0xFF;
- final int byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte35 & 3) << 24) | (byte36 << 16) | (byte37 << 8) | byte38;
- final int byte39 = blocks[blocksOffset++] & 0xFF;
- final int byte40 = blocks[blocksOffset++] & 0xFF;
- final int byte41 = blocks[blocksOffset++] & 0xFF;
- final int byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte39 << 18) | (byte40 << 10) | (byte41 << 2) | (byte42 >>> 6);
- final int byte43 = blocks[blocksOffset++] & 0xFF;
- final int byte44 = blocks[blocksOffset++] & 0xFF;
- final int byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 63) << 20) | (byte43 << 12) | (byte44 << 4) | (byte45 >>> 4);
- final int byte46 = blocks[blocksOffset++] & 0xFF;
- final int byte47 = blocks[blocksOffset++] & 0xFF;
- final int byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 15) << 22) | (byte46 << 14) | (byte47 << 6) | (byte48 >>> 2);
- final int byte49 = blocks[blocksOffset++] & 0xFF;
- final int byte50 = blocks[blocksOffset++] & 0xFF;
- final int byte51 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 3) << 24) | (byte49 << 16) | (byte50 << 8) | byte51;
- final int byte52 = blocks[blocksOffset++] & 0xFF;
- final int byte53 = blocks[blocksOffset++] & 0xFF;
- final int byte54 = blocks[blocksOffset++] & 0xFF;
- final int byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte52 << 18) | (byte53 << 10) | (byte54 << 2) | (byte55 >>> 6);
- final int byte56 = blocks[blocksOffset++] & 0xFF;
- final int byte57 = blocks[blocksOffset++] & 0xFF;
- final int byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte55 & 63) << 20) | (byte56 << 12) | (byte57 << 4) | (byte58 >>> 4);
- final int byte59 = blocks[blocksOffset++] & 0xFF;
- final int byte60 = blocks[blocksOffset++] & 0xFF;
- final int byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 15) << 22) | (byte59 << 14) | (byte60 << 6) | (byte61 >>> 2);
- final int byte62 = blocks[blocksOffset++] & 0xFF;
- final int byte63 = blocks[blocksOffset++] & 0xFF;
- final int byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 3) << 24) | (byte62 << 16) | (byte63 << 8) | byte64;
- final int byte65 = blocks[blocksOffset++] & 0xFF;
- final int byte66 = blocks[blocksOffset++] & 0xFF;
- final int byte67 = blocks[blocksOffset++] & 0xFF;
- final int byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte65 << 18) | (byte66 << 10) | (byte67 << 2) | (byte68 >>> 6);
- final int byte69 = blocks[blocksOffset++] & 0xFF;
- final int byte70 = blocks[blocksOffset++] & 0xFF;
- final int byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 63) << 20) | (byte69 << 12) | (byte70 << 4) | (byte71 >>> 4);
- final int byte72 = blocks[blocksOffset++] & 0xFF;
- final int byte73 = blocks[blocksOffset++] & 0xFF;
- final int byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 15) << 22) | (byte72 << 14) | (byte73 << 6) | (byte74 >>> 2);
- final int byte75 = blocks[blocksOffset++] & 0xFF;
- final int byte76 = blocks[blocksOffset++] & 0xFF;
- final int byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 3) << 24) | (byte75 << 16) | (byte76 << 8) | byte77;
- final int byte78 = blocks[blocksOffset++] & 0xFF;
- final int byte79 = blocks[blocksOffset++] & 0xFF;
- final int byte80 = blocks[blocksOffset++] & 0xFF;
- final int byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte78 << 18) | (byte79 << 10) | (byte80 << 2) | (byte81 >>> 6);
- final int byte82 = blocks[blocksOffset++] & 0xFF;
- final int byte83 = blocks[blocksOffset++] & 0xFF;
- final int byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 63) << 20) | (byte82 << 12) | (byte83 << 4) | (byte84 >>> 4);
- final int byte85 = blocks[blocksOffset++] & 0xFF;
- final int byte86 = blocks[blocksOffset++] & 0xFF;
- final int byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 15) << 22) | (byte85 << 14) | (byte86 << 6) | (byte87 >>> 2);
- final int byte88 = blocks[blocksOffset++] & 0xFF;
- final int byte89 = blocks[blocksOffset++] & 0xFF;
- final int byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 3) << 24) | (byte88 << 16) | (byte89 << 8) | byte90;
- final int byte91 = blocks[blocksOffset++] & 0xFF;
- final int byte92 = blocks[blocksOffset++] & 0xFF;
- final int byte93 = blocks[blocksOffset++] & 0xFF;
- final int byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte91 << 18) | (byte92 << 10) | (byte93 << 2) | (byte94 >>> 6);
- final int byte95 = blocks[blocksOffset++] & 0xFF;
- final int byte96 = blocks[blocksOffset++] & 0xFF;
- final int byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 63) << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final int byte98 = blocks[blocksOffset++] & 0xFF;
- final int byte99 = blocks[blocksOffset++] & 0xFF;
- final int byte100 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 22) | (byte98 << 14) | (byte99 << 6) | (byte100 >>> 2);
- final int byte101 = blocks[blocksOffset++] & 0xFF;
- final int byte102 = blocks[blocksOffset++] & 0xFF;
- final int byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte100 & 3) << 24) | (byte101 << 16) | (byte102 << 8) | byte103;
- }
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 38;
- values[valuesOffset++] = (block0 >>> 12) & 67108863L;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 4095L) << 14) | (block1 >>> 50);
- values[valuesOffset++] = (block1 >>> 24) & 67108863L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 16777215L) << 2) | (block2 >>> 62);
- values[valuesOffset++] = (block2 >>> 36) & 67108863L;
- values[valuesOffset++] = (block2 >>> 10) & 67108863L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 1023L) << 16) | (block3 >>> 48);
- values[valuesOffset++] = (block3 >>> 22) & 67108863L;
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 4194303L) << 4) | (block4 >>> 60);
- values[valuesOffset++] = (block4 >>> 34) & 67108863L;
- values[valuesOffset++] = (block4 >>> 8) & 67108863L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 255L) << 18) | (block5 >>> 46);
- values[valuesOffset++] = (block5 >>> 20) & 67108863L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 1048575L) << 6) | (block6 >>> 58);
- values[valuesOffset++] = (block6 >>> 32) & 67108863L;
- values[valuesOffset++] = (block6 >>> 6) & 67108863L;
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 63L) << 20) | (block7 >>> 44);
- values[valuesOffset++] = (block7 >>> 18) & 67108863L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 262143L) << 8) | (block8 >>> 56);
- values[valuesOffset++] = (block8 >>> 30) & 67108863L;
- values[valuesOffset++] = (block8 >>> 4) & 67108863L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 15L) << 22) | (block9 >>> 42);
- values[valuesOffset++] = (block9 >>> 16) & 67108863L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 65535L) << 10) | (block10 >>> 54);
- values[valuesOffset++] = (block10 >>> 28) & 67108863L;
- values[valuesOffset++] = (block10 >>> 2) & 67108863L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 3L) << 24) | (block11 >>> 40);
- values[valuesOffset++] = (block11 >>> 14) & 67108863L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 16383L) << 12) | (block12 >>> 52);
- values[valuesOffset++] = (block12 >>> 26) & 67108863L;
- values[valuesOffset++] = block12 & 67108863L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 18) | (byte1 << 10) | (byte2 << 2) | (byte3 >>> 6);
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte3 & 63) << 20) | (byte4 << 12) | (byte5 << 4) | (byte6 >>> 4);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 15) << 22) | (byte7 << 14) | (byte8 << 6) | (byte9 >>> 2);
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 3) << 24) | (byte10 << 16) | (byte11 << 8) | byte12;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte13 << 18) | (byte14 << 10) | (byte15 << 2) | (byte16 >>> 6);
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte16 & 63) << 20) | (byte17 << 12) | (byte18 << 4) | (byte19 >>> 4);
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte19 & 15) << 22) | (byte20 << 14) | (byte21 << 6) | (byte22 >>> 2);
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte22 & 3) << 24) | (byte23 << 16) | (byte24 << 8) | byte25;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte26 << 18) | (byte27 << 10) | (byte28 << 2) | (byte29 >>> 6);
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte29 & 63) << 20) | (byte30 << 12) | (byte31 << 4) | (byte32 >>> 4);
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte32 & 15) << 22) | (byte33 << 14) | (byte34 << 6) | (byte35 >>> 2);
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte35 & 3) << 24) | (byte36 << 16) | (byte37 << 8) | byte38;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte39 << 18) | (byte40 << 10) | (byte41 << 2) | (byte42 >>> 6);
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 63) << 20) | (byte43 << 12) | (byte44 << 4) | (byte45 >>> 4);
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte45 & 15) << 22) | (byte46 << 14) | (byte47 << 6) | (byte48 >>> 2);
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte48 & 3) << 24) | (byte49 << 16) | (byte50 << 8) | byte51;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte52 << 18) | (byte53 << 10) | (byte54 << 2) | (byte55 >>> 6);
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte55 & 63) << 20) | (byte56 << 12) | (byte57 << 4) | (byte58 >>> 4);
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte58 & 15) << 22) | (byte59 << 14) | (byte60 << 6) | (byte61 >>> 2);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 3) << 24) | (byte62 << 16) | (byte63 << 8) | byte64;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte65 << 18) | (byte66 << 10) | (byte67 << 2) | (byte68 >>> 6);
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte68 & 63) << 20) | (byte69 << 12) | (byte70 << 4) | (byte71 >>> 4);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 15) << 22) | (byte72 << 14) | (byte73 << 6) | (byte74 >>> 2);
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 3) << 24) | (byte75 << 16) | (byte76 << 8) | byte77;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte78 << 18) | (byte79 << 10) | (byte80 << 2) | (byte81 >>> 6);
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte81 & 63) << 20) | (byte82 << 12) | (byte83 << 4) | (byte84 >>> 4);
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte84 & 15) << 22) | (byte85 << 14) | (byte86 << 6) | (byte87 >>> 2);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 3) << 24) | (byte88 << 16) | (byte89 << 8) | byte90;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte91 << 18) | (byte92 << 10) | (byte93 << 2) | (byte94 >>> 6);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 63) << 20) | (byte95 << 12) | (byte96 << 4) | (byte97 >>> 4);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 15) << 22) | (byte98 << 14) | (byte99 << 6) | (byte100 >>> 2);
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte100 & 3) << 24) | (byte101 << 16) | (byte102 << 8) | byte103;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 26) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 26) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked62.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked62.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked62.java (copie de travail)
@@ -1,483 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked62 extends BulkOperation {
- @Override
- public int blockCount() {
- return 31;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 2;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 3L) << 60) | (block1 >>> 4);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 15L) << 58) | (block2 >>> 6);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 63L) << 56) | (block3 >>> 8);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 255L) << 54) | (block4 >>> 10);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1023L) << 52) | (block5 >>> 12);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 4095L) << 50) | (block6 >>> 14);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 16383L) << 48) | (block7 >>> 16);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 65535L) << 46) | (block8 >>> 18);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 262143L) << 44) | (block9 >>> 20);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 1048575L) << 42) | (block10 >>> 22);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 4194303L) << 40) | (block11 >>> 24);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 16777215L) << 38) | (block12 >>> 26);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 67108863L) << 36) | (block13 >>> 28);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 268435455L) << 34) | (block14 >>> 30);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1073741823L) << 32) | (block15 >>> 32);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 4294967295L) << 30) | (block16 >>> 34);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 17179869183L) << 28) | (block17 >>> 36);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 68719476735L) << 26) | (block18 >>> 38);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 274877906943L) << 24) | (block19 >>> 40);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 1099511627775L) << 22) | (block20 >>> 42);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 4398046511103L) << 20) | (block21 >>> 44);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 17592186044415L) << 18) | (block22 >>> 46);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 70368744177663L) << 16) | (block23 >>> 48);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 281474976710655L) << 14) | (block24 >>> 50);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 1125899906842623L) << 12) | (block25 >>> 52);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 4503599627370495L) << 10) | (block26 >>> 54);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 18014398509481983L) << 8) | (block27 >>> 56);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 72057594037927935L) << 6) | (block28 >>> 58);
- final long block29 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block28 & 288230376151711743L) << 4) | (block29 >>> 60);
- final long block30 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block29 & 1152921504606846975L) << 2) | (block30 >>> 62);
- values[valuesOffset++] = block30 & 4611686018427387903L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 54) | (byte1 << 46) | (byte2 << 38) | (byte3 << 30) | (byte4 << 22) | (byte5 << 14) | (byte6 << 6) | (byte7 >>> 2);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 3) << 60) | (byte8 << 52) | (byte9 << 44) | (byte10 << 36) | (byte11 << 28) | (byte12 << 20) | (byte13 << 12) | (byte14 << 4) | (byte15 >>> 4);
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte15 & 15) << 58) | (byte16 << 50) | (byte17 << 42) | (byte18 << 34) | (byte19 << 26) | (byte20 << 18) | (byte21 << 10) | (byte22 << 2) | (byte23 >>> 6);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 63) << 56) | (byte24 << 48) | (byte25 << 40) | (byte26 << 32) | (byte27 << 24) | (byte28 << 16) | (byte29 << 8) | byte30;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte31 << 54) | (byte32 << 46) | (byte33 << 38) | (byte34 << 30) | (byte35 << 22) | (byte36 << 14) | (byte37 << 6) | (byte38 >>> 2);
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte38 & 3) << 60) | (byte39 << 52) | (byte40 << 44) | (byte41 << 36) | (byte42 << 28) | (byte43 << 20) | (byte44 << 12) | (byte45 << 4) | (byte46 >>> 4);
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte46 & 15) << 58) | (byte47 << 50) | (byte48 << 42) | (byte49 << 34) | (byte50 << 26) | (byte51 << 18) | (byte52 << 10) | (byte53 << 2) | (byte54 >>> 6);
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte54 & 63) << 56) | (byte55 << 48) | (byte56 << 40) | (byte57 << 32) | (byte58 << 24) | (byte59 << 16) | (byte60 << 8) | byte61;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte62 << 54) | (byte63 << 46) | (byte64 << 38) | (byte65 << 30) | (byte66 << 22) | (byte67 << 14) | (byte68 << 6) | (byte69 >>> 2);
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte69 & 3) << 60) | (byte70 << 52) | (byte71 << 44) | (byte72 << 36) | (byte73 << 28) | (byte74 << 20) | (byte75 << 12) | (byte76 << 4) | (byte77 >>> 4);
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte77 & 15) << 58) | (byte78 << 50) | (byte79 << 42) | (byte80 << 34) | (byte81 << 26) | (byte82 << 18) | (byte83 << 10) | (byte84 << 2) | (byte85 >>> 6);
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte85 & 63) << 56) | (byte86 << 48) | (byte87 << 40) | (byte88 << 32) | (byte89 << 24) | (byte90 << 16) | (byte91 << 8) | byte92;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte93 << 54) | (byte94 << 46) | (byte95 << 38) | (byte96 << 30) | (byte97 << 22) | (byte98 << 14) | (byte99 << 6) | (byte100 >>> 2);
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte100 & 3) << 60) | (byte101 << 52) | (byte102 << 44) | (byte103 << 36) | (byte104 << 28) | (byte105 << 20) | (byte106 << 12) | (byte107 << 4) | (byte108 >>> 4);
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 15) << 58) | (byte109 << 50) | (byte110 << 42) | (byte111 << 34) | (byte112 << 26) | (byte113 << 18) | (byte114 << 10) | (byte115 << 2) | (byte116 >>> 6);
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte116 & 63) << 56) | (byte117 << 48) | (byte118 << 40) | (byte119 << 32) | (byte120 << 24) | (byte121 << 16) | (byte122 << 8) | byte123;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte124 << 54) | (byte125 << 46) | (byte126 << 38) | (byte127 << 30) | (byte128 << 22) | (byte129 << 14) | (byte130 << 6) | (byte131 >>> 2);
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte131 & 3) << 60) | (byte132 << 52) | (byte133 << 44) | (byte134 << 36) | (byte135 << 28) | (byte136 << 20) | (byte137 << 12) | (byte138 << 4) | (byte139 >>> 4);
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte139 & 15) << 58) | (byte140 << 50) | (byte141 << 42) | (byte142 << 34) | (byte143 << 26) | (byte144 << 18) | (byte145 << 10) | (byte146 << 2) | (byte147 >>> 6);
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte147 & 63) << 56) | (byte148 << 48) | (byte149 << 40) | (byte150 << 32) | (byte151 << 24) | (byte152 << 16) | (byte153 << 8) | byte154;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte155 << 54) | (byte156 << 46) | (byte157 << 38) | (byte158 << 30) | (byte159 << 22) | (byte160 << 14) | (byte161 << 6) | (byte162 >>> 2);
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte162 & 3) << 60) | (byte163 << 52) | (byte164 << 44) | (byte165 << 36) | (byte166 << 28) | (byte167 << 20) | (byte168 << 12) | (byte169 << 4) | (byte170 >>> 4);
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte170 & 15) << 58) | (byte171 << 50) | (byte172 << 42) | (byte173 << 34) | (byte174 << 26) | (byte175 << 18) | (byte176 << 10) | (byte177 << 2) | (byte178 >>> 6);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 63) << 56) | (byte179 << 48) | (byte180 << 40) | (byte181 << 32) | (byte182 << 24) | (byte183 << 16) | (byte184 << 8) | byte185;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte186 << 54) | (byte187 << 46) | (byte188 << 38) | (byte189 << 30) | (byte190 << 22) | (byte191 << 14) | (byte192 << 6) | (byte193 >>> 2);
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte193 & 3) << 60) | (byte194 << 52) | (byte195 << 44) | (byte196 << 36) | (byte197 << 28) | (byte198 << 20) | (byte199 << 12) | (byte200 << 4) | (byte201 >>> 4);
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte201 & 15) << 58) | (byte202 << 50) | (byte203 << 42) | (byte204 << 34) | (byte205 << 26) | (byte206 << 18) | (byte207 << 10) | (byte208 << 2) | (byte209 >>> 6);
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 63) << 56) | (byte210 << 48) | (byte211 << 40) | (byte212 << 32) | (byte213 << 24) | (byte214 << 16) | (byte215 << 8) | byte216;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte217 << 54) | (byte218 << 46) | (byte219 << 38) | (byte220 << 30) | (byte221 << 22) | (byte222 << 14) | (byte223 << 6) | (byte224 >>> 2);
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- final long byte232 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 3) << 60) | (byte225 << 52) | (byte226 << 44) | (byte227 << 36) | (byte228 << 28) | (byte229 << 20) | (byte230 << 12) | (byte231 << 4) | (byte232 >>> 4);
- final long byte233 = blocks[blocksOffset++] & 0xFF;
- final long byte234 = blocks[blocksOffset++] & 0xFF;
- final long byte235 = blocks[blocksOffset++] & 0xFF;
- final long byte236 = blocks[blocksOffset++] & 0xFF;
- final long byte237 = blocks[blocksOffset++] & 0xFF;
- final long byte238 = blocks[blocksOffset++] & 0xFF;
- final long byte239 = blocks[blocksOffset++] & 0xFF;
- final long byte240 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte232 & 15) << 58) | (byte233 << 50) | (byte234 << 42) | (byte235 << 34) | (byte236 << 26) | (byte237 << 18) | (byte238 << 10) | (byte239 << 2) | (byte240 >>> 6);
- final long byte241 = blocks[blocksOffset++] & 0xFF;
- final long byte242 = blocks[blocksOffset++] & 0xFF;
- final long byte243 = blocks[blocksOffset++] & 0xFF;
- final long byte244 = blocks[blocksOffset++] & 0xFF;
- final long byte245 = blocks[blocksOffset++] & 0xFF;
- final long byte246 = blocks[blocksOffset++] & 0xFF;
- final long byte247 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte240 & 63) << 56) | (byte241 << 48) | (byte242 << 40) | (byte243 << 32) | (byte244 << 24) | (byte245 << 16) | (byte246 << 8) | byte247;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 60);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 58);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 60);
- blocks[blocksOffset++] = (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 58);
- blocks[blocksOffset++] = (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked54.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked54.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked54.java (copie de travail)
@@ -1,439 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked54 extends BulkOperation {
- @Override
- public int blockCount() {
- return 27;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 10;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 1023L) << 44) | (block1 >>> 20);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 1048575L) << 34) | (block2 >>> 30);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 1073741823L) << 24) | (block3 >>> 40);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 1099511627775L) << 14) | (block4 >>> 50);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1125899906842623L) << 4) | (block5 >>> 60);
- values[valuesOffset++] = (block5 >>> 6) & 18014398509481983L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 63L) << 48) | (block6 >>> 16);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 65535L) << 38) | (block7 >>> 26);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 67108863L) << 28) | (block8 >>> 36);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 68719476735L) << 18) | (block9 >>> 46);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 70368744177663L) << 8) | (block10 >>> 56);
- values[valuesOffset++] = (block10 >>> 2) & 18014398509481983L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 3L) << 52) | (block11 >>> 12);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 4095L) << 42) | (block12 >>> 22);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 4194303L) << 32) | (block13 >>> 32);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 4294967295L) << 22) | (block14 >>> 42);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 4398046511103L) << 12) | (block15 >>> 52);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 4503599627370495L) << 2) | (block16 >>> 62);
- values[valuesOffset++] = (block16 >>> 8) & 18014398509481983L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 255L) << 46) | (block17 >>> 18);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 262143L) << 36) | (block18 >>> 28);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 268435455L) << 26) | (block19 >>> 38);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 274877906943L) << 16) | (block20 >>> 48);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 281474976710655L) << 6) | (block21 >>> 58);
- values[valuesOffset++] = (block21 >>> 4) & 18014398509481983L;
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 15L) << 50) | (block22 >>> 14);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 16383L) << 40) | (block23 >>> 24);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 16777215L) << 30) | (block24 >>> 34);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 17179869183L) << 20) | (block25 >>> 44);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 17592186044415L) << 10) | (block26 >>> 54);
- values[valuesOffset++] = block26 & 18014398509481983L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 46) | (byte1 << 38) | (byte2 << 30) | (byte3 << 22) | (byte4 << 14) | (byte5 << 6) | (byte6 >>> 2);
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte6 & 3) << 52) | (byte7 << 44) | (byte8 << 36) | (byte9 << 28) | (byte10 << 20) | (byte11 << 12) | (byte12 << 4) | (byte13 >>> 4);
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte13 & 15) << 50) | (byte14 << 42) | (byte15 << 34) | (byte16 << 26) | (byte17 << 18) | (byte18 << 10) | (byte19 << 2) | (byte20 >>> 6);
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte20 & 63) << 48) | (byte21 << 40) | (byte22 << 32) | (byte23 << 24) | (byte24 << 16) | (byte25 << 8) | byte26;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte27 << 46) | (byte28 << 38) | (byte29 << 30) | (byte30 << 22) | (byte31 << 14) | (byte32 << 6) | (byte33 >>> 2);
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 3) << 52) | (byte34 << 44) | (byte35 << 36) | (byte36 << 28) | (byte37 << 20) | (byte38 << 12) | (byte39 << 4) | (byte40 >>> 4);
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 15) << 50) | (byte41 << 42) | (byte42 << 34) | (byte43 << 26) | (byte44 << 18) | (byte45 << 10) | (byte46 << 2) | (byte47 >>> 6);
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 63) << 48) | (byte48 << 40) | (byte49 << 32) | (byte50 << 24) | (byte51 << 16) | (byte52 << 8) | byte53;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte54 << 46) | (byte55 << 38) | (byte56 << 30) | (byte57 << 22) | (byte58 << 14) | (byte59 << 6) | (byte60 >>> 2);
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte60 & 3) << 52) | (byte61 << 44) | (byte62 << 36) | (byte63 << 28) | (byte64 << 20) | (byte65 << 12) | (byte66 << 4) | (byte67 >>> 4);
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte67 & 15) << 50) | (byte68 << 42) | (byte69 << 34) | (byte70 << 26) | (byte71 << 18) | (byte72 << 10) | (byte73 << 2) | (byte74 >>> 6);
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 63) << 48) | (byte75 << 40) | (byte76 << 32) | (byte77 << 24) | (byte78 << 16) | (byte79 << 8) | byte80;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte81 << 46) | (byte82 << 38) | (byte83 << 30) | (byte84 << 22) | (byte85 << 14) | (byte86 << 6) | (byte87 >>> 2);
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte87 & 3) << 52) | (byte88 << 44) | (byte89 << 36) | (byte90 << 28) | (byte91 << 20) | (byte92 << 12) | (byte93 << 4) | (byte94 >>> 4);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 15) << 50) | (byte95 << 42) | (byte96 << 34) | (byte97 << 26) | (byte98 << 18) | (byte99 << 10) | (byte100 << 2) | (byte101 >>> 6);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 63) << 48) | (byte102 << 40) | (byte103 << 32) | (byte104 << 24) | (byte105 << 16) | (byte106 << 8) | byte107;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte108 << 46) | (byte109 << 38) | (byte110 << 30) | (byte111 << 22) | (byte112 << 14) | (byte113 << 6) | (byte114 >>> 2);
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte114 & 3) << 52) | (byte115 << 44) | (byte116 << 36) | (byte117 << 28) | (byte118 << 20) | (byte119 << 12) | (byte120 << 4) | (byte121 >>> 4);
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte121 & 15) << 50) | (byte122 << 42) | (byte123 << 34) | (byte124 << 26) | (byte125 << 18) | (byte126 << 10) | (byte127 << 2) | (byte128 >>> 6);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 63) << 48) | (byte129 << 40) | (byte130 << 32) | (byte131 << 24) | (byte132 << 16) | (byte133 << 8) | byte134;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte135 << 46) | (byte136 << 38) | (byte137 << 30) | (byte138 << 22) | (byte139 << 14) | (byte140 << 6) | (byte141 >>> 2);
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte141 & 3) << 52) | (byte142 << 44) | (byte143 << 36) | (byte144 << 28) | (byte145 << 20) | (byte146 << 12) | (byte147 << 4) | (byte148 >>> 4);
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte148 & 15) << 50) | (byte149 << 42) | (byte150 << 34) | (byte151 << 26) | (byte152 << 18) | (byte153 << 10) | (byte154 << 2) | (byte155 >>> 6);
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 63) << 48) | (byte156 << 40) | (byte157 << 32) | (byte158 << 24) | (byte159 << 16) | (byte160 << 8) | byte161;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte162 << 46) | (byte163 << 38) | (byte164 << 30) | (byte165 << 22) | (byte166 << 14) | (byte167 << 6) | (byte168 >>> 2);
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte168 & 3) << 52) | (byte169 << 44) | (byte170 << 36) | (byte171 << 28) | (byte172 << 20) | (byte173 << 12) | (byte174 << 4) | (byte175 >>> 4);
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte175 & 15) << 50) | (byte176 << 42) | (byte177 << 34) | (byte178 << 26) | (byte179 << 18) | (byte180 << 10) | (byte181 << 2) | (byte182 >>> 6);
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte182 & 63) << 48) | (byte183 << 40) | (byte184 << 32) | (byte185 << 24) | (byte186 << 16) | (byte187 << 8) | byte188;
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte189 << 46) | (byte190 << 38) | (byte191 << 30) | (byte192 << 22) | (byte193 << 14) | (byte194 << 6) | (byte195 >>> 2);
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte195 & 3) << 52) | (byte196 << 44) | (byte197 << 36) | (byte198 << 28) | (byte199 << 20) | (byte200 << 12) | (byte201 << 4) | (byte202 >>> 4);
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte202 & 15) << 50) | (byte203 << 42) | (byte204 << 34) | (byte205 << 26) | (byte206 << 18) | (byte207 << 10) | (byte208 << 2) | (byte209 >>> 6);
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte209 & 63) << 48) | (byte210 << 40) | (byte211 << 32) | (byte212 << 24) | (byte213 << 16) | (byte214 << 8) | byte215;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked18.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked18.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked18.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked18 extends BulkOperation {
- @Override
- public int blockCount() {
- return 9;
- }
+final class BulkOperationPacked18 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 32;
+ public BulkOperationPacked18() {
+ super(18);
+ assert blockCount() == 9;
+ assert valueCount() == 32;
}
@Override
@@ -355,38 +352,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 18) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 18) | values[valuesOffset++];
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked46.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked46.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked46.java (copie de travail)
@@ -1,395 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked46 extends BulkOperation {
- @Override
- public int blockCount() {
- return 23;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 18;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 262143L) << 28) | (block1 >>> 36);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 68719476735L) << 10) | (block2 >>> 54);
- values[valuesOffset++] = (block2 >>> 8) & 70368744177663L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 255L) << 38) | (block3 >>> 26);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 67108863L) << 20) | (block4 >>> 44);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 17592186044415L) << 2) | (block5 >>> 62);
- values[valuesOffset++] = (block5 >>> 16) & 70368744177663L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 65535L) << 30) | (block6 >>> 34);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 17179869183L) << 12) | (block7 >>> 52);
- values[valuesOffset++] = (block7 >>> 6) & 70368744177663L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 63L) << 40) | (block8 >>> 24);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 16777215L) << 22) | (block9 >>> 42);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 4398046511103L) << 4) | (block10 >>> 60);
- values[valuesOffset++] = (block10 >>> 14) & 70368744177663L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 16383L) << 32) | (block11 >>> 32);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 4294967295L) << 14) | (block12 >>> 50);
- values[valuesOffset++] = (block12 >>> 4) & 70368744177663L;
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 15L) << 42) | (block13 >>> 22);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 4194303L) << 24) | (block14 >>> 40);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1099511627775L) << 6) | (block15 >>> 58);
- values[valuesOffset++] = (block15 >>> 12) & 70368744177663L;
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 4095L) << 34) | (block16 >>> 30);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 1073741823L) << 16) | (block17 >>> 48);
- values[valuesOffset++] = (block17 >>> 2) & 70368744177663L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 3L) << 44) | (block18 >>> 20);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 1048575L) << 26) | (block19 >>> 38);
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 274877906943L) << 8) | (block20 >>> 56);
- values[valuesOffset++] = (block20 >>> 10) & 70368744177663L;
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 1023L) << 36) | (block21 >>> 28);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 268435455L) << 18) | (block22 >>> 46);
- values[valuesOffset++] = block22 & 70368744177663L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 38) | (byte1 << 30) | (byte2 << 22) | (byte3 << 14) | (byte4 << 6) | (byte5 >>> 2);
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte5 & 3) << 44) | (byte6 << 36) | (byte7 << 28) | (byte8 << 20) | (byte9 << 12) | (byte10 << 4) | (byte11 >>> 4);
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte11 & 15) << 42) | (byte12 << 34) | (byte13 << 26) | (byte14 << 18) | (byte15 << 10) | (byte16 << 2) | (byte17 >>> 6);
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte17 & 63) << 40) | (byte18 << 32) | (byte19 << 24) | (byte20 << 16) | (byte21 << 8) | byte22;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte23 << 38) | (byte24 << 30) | (byte25 << 22) | (byte26 << 14) | (byte27 << 6) | (byte28 >>> 2);
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 3) << 44) | (byte29 << 36) | (byte30 << 28) | (byte31 << 20) | (byte32 << 12) | (byte33 << 4) | (byte34 >>> 4);
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte34 & 15) << 42) | (byte35 << 34) | (byte36 << 26) | (byte37 << 18) | (byte38 << 10) | (byte39 << 2) | (byte40 >>> 6);
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte40 & 63) << 40) | (byte41 << 32) | (byte42 << 24) | (byte43 << 16) | (byte44 << 8) | byte45;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte46 << 38) | (byte47 << 30) | (byte48 << 22) | (byte49 << 14) | (byte50 << 6) | (byte51 >>> 2);
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte51 & 3) << 44) | (byte52 << 36) | (byte53 << 28) | (byte54 << 20) | (byte55 << 12) | (byte56 << 4) | (byte57 >>> 4);
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte57 & 15) << 42) | (byte58 << 34) | (byte59 << 26) | (byte60 << 18) | (byte61 << 10) | (byte62 << 2) | (byte63 >>> 6);
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte63 & 63) << 40) | (byte64 << 32) | (byte65 << 24) | (byte66 << 16) | (byte67 << 8) | byte68;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte69 << 38) | (byte70 << 30) | (byte71 << 22) | (byte72 << 14) | (byte73 << 6) | (byte74 >>> 2);
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte74 & 3) << 44) | (byte75 << 36) | (byte76 << 28) | (byte77 << 20) | (byte78 << 12) | (byte79 << 4) | (byte80 >>> 4);
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte80 & 15) << 42) | (byte81 << 34) | (byte82 << 26) | (byte83 << 18) | (byte84 << 10) | (byte85 << 2) | (byte86 >>> 6);
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte86 & 63) << 40) | (byte87 << 32) | (byte88 << 24) | (byte89 << 16) | (byte90 << 8) | byte91;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte92 << 38) | (byte93 << 30) | (byte94 << 22) | (byte95 << 14) | (byte96 << 6) | (byte97 >>> 2);
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte97 & 3) << 44) | (byte98 << 36) | (byte99 << 28) | (byte100 << 20) | (byte101 << 12) | (byte102 << 4) | (byte103 >>> 4);
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte103 & 15) << 42) | (byte104 << 34) | (byte105 << 26) | (byte106 << 18) | (byte107 << 10) | (byte108 << 2) | (byte109 >>> 6);
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte109 & 63) << 40) | (byte110 << 32) | (byte111 << 24) | (byte112 << 16) | (byte113 << 8) | byte114;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte115 << 38) | (byte116 << 30) | (byte117 << 22) | (byte118 << 14) | (byte119 << 6) | (byte120 >>> 2);
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte120 & 3) << 44) | (byte121 << 36) | (byte122 << 28) | (byte123 << 20) | (byte124 << 12) | (byte125 << 4) | (byte126 >>> 4);
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte126 & 15) << 42) | (byte127 << 34) | (byte128 << 26) | (byte129 << 18) | (byte130 << 10) | (byte131 << 2) | (byte132 >>> 6);
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte132 & 63) << 40) | (byte133 << 32) | (byte134 << 24) | (byte135 << 16) | (byte136 << 8) | byte137;
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte138 << 38) | (byte139 << 30) | (byte140 << 22) | (byte141 << 14) | (byte142 << 6) | (byte143 >>> 2);
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte143 & 3) << 44) | (byte144 << 36) | (byte145 << 28) | (byte146 << 20) | (byte147 << 12) | (byte148 << 4) | (byte149 >>> 4);
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte149 & 15) << 42) | (byte150 << 34) | (byte151 << 26) | (byte152 << 18) | (byte153 << 10) | (byte154 << 2) | (byte155 >>> 6);
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte155 & 63) << 40) | (byte156 << 32) | (byte157 << 24) | (byte158 << 16) | (byte159 << 8) | byte160;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte161 << 38) | (byte162 << 30) | (byte163 << 22) | (byte164 << 14) | (byte165 << 6) | (byte166 >>> 2);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 3) << 44) | (byte167 << 36) | (byte168 << 28) | (byte169 << 20) | (byte170 << 12) | (byte171 << 4) | (byte172 >>> 4);
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte172 & 15) << 42) | (byte173 << 34) | (byte174 << 26) | (byte175 << 18) | (byte176 << 10) | (byte177 << 2) | (byte178 >>> 6);
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte178 & 63) << 40) | (byte179 << 32) | (byte180 << 24) | (byte181 << 16) | (byte182 << 8) | byte183;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked38.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked38.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked38.java (copie de travail)
@@ -1,351 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked38 extends BulkOperation {
- @Override
- public int blockCount() {
- return 19;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 26;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 67108863L) << 12) | (block1 >>> 52);
- values[valuesOffset++] = (block1 >>> 14) & 274877906943L;
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 16383L) << 24) | (block2 >>> 40);
- values[valuesOffset++] = (block2 >>> 2) & 274877906943L;
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 3L) << 36) | (block3 >>> 28);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 268435455L) << 10) | (block4 >>> 54);
- values[valuesOffset++] = (block4 >>> 16) & 274877906943L;
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 65535L) << 22) | (block5 >>> 42);
- values[valuesOffset++] = (block5 >>> 4) & 274877906943L;
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 15L) << 34) | (block6 >>> 30);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 1073741823L) << 8) | (block7 >>> 56);
- values[valuesOffset++] = (block7 >>> 18) & 274877906943L;
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 262143L) << 20) | (block8 >>> 44);
- values[valuesOffset++] = (block8 >>> 6) & 274877906943L;
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 63L) << 32) | (block9 >>> 32);
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 4294967295L) << 6) | (block10 >>> 58);
- values[valuesOffset++] = (block10 >>> 20) & 274877906943L;
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 1048575L) << 18) | (block11 >>> 46);
- values[valuesOffset++] = (block11 >>> 8) & 274877906943L;
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 255L) << 30) | (block12 >>> 34);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 17179869183L) << 4) | (block13 >>> 60);
- values[valuesOffset++] = (block13 >>> 22) & 274877906943L;
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 4194303L) << 16) | (block14 >>> 48);
- values[valuesOffset++] = (block14 >>> 10) & 274877906943L;
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 1023L) << 28) | (block15 >>> 36);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 68719476735L) << 2) | (block16 >>> 62);
- values[valuesOffset++] = (block16 >>> 24) & 274877906943L;
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 16777215L) << 14) | (block17 >>> 50);
- values[valuesOffset++] = (block17 >>> 12) & 274877906943L;
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 4095L) << 26) | (block18 >>> 38);
- values[valuesOffset++] = block18 & 274877906943L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 30) | (byte1 << 22) | (byte2 << 14) | (byte3 << 6) | (byte4 >>> 2);
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte4 & 3) << 36) | (byte5 << 28) | (byte6 << 20) | (byte7 << 12) | (byte8 << 4) | (byte9 >>> 4);
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte9 & 15) << 34) | (byte10 << 26) | (byte11 << 18) | (byte12 << 10) | (byte13 << 2) | (byte14 >>> 6);
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 63) << 32) | (byte15 << 24) | (byte16 << 16) | (byte17 << 8) | byte18;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte19 << 30) | (byte20 << 22) | (byte21 << 14) | (byte22 << 6) | (byte23 >>> 2);
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte23 & 3) << 36) | (byte24 << 28) | (byte25 << 20) | (byte26 << 12) | (byte27 << 4) | (byte28 >>> 4);
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte28 & 15) << 34) | (byte29 << 26) | (byte30 << 18) | (byte31 << 10) | (byte32 << 2) | (byte33 >>> 6);
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte33 & 63) << 32) | (byte34 << 24) | (byte35 << 16) | (byte36 << 8) | byte37;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte38 << 30) | (byte39 << 22) | (byte40 << 14) | (byte41 << 6) | (byte42 >>> 2);
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte42 & 3) << 36) | (byte43 << 28) | (byte44 << 20) | (byte45 << 12) | (byte46 << 4) | (byte47 >>> 4);
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte47 & 15) << 34) | (byte48 << 26) | (byte49 << 18) | (byte50 << 10) | (byte51 << 2) | (byte52 >>> 6);
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte52 & 63) << 32) | (byte53 << 24) | (byte54 << 16) | (byte55 << 8) | byte56;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte57 << 30) | (byte58 << 22) | (byte59 << 14) | (byte60 << 6) | (byte61 >>> 2);
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte61 & 3) << 36) | (byte62 << 28) | (byte63 << 20) | (byte64 << 12) | (byte65 << 4) | (byte66 >>> 4);
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte66 & 15) << 34) | (byte67 << 26) | (byte68 << 18) | (byte69 << 10) | (byte70 << 2) | (byte71 >>> 6);
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte71 & 63) << 32) | (byte72 << 24) | (byte73 << 16) | (byte74 << 8) | byte75;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte76 << 30) | (byte77 << 22) | (byte78 << 14) | (byte79 << 6) | (byte80 >>> 2);
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte80 & 3) << 36) | (byte81 << 28) | (byte82 << 20) | (byte83 << 12) | (byte84 << 4) | (byte85 >>> 4);
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte85 & 15) << 34) | (byte86 << 26) | (byte87 << 18) | (byte88 << 10) | (byte89 << 2) | (byte90 >>> 6);
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte90 & 63) << 32) | (byte91 << 24) | (byte92 << 16) | (byte93 << 8) | byte94;
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte95 << 30) | (byte96 << 22) | (byte97 << 14) | (byte98 << 6) | (byte99 >>> 2);
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte99 & 3) << 36) | (byte100 << 28) | (byte101 << 20) | (byte102 << 12) | (byte103 << 4) | (byte104 >>> 4);
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte104 & 15) << 34) | (byte105 << 26) | (byte106 << 18) | (byte107 << 10) | (byte108 << 2) | (byte109 >>> 6);
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte109 & 63) << 32) | (byte110 << 24) | (byte111 << 16) | (byte112 << 8) | byte113;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte114 << 30) | (byte115 << 22) | (byte116 << 14) | (byte117 << 6) | (byte118 >>> 2);
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte118 & 3) << 36) | (byte119 << 28) | (byte120 << 20) | (byte121 << 12) | (byte122 << 4) | (byte123 >>> 4);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 15) << 34) | (byte124 << 26) | (byte125 << 18) | (byte126 << 10) | (byte127 << 2) | (byte128 >>> 6);
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte128 & 63) << 32) | (byte129 << 24) | (byte130 << 16) | (byte131 << 8) | byte132;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte133 << 30) | (byte134 << 22) | (byte135 << 14) | (byte136 << 6) | (byte137 >>> 2);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 3) << 36) | (byte138 << 28) | (byte139 << 20) | (byte140 << 12) | (byte141 << 4) | (byte142 >>> 4);
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte142 & 15) << 34) | (byte143 << 26) | (byte144 << 18) | (byte145 << 10) | (byte146 << 2) | (byte147 >>> 6);
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte147 & 63) << 32) | (byte148 << 24) | (byte149 << 16) | (byte150 << 8) | byte151;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked58.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked58.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked58.java (copie de travail)
@@ -1,461 +0,0 @@
-// This file has been automatically generated, DO NOT EDIT
-
-package org.apache.lucene.util.packed;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Efficient sequential read/write of packed integers.
- */
-final class BulkOperationPacked58 extends BulkOperation {
- @Override
- public int blockCount() {
- return 29;
- }
-
- @Override
- public int valueCount() {
- return 32;
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long block0 = blocks[blocksOffset++];
- values[valuesOffset++] = block0 >>> 6;
- final long block1 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block0 & 63L) << 52) | (block1 >>> 12);
- final long block2 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block1 & 4095L) << 46) | (block2 >>> 18);
- final long block3 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block2 & 262143L) << 40) | (block3 >>> 24);
- final long block4 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block3 & 16777215L) << 34) | (block4 >>> 30);
- final long block5 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block4 & 1073741823L) << 28) | (block5 >>> 36);
- final long block6 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block5 & 68719476735L) << 22) | (block6 >>> 42);
- final long block7 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block6 & 4398046511103L) << 16) | (block7 >>> 48);
- final long block8 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block7 & 281474976710655L) << 10) | (block8 >>> 54);
- final long block9 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block8 & 18014398509481983L) << 4) | (block9 >>> 60);
- values[valuesOffset++] = (block9 >>> 2) & 288230376151711743L;
- final long block10 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block9 & 3L) << 56) | (block10 >>> 8);
- final long block11 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block10 & 255L) << 50) | (block11 >>> 14);
- final long block12 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block11 & 16383L) << 44) | (block12 >>> 20);
- final long block13 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block12 & 1048575L) << 38) | (block13 >>> 26);
- final long block14 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block13 & 67108863L) << 32) | (block14 >>> 32);
- final long block15 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block14 & 4294967295L) << 26) | (block15 >>> 38);
- final long block16 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block15 & 274877906943L) << 20) | (block16 >>> 44);
- final long block17 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block16 & 17592186044415L) << 14) | (block17 >>> 50);
- final long block18 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block17 & 1125899906842623L) << 8) | (block18 >>> 56);
- final long block19 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block18 & 72057594037927935L) << 2) | (block19 >>> 62);
- values[valuesOffset++] = (block19 >>> 4) & 288230376151711743L;
- final long block20 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block19 & 15L) << 54) | (block20 >>> 10);
- final long block21 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block20 & 1023L) << 48) | (block21 >>> 16);
- final long block22 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block21 & 65535L) << 42) | (block22 >>> 22);
- final long block23 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block22 & 4194303L) << 36) | (block23 >>> 28);
- final long block24 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block23 & 268435455L) << 30) | (block24 >>> 34);
- final long block25 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block24 & 17179869183L) << 24) | (block25 >>> 40);
- final long block26 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block25 & 1099511627775L) << 18) | (block26 >>> 46);
- final long block27 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block26 & 70368744177663L) << 12) | (block27 >>> 52);
- final long block28 = blocks[blocksOffset++];
- values[valuesOffset++] = ((block27 & 4503599627370495L) << 6) | (block28 >>> 58);
- values[valuesOffset++] = block28 & 288230376151711743L;
- }
- }
-
- @Override
- public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {
- assert blocksOffset + 8 * iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- final long byte0 = blocks[blocksOffset++] & 0xFF;
- final long byte1 = blocks[blocksOffset++] & 0xFF;
- final long byte2 = blocks[blocksOffset++] & 0xFF;
- final long byte3 = blocks[blocksOffset++] & 0xFF;
- final long byte4 = blocks[blocksOffset++] & 0xFF;
- final long byte5 = blocks[blocksOffset++] & 0xFF;
- final long byte6 = blocks[blocksOffset++] & 0xFF;
- final long byte7 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte0 << 50) | (byte1 << 42) | (byte2 << 34) | (byte3 << 26) | (byte4 << 18) | (byte5 << 10) | (byte6 << 2) | (byte7 >>> 6);
- final long byte8 = blocks[blocksOffset++] & 0xFF;
- final long byte9 = blocks[blocksOffset++] & 0xFF;
- final long byte10 = blocks[blocksOffset++] & 0xFF;
- final long byte11 = blocks[blocksOffset++] & 0xFF;
- final long byte12 = blocks[blocksOffset++] & 0xFF;
- final long byte13 = blocks[blocksOffset++] & 0xFF;
- final long byte14 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte7 & 63) << 52) | (byte8 << 44) | (byte9 << 36) | (byte10 << 28) | (byte11 << 20) | (byte12 << 12) | (byte13 << 4) | (byte14 >>> 4);
- final long byte15 = blocks[blocksOffset++] & 0xFF;
- final long byte16 = blocks[blocksOffset++] & 0xFF;
- final long byte17 = blocks[blocksOffset++] & 0xFF;
- final long byte18 = blocks[blocksOffset++] & 0xFF;
- final long byte19 = blocks[blocksOffset++] & 0xFF;
- final long byte20 = blocks[blocksOffset++] & 0xFF;
- final long byte21 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte14 & 15) << 54) | (byte15 << 46) | (byte16 << 38) | (byte17 << 30) | (byte18 << 22) | (byte19 << 14) | (byte20 << 6) | (byte21 >>> 2);
- final long byte22 = blocks[blocksOffset++] & 0xFF;
- final long byte23 = blocks[blocksOffset++] & 0xFF;
- final long byte24 = blocks[blocksOffset++] & 0xFF;
- final long byte25 = blocks[blocksOffset++] & 0xFF;
- final long byte26 = blocks[blocksOffset++] & 0xFF;
- final long byte27 = blocks[blocksOffset++] & 0xFF;
- final long byte28 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte21 & 3) << 56) | (byte22 << 48) | (byte23 << 40) | (byte24 << 32) | (byte25 << 24) | (byte26 << 16) | (byte27 << 8) | byte28;
- final long byte29 = blocks[blocksOffset++] & 0xFF;
- final long byte30 = blocks[blocksOffset++] & 0xFF;
- final long byte31 = blocks[blocksOffset++] & 0xFF;
- final long byte32 = blocks[blocksOffset++] & 0xFF;
- final long byte33 = blocks[blocksOffset++] & 0xFF;
- final long byte34 = blocks[blocksOffset++] & 0xFF;
- final long byte35 = blocks[blocksOffset++] & 0xFF;
- final long byte36 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte29 << 50) | (byte30 << 42) | (byte31 << 34) | (byte32 << 26) | (byte33 << 18) | (byte34 << 10) | (byte35 << 2) | (byte36 >>> 6);
- final long byte37 = blocks[blocksOffset++] & 0xFF;
- final long byte38 = blocks[blocksOffset++] & 0xFF;
- final long byte39 = blocks[blocksOffset++] & 0xFF;
- final long byte40 = blocks[blocksOffset++] & 0xFF;
- final long byte41 = blocks[blocksOffset++] & 0xFF;
- final long byte42 = blocks[blocksOffset++] & 0xFF;
- final long byte43 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte36 & 63) << 52) | (byte37 << 44) | (byte38 << 36) | (byte39 << 28) | (byte40 << 20) | (byte41 << 12) | (byte42 << 4) | (byte43 >>> 4);
- final long byte44 = blocks[blocksOffset++] & 0xFF;
- final long byte45 = blocks[blocksOffset++] & 0xFF;
- final long byte46 = blocks[blocksOffset++] & 0xFF;
- final long byte47 = blocks[blocksOffset++] & 0xFF;
- final long byte48 = blocks[blocksOffset++] & 0xFF;
- final long byte49 = blocks[blocksOffset++] & 0xFF;
- final long byte50 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte43 & 15) << 54) | (byte44 << 46) | (byte45 << 38) | (byte46 << 30) | (byte47 << 22) | (byte48 << 14) | (byte49 << 6) | (byte50 >>> 2);
- final long byte51 = blocks[blocksOffset++] & 0xFF;
- final long byte52 = blocks[blocksOffset++] & 0xFF;
- final long byte53 = blocks[blocksOffset++] & 0xFF;
- final long byte54 = blocks[blocksOffset++] & 0xFF;
- final long byte55 = blocks[blocksOffset++] & 0xFF;
- final long byte56 = blocks[blocksOffset++] & 0xFF;
- final long byte57 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte50 & 3) << 56) | (byte51 << 48) | (byte52 << 40) | (byte53 << 32) | (byte54 << 24) | (byte55 << 16) | (byte56 << 8) | byte57;
- final long byte58 = blocks[blocksOffset++] & 0xFF;
- final long byte59 = blocks[blocksOffset++] & 0xFF;
- final long byte60 = blocks[blocksOffset++] & 0xFF;
- final long byte61 = blocks[blocksOffset++] & 0xFF;
- final long byte62 = blocks[blocksOffset++] & 0xFF;
- final long byte63 = blocks[blocksOffset++] & 0xFF;
- final long byte64 = blocks[blocksOffset++] & 0xFF;
- final long byte65 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte58 << 50) | (byte59 << 42) | (byte60 << 34) | (byte61 << 26) | (byte62 << 18) | (byte63 << 10) | (byte64 << 2) | (byte65 >>> 6);
- final long byte66 = blocks[blocksOffset++] & 0xFF;
- final long byte67 = blocks[blocksOffset++] & 0xFF;
- final long byte68 = blocks[blocksOffset++] & 0xFF;
- final long byte69 = blocks[blocksOffset++] & 0xFF;
- final long byte70 = blocks[blocksOffset++] & 0xFF;
- final long byte71 = blocks[blocksOffset++] & 0xFF;
- final long byte72 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte65 & 63) << 52) | (byte66 << 44) | (byte67 << 36) | (byte68 << 28) | (byte69 << 20) | (byte70 << 12) | (byte71 << 4) | (byte72 >>> 4);
- final long byte73 = blocks[blocksOffset++] & 0xFF;
- final long byte74 = blocks[blocksOffset++] & 0xFF;
- final long byte75 = blocks[blocksOffset++] & 0xFF;
- final long byte76 = blocks[blocksOffset++] & 0xFF;
- final long byte77 = blocks[blocksOffset++] & 0xFF;
- final long byte78 = blocks[blocksOffset++] & 0xFF;
- final long byte79 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte72 & 15) << 54) | (byte73 << 46) | (byte74 << 38) | (byte75 << 30) | (byte76 << 22) | (byte77 << 14) | (byte78 << 6) | (byte79 >>> 2);
- final long byte80 = blocks[blocksOffset++] & 0xFF;
- final long byte81 = blocks[blocksOffset++] & 0xFF;
- final long byte82 = blocks[blocksOffset++] & 0xFF;
- final long byte83 = blocks[blocksOffset++] & 0xFF;
- final long byte84 = blocks[blocksOffset++] & 0xFF;
- final long byte85 = blocks[blocksOffset++] & 0xFF;
- final long byte86 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte79 & 3) << 56) | (byte80 << 48) | (byte81 << 40) | (byte82 << 32) | (byte83 << 24) | (byte84 << 16) | (byte85 << 8) | byte86;
- final long byte87 = blocks[blocksOffset++] & 0xFF;
- final long byte88 = blocks[blocksOffset++] & 0xFF;
- final long byte89 = blocks[blocksOffset++] & 0xFF;
- final long byte90 = blocks[blocksOffset++] & 0xFF;
- final long byte91 = blocks[blocksOffset++] & 0xFF;
- final long byte92 = blocks[blocksOffset++] & 0xFF;
- final long byte93 = blocks[blocksOffset++] & 0xFF;
- final long byte94 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte87 << 50) | (byte88 << 42) | (byte89 << 34) | (byte90 << 26) | (byte91 << 18) | (byte92 << 10) | (byte93 << 2) | (byte94 >>> 6);
- final long byte95 = blocks[blocksOffset++] & 0xFF;
- final long byte96 = blocks[blocksOffset++] & 0xFF;
- final long byte97 = blocks[blocksOffset++] & 0xFF;
- final long byte98 = blocks[blocksOffset++] & 0xFF;
- final long byte99 = blocks[blocksOffset++] & 0xFF;
- final long byte100 = blocks[blocksOffset++] & 0xFF;
- final long byte101 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte94 & 63) << 52) | (byte95 << 44) | (byte96 << 36) | (byte97 << 28) | (byte98 << 20) | (byte99 << 12) | (byte100 << 4) | (byte101 >>> 4);
- final long byte102 = blocks[blocksOffset++] & 0xFF;
- final long byte103 = blocks[blocksOffset++] & 0xFF;
- final long byte104 = blocks[blocksOffset++] & 0xFF;
- final long byte105 = blocks[blocksOffset++] & 0xFF;
- final long byte106 = blocks[blocksOffset++] & 0xFF;
- final long byte107 = blocks[blocksOffset++] & 0xFF;
- final long byte108 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte101 & 15) << 54) | (byte102 << 46) | (byte103 << 38) | (byte104 << 30) | (byte105 << 22) | (byte106 << 14) | (byte107 << 6) | (byte108 >>> 2);
- final long byte109 = blocks[blocksOffset++] & 0xFF;
- final long byte110 = blocks[blocksOffset++] & 0xFF;
- final long byte111 = blocks[blocksOffset++] & 0xFF;
- final long byte112 = blocks[blocksOffset++] & 0xFF;
- final long byte113 = blocks[blocksOffset++] & 0xFF;
- final long byte114 = blocks[blocksOffset++] & 0xFF;
- final long byte115 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte108 & 3) << 56) | (byte109 << 48) | (byte110 << 40) | (byte111 << 32) | (byte112 << 24) | (byte113 << 16) | (byte114 << 8) | byte115;
- final long byte116 = blocks[blocksOffset++] & 0xFF;
- final long byte117 = blocks[blocksOffset++] & 0xFF;
- final long byte118 = blocks[blocksOffset++] & 0xFF;
- final long byte119 = blocks[blocksOffset++] & 0xFF;
- final long byte120 = blocks[blocksOffset++] & 0xFF;
- final long byte121 = blocks[blocksOffset++] & 0xFF;
- final long byte122 = blocks[blocksOffset++] & 0xFF;
- final long byte123 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte116 << 50) | (byte117 << 42) | (byte118 << 34) | (byte119 << 26) | (byte120 << 18) | (byte121 << 10) | (byte122 << 2) | (byte123 >>> 6);
- final long byte124 = blocks[blocksOffset++] & 0xFF;
- final long byte125 = blocks[blocksOffset++] & 0xFF;
- final long byte126 = blocks[blocksOffset++] & 0xFF;
- final long byte127 = blocks[blocksOffset++] & 0xFF;
- final long byte128 = blocks[blocksOffset++] & 0xFF;
- final long byte129 = blocks[blocksOffset++] & 0xFF;
- final long byte130 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte123 & 63) << 52) | (byte124 << 44) | (byte125 << 36) | (byte126 << 28) | (byte127 << 20) | (byte128 << 12) | (byte129 << 4) | (byte130 >>> 4);
- final long byte131 = blocks[blocksOffset++] & 0xFF;
- final long byte132 = blocks[blocksOffset++] & 0xFF;
- final long byte133 = blocks[blocksOffset++] & 0xFF;
- final long byte134 = blocks[blocksOffset++] & 0xFF;
- final long byte135 = blocks[blocksOffset++] & 0xFF;
- final long byte136 = blocks[blocksOffset++] & 0xFF;
- final long byte137 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte130 & 15) << 54) | (byte131 << 46) | (byte132 << 38) | (byte133 << 30) | (byte134 << 22) | (byte135 << 14) | (byte136 << 6) | (byte137 >>> 2);
- final long byte138 = blocks[blocksOffset++] & 0xFF;
- final long byte139 = blocks[blocksOffset++] & 0xFF;
- final long byte140 = blocks[blocksOffset++] & 0xFF;
- final long byte141 = blocks[blocksOffset++] & 0xFF;
- final long byte142 = blocks[blocksOffset++] & 0xFF;
- final long byte143 = blocks[blocksOffset++] & 0xFF;
- final long byte144 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte137 & 3) << 56) | (byte138 << 48) | (byte139 << 40) | (byte140 << 32) | (byte141 << 24) | (byte142 << 16) | (byte143 << 8) | byte144;
- final long byte145 = blocks[blocksOffset++] & 0xFF;
- final long byte146 = blocks[blocksOffset++] & 0xFF;
- final long byte147 = blocks[blocksOffset++] & 0xFF;
- final long byte148 = blocks[blocksOffset++] & 0xFF;
- final long byte149 = blocks[blocksOffset++] & 0xFF;
- final long byte150 = blocks[blocksOffset++] & 0xFF;
- final long byte151 = blocks[blocksOffset++] & 0xFF;
- final long byte152 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte145 << 50) | (byte146 << 42) | (byte147 << 34) | (byte148 << 26) | (byte149 << 18) | (byte150 << 10) | (byte151 << 2) | (byte152 >>> 6);
- final long byte153 = blocks[blocksOffset++] & 0xFF;
- final long byte154 = blocks[blocksOffset++] & 0xFF;
- final long byte155 = blocks[blocksOffset++] & 0xFF;
- final long byte156 = blocks[blocksOffset++] & 0xFF;
- final long byte157 = blocks[blocksOffset++] & 0xFF;
- final long byte158 = blocks[blocksOffset++] & 0xFF;
- final long byte159 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte152 & 63) << 52) | (byte153 << 44) | (byte154 << 36) | (byte155 << 28) | (byte156 << 20) | (byte157 << 12) | (byte158 << 4) | (byte159 >>> 4);
- final long byte160 = blocks[blocksOffset++] & 0xFF;
- final long byte161 = blocks[blocksOffset++] & 0xFF;
- final long byte162 = blocks[blocksOffset++] & 0xFF;
- final long byte163 = blocks[blocksOffset++] & 0xFF;
- final long byte164 = blocks[blocksOffset++] & 0xFF;
- final long byte165 = blocks[blocksOffset++] & 0xFF;
- final long byte166 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte159 & 15) << 54) | (byte160 << 46) | (byte161 << 38) | (byte162 << 30) | (byte163 << 22) | (byte164 << 14) | (byte165 << 6) | (byte166 >>> 2);
- final long byte167 = blocks[blocksOffset++] & 0xFF;
- final long byte168 = blocks[blocksOffset++] & 0xFF;
- final long byte169 = blocks[blocksOffset++] & 0xFF;
- final long byte170 = blocks[blocksOffset++] & 0xFF;
- final long byte171 = blocks[blocksOffset++] & 0xFF;
- final long byte172 = blocks[blocksOffset++] & 0xFF;
- final long byte173 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte166 & 3) << 56) | (byte167 << 48) | (byte168 << 40) | (byte169 << 32) | (byte170 << 24) | (byte171 << 16) | (byte172 << 8) | byte173;
- final long byte174 = blocks[blocksOffset++] & 0xFF;
- final long byte175 = blocks[blocksOffset++] & 0xFF;
- final long byte176 = blocks[blocksOffset++] & 0xFF;
- final long byte177 = blocks[blocksOffset++] & 0xFF;
- final long byte178 = blocks[blocksOffset++] & 0xFF;
- final long byte179 = blocks[blocksOffset++] & 0xFF;
- final long byte180 = blocks[blocksOffset++] & 0xFF;
- final long byte181 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte174 << 50) | (byte175 << 42) | (byte176 << 34) | (byte177 << 26) | (byte178 << 18) | (byte179 << 10) | (byte180 << 2) | (byte181 >>> 6);
- final long byte182 = blocks[blocksOffset++] & 0xFF;
- final long byte183 = blocks[blocksOffset++] & 0xFF;
- final long byte184 = blocks[blocksOffset++] & 0xFF;
- final long byte185 = blocks[blocksOffset++] & 0xFF;
- final long byte186 = blocks[blocksOffset++] & 0xFF;
- final long byte187 = blocks[blocksOffset++] & 0xFF;
- final long byte188 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte181 & 63) << 52) | (byte182 << 44) | (byte183 << 36) | (byte184 << 28) | (byte185 << 20) | (byte186 << 12) | (byte187 << 4) | (byte188 >>> 4);
- final long byte189 = blocks[blocksOffset++] & 0xFF;
- final long byte190 = blocks[blocksOffset++] & 0xFF;
- final long byte191 = blocks[blocksOffset++] & 0xFF;
- final long byte192 = blocks[blocksOffset++] & 0xFF;
- final long byte193 = blocks[blocksOffset++] & 0xFF;
- final long byte194 = blocks[blocksOffset++] & 0xFF;
- final long byte195 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte188 & 15) << 54) | (byte189 << 46) | (byte190 << 38) | (byte191 << 30) | (byte192 << 22) | (byte193 << 14) | (byte194 << 6) | (byte195 >>> 2);
- final long byte196 = blocks[blocksOffset++] & 0xFF;
- final long byte197 = blocks[blocksOffset++] & 0xFF;
- final long byte198 = blocks[blocksOffset++] & 0xFF;
- final long byte199 = blocks[blocksOffset++] & 0xFF;
- final long byte200 = blocks[blocksOffset++] & 0xFF;
- final long byte201 = blocks[blocksOffset++] & 0xFF;
- final long byte202 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte195 & 3) << 56) | (byte196 << 48) | (byte197 << 40) | (byte198 << 32) | (byte199 << 24) | (byte200 << 16) | (byte201 << 8) | byte202;
- final long byte203 = blocks[blocksOffset++] & 0xFF;
- final long byte204 = blocks[blocksOffset++] & 0xFF;
- final long byte205 = blocks[blocksOffset++] & 0xFF;
- final long byte206 = blocks[blocksOffset++] & 0xFF;
- final long byte207 = blocks[blocksOffset++] & 0xFF;
- final long byte208 = blocks[blocksOffset++] & 0xFF;
- final long byte209 = blocks[blocksOffset++] & 0xFF;
- final long byte210 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = (byte203 << 50) | (byte204 << 42) | (byte205 << 34) | (byte206 << 26) | (byte207 << 18) | (byte208 << 10) | (byte209 << 2) | (byte210 >>> 6);
- final long byte211 = blocks[blocksOffset++] & 0xFF;
- final long byte212 = blocks[blocksOffset++] & 0xFF;
- final long byte213 = blocks[blocksOffset++] & 0xFF;
- final long byte214 = blocks[blocksOffset++] & 0xFF;
- final long byte215 = blocks[blocksOffset++] & 0xFF;
- final long byte216 = blocks[blocksOffset++] & 0xFF;
- final long byte217 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte210 & 63) << 52) | (byte211 << 44) | (byte212 << 36) | (byte213 << 28) | (byte214 << 20) | (byte215 << 12) | (byte216 << 4) | (byte217 >>> 4);
- final long byte218 = blocks[blocksOffset++] & 0xFF;
- final long byte219 = blocks[blocksOffset++] & 0xFF;
- final long byte220 = blocks[blocksOffset++] & 0xFF;
- final long byte221 = blocks[blocksOffset++] & 0xFF;
- final long byte222 = blocks[blocksOffset++] & 0xFF;
- final long byte223 = blocks[blocksOffset++] & 0xFF;
- final long byte224 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte217 & 15) << 54) | (byte218 << 46) | (byte219 << 38) | (byte220 << 30) | (byte221 << 22) | (byte222 << 14) | (byte223 << 6) | (byte224 >>> 2);
- final long byte225 = blocks[blocksOffset++] & 0xFF;
- final long byte226 = blocks[blocksOffset++] & 0xFF;
- final long byte227 = blocks[blocksOffset++] & 0xFF;
- final long byte228 = blocks[blocksOffset++] & 0xFF;
- final long byte229 = blocks[blocksOffset++] & 0xFF;
- final long byte230 = blocks[blocksOffset++] & 0xFF;
- final long byte231 = blocks[blocksOffset++] & 0xFF;
- values[valuesOffset++] = ((byte224 & 3) << 56) | (byte225 << 48) | (byte226 << 40) | (byte227 << 32) | (byte228 << 24) | (byte229 << 16) | (byte230 << 8) | byte231;
- }
- }
-
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset] & 0xffffffffL) >>> 52);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset] & 0xffffffffL) >>> 46);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset] & 0xffffffffL) >>> 40);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset] & 0xffffffffL) >>> 34);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset] & 0xffffffffL) >>> 28);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset] & 0xffffffffL) >>> 22);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset] & 0xffffffffL) >>> 16);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset] & 0xffffffffL) >>> 10);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset] & 0xffffffffL) >>> 4);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 56);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset] & 0xffffffffL) >>> 50);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset] & 0xffffffffL) >>> 44);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset] & 0xffffffffL) >>> 38);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset] & 0xffffffffL) >>> 32);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset] & 0xffffffffL) >>> 26);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset] & 0xffffffffL) >>> 20);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset] & 0xffffffffL) >>> 14);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset] & 0xffffffffL) >>> 8);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset] & 0xffffffffL) >>> 54);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset] & 0xffffffffL) >>> 48);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset] & 0xffffffffL) >>> 42);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset] & 0xffffffffL) >>> 36);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset] & 0xffffffffL) >>> 30);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset] & 0xffffffffL) >>> 24);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset] & 0xffffffffL) >>> 18);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset] & 0xffffffffL) >>> 12);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset] & 0xffffffffL) >>> 6);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 58) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 6) | (values[valuesOffset] >>> 52);
- blocks[blocksOffset++] = (values[valuesOffset++] << 12) | (values[valuesOffset] >>> 46);
- blocks[blocksOffset++] = (values[valuesOffset++] << 18) | (values[valuesOffset] >>> 40);
- blocks[blocksOffset++] = (values[valuesOffset++] << 24) | (values[valuesOffset] >>> 34);
- blocks[blocksOffset++] = (values[valuesOffset++] << 30) | (values[valuesOffset] >>> 28);
- blocks[blocksOffset++] = (values[valuesOffset++] << 36) | (values[valuesOffset] >>> 22);
- blocks[blocksOffset++] = (values[valuesOffset++] << 42) | (values[valuesOffset] >>> 16);
- blocks[blocksOffset++] = (values[valuesOffset++] << 48) | (values[valuesOffset] >>> 10);
- blocks[blocksOffset++] = (values[valuesOffset++] << 54) | (values[valuesOffset] >>> 4);
- blocks[blocksOffset++] = (values[valuesOffset++] << 60) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 56);
- blocks[blocksOffset++] = (values[valuesOffset++] << 8) | (values[valuesOffset] >>> 50);
- blocks[blocksOffset++] = (values[valuesOffset++] << 14) | (values[valuesOffset] >>> 44);
- blocks[blocksOffset++] = (values[valuesOffset++] << 20) | (values[valuesOffset] >>> 38);
- blocks[blocksOffset++] = (values[valuesOffset++] << 26) | (values[valuesOffset] >>> 32);
- blocks[blocksOffset++] = (values[valuesOffset++] << 32) | (values[valuesOffset] >>> 26);
- blocks[blocksOffset++] = (values[valuesOffset++] << 38) | (values[valuesOffset] >>> 20);
- blocks[blocksOffset++] = (values[valuesOffset++] << 44) | (values[valuesOffset] >>> 14);
- blocks[blocksOffset++] = (values[valuesOffset++] << 50) | (values[valuesOffset] >>> 8);
- blocks[blocksOffset++] = (values[valuesOffset++] << 56) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 4) | (values[valuesOffset] >>> 54);
- blocks[blocksOffset++] = (values[valuesOffset++] << 10) | (values[valuesOffset] >>> 48);
- blocks[blocksOffset++] = (values[valuesOffset++] << 16) | (values[valuesOffset] >>> 42);
- blocks[blocksOffset++] = (values[valuesOffset++] << 22) | (values[valuesOffset] >>> 36);
- blocks[blocksOffset++] = (values[valuesOffset++] << 28) | (values[valuesOffset] >>> 30);
- blocks[blocksOffset++] = (values[valuesOffset++] << 34) | (values[valuesOffset] >>> 24);
- blocks[blocksOffset++] = (values[valuesOffset++] << 40) | (values[valuesOffset] >>> 18);
- blocks[blocksOffset++] = (values[valuesOffset++] << 46) | (values[valuesOffset] >>> 12);
- blocks[blocksOffset++] = (values[valuesOffset++] << 52) | (values[valuesOffset] >>> 6);
- blocks[blocksOffset++] = (values[valuesOffset++] << 58) | values[valuesOffset++];
- }
- }
-
-}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock10.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock10.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPackedSingleBlock10.java (copie de travail)
@@ -22,15 +22,10 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPackedSingleBlock10 extends BulkOperation {
- @Override
- public int blockCount() {
- return 1;
- }
+final class BulkOperationPackedSingleBlock10 extends BulkOperationPackedSingleBlock {
- @Override
- public int valueCount() {
- return 6;
+ public BulkOperationPackedSingleBlock10() {
+ super(10);
}
@Override
@@ -107,22 +102,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] & 0xffffffffL) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 50);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = values[valuesOffset++] | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 50);
- }
- }
-
}
Index: lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked3.java
===================================================================
--- lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked3.java (révision 1378196)
+++ lucene/core/src/java/org/apache/lucene/util/packed/BulkOperationPacked3.java (copie de travail)
@@ -22,15 +22,12 @@
/**
* Efficient sequential read/write of packed integers.
*/
-final class BulkOperationPacked3 extends BulkOperation {
- @Override
- public int blockCount() {
- return 3;
- }
+final class BulkOperationPacked3 extends BulkOperationPacked {
- @Override
- public int valueCount() {
- return 64;
+ public BulkOperationPacked3() {
+ super(3);
+ assert blockCount() == 3;
+ assert valueCount() == 64;
}
@Override
@@ -375,26 +372,4 @@
}
}
- @Override
- public void encode(int[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 61) | ((values[valuesOffset++] & 0xffffffffL) << 58) | ((values[valuesOffset++] & 0xffffffffL) << 55) | ((values[valuesOffset++] & 0xffffffffL) << 52) | ((values[valuesOffset++] & 0xffffffffL) << 49) | ((values[valuesOffset++] & 0xffffffffL) << 46) | ((values[valuesOffset++] & 0xffffffffL) << 43) | ((values[valuesOffset++] & 0xffffffffL) << 40) | ((values[valuesOffset++] & 0xffffffffL) << 37) | ((values[valuesOffset++] & 0xffffffffL) << 34) | ((values[valuesOffset++] & 0xffffffffL) << 31) | ((values[valuesOffset++] & 0xffffffffL) << 28) | ((values[valuesOffset++] & 0xffffffffL) << 25) | ((values[valuesOffset++] & 0xffffffffL) << 22) | ((values[valuesOffset++] & 0xffffffffL) << 19) | ((values[valuesOffset++] & 0xffffffffL) << 16) | ((values[valuesOffset++] & 0xffffffffL) << 13) | ((values[valuesOffset++] & 0xffffffffL) << 10) | ((values[valuesOffset++] & 0xffffffffL) << 7) | ((values[valuesOffset++] & 0xffffffffL) << 4) | ((values[valuesOffset++] & 0xffffffffL) << 1) | ((values[valuesOffset] & 0xffffffffL) >>> 2);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 62) | ((values[valuesOffset++] & 0xffffffffL) << 59) | ((values[valuesOffset++] & 0xffffffffL) << 56) | ((values[valuesOffset++] & 0xffffffffL) << 53) | ((values[valuesOffset++] & 0xffffffffL) << 50) | ((values[valuesOffset++] & 0xffffffffL) << 47) | ((values[valuesOffset++] & 0xffffffffL) << 44) | ((values[valuesOffset++] & 0xffffffffL) << 41) | ((values[valuesOffset++] & 0xffffffffL) << 38) | ((values[valuesOffset++] & 0xffffffffL) << 35) | ((values[valuesOffset++] & 0xffffffffL) << 32) | ((values[valuesOffset++] & 0xffffffffL) << 29) | ((values[valuesOffset++] & 0xffffffffL) << 26) | ((values[valuesOffset++] & 0xffffffffL) << 23) | ((values[valuesOffset++] & 0xffffffffL) << 20) | ((values[valuesOffset++] & 0xffffffffL) << 17) | ((values[valuesOffset++] & 0xffffffffL) << 14) | ((values[valuesOffset++] & 0xffffffffL) << 11) | ((values[valuesOffset++] & 0xffffffffL) << 8) | ((values[valuesOffset++] & 0xffffffffL) << 5) | ((values[valuesOffset++] & 0xffffffffL) << 2) | ((values[valuesOffset] & 0xffffffffL) >>> 1);
- blocks[blocksOffset++] = ((values[valuesOffset++] & 0xffffffffL) << 63) | ((values[valuesOffset++] & 0xffffffffL) << 60) | ((values[valuesOffset++] & 0xffffffffL) << 57) | ((values[valuesOffset++] & 0xffffffffL) << 54) | ((values[valuesOffset++] & 0xffffffffL) << 51) | ((values[valuesOffset++] & 0xffffffffL) << 48) | ((values[valuesOffset++] & 0xffffffffL) << 45) | ((values[valuesOffset++] & 0xffffffffL) << 42) | ((values[valuesOffset++] & 0xffffffffL) << 39) | ((values[valuesOffset++] & 0xffffffffL) << 36) | ((values[valuesOffset++] & 0xffffffffL) << 33) | ((values[valuesOffset++] & 0xffffffffL) << 30) | ((values[valuesOffset++] & 0xffffffffL) << 27) | ((values[valuesOffset++] & 0xffffffffL) << 24) | ((values[valuesOffset++] & 0xffffffffL) << 21) | ((values[valuesOffset++] & 0xffffffffL) << 18) | ((values[valuesOffset++] & 0xffffffffL) << 15) | ((values[valuesOffset++] & 0xffffffffL) << 12) | ((values[valuesOffset++] & 0xffffffffL) << 9) | ((values[valuesOffset++] & 0xffffffffL) << 6) | ((values[valuesOffset++] & 0xffffffffL) << 3) | (values[valuesOffset++] & 0xffffffffL);
- }
- }
-
- @Override
- public void encode(long[] values, int valuesOffset, long[] blocks, int blocksOffset, int iterations) {
- assert blocksOffset + iterations * blockCount() <= blocks.length;
- assert valuesOffset + iterations * valueCount() <= values.length;
- for (int i = 0; i < iterations; ++i) {
- blocks[blocksOffset++] = (values[valuesOffset++] << 61) | (values[valuesOffset++] << 58) | (values[valuesOffset++] << 55) | (values[valuesOffset++] << 52) | (values[valuesOffset++] << 49) | (values[valuesOffset++] << 46) | (values[valuesOffset++] << 43) | (values[valuesOffset++] << 40) | (values[valuesOffset++] << 37) | (values[valuesOffset++] << 34) | (values[valuesOffset++] << 31) | (values[valuesOffset++] << 28) | (values[valuesOffset++] << 25) | (values[valuesOffset++] << 22) | (values[valuesOffset++] << 19) | (values[valuesOffset++] << 16) | (values[valuesOffset++] << 13) | (values[valuesOffset++] << 10) | (values[valuesOffset++] << 7) | (values[valuesOffset++] << 4) | (values[valuesOffset++] << 1) | (values[valuesOffset] >>> 2);
- blocks[blocksOffset++] = (values[valuesOffset++] << 62) | (values[valuesOffset++] << 59) | (values[valuesOffset++] << 56) | (values[valuesOffset++] << 53) | (values[valuesOffset++] << 50) | (values[valuesOffset++] << 47) | (values[valuesOffset++] << 44) | (values[valuesOffset++] << 41) | (values[valuesOffset++] << 38) | (values[valuesOffset++] << 35) | (values[valuesOffset++] << 32) | (values[valuesOffset++] << 29) | (values[valuesOffset++] << 26) | (values[valuesOffset++] << 23) | (values[valuesOffset++] << 20) | (values[valuesOffset++] << 17) | (values[valuesOffset++] << 14) | (values[valuesOffset++] << 11) | (values[valuesOffset++] << 8) | (values[valuesOffset++] << 5) | (values[valuesOffset++] << 2) | (values[valuesOffset] >>> 1);
- blocks[blocksOffset++] = (values[valuesOffset++] << 63) | (values[valuesOffset++] << 60) | (values[valuesOffset++] << 57) | (values[valuesOffset++] << 54) | (values[valuesOffset++] << 51) | (values[valuesOffset++] << 48) | (values[valuesOffset++] << 45) | (values[valuesOffset++] << 42) | (values[valuesOffset++] << 39) | (values[valuesOffset++] << 36) | (values[valuesOffset++] << 33) | (values[valuesOffset++] << 30) | (values[valuesOffset++] << 27) | (values[valuesOffset++] << 24) | (values[valuesOffset++] << 21) | (values[valuesOffset++] << 18) | (values[valuesOffset++] << 15) | (values[valuesOffset++] << 12) | (values[valuesOffset++] << 9) | (values[valuesOffset++] << 6) | (values[valuesOffset++] << 3) | values[valuesOffset++];
- }
- }
-
}