org.apache.parquet.column.values.bitpacking.ByteBitPackingLE Maven / Gradle / Ivy
The newest version!
package org.apache.parquet.column.values.bitpacking;
import java.nio.ByteBuffer;
/**
* Packs from the Least Significant Bit first
*
* See ByteBasedBitPackingGenerator to make changes to this file
* Automatically generated
*
*/
public abstract class ByteBitPackingLE {
private static final BytePacker[] packers = new BytePacker[33];
static {
packers[0] = new Packer0();
packers[1] = new Packer1();
packers[2] = new Packer2();
packers[3] = new Packer3();
packers[4] = new Packer4();
packers[5] = new Packer5();
packers[6] = new Packer6();
packers[7] = new Packer7();
packers[8] = new Packer8();
packers[9] = new Packer9();
packers[10] = new Packer10();
packers[11] = new Packer11();
packers[12] = new Packer12();
packers[13] = new Packer13();
packers[14] = new Packer14();
packers[15] = new Packer15();
packers[16] = new Packer16();
packers[17] = new Packer17();
packers[18] = new Packer18();
packers[19] = new Packer19();
packers[20] = new Packer20();
packers[21] = new Packer21();
packers[22] = new Packer22();
packers[23] = new Packer23();
packers[24] = new Packer24();
packers[25] = new Packer25();
packers[26] = new Packer26();
packers[27] = new Packer27();
packers[28] = new Packer28();
packers[29] = new Packer29();
packers[30] = new Packer30();
packers[31] = new Packer31();
packers[32] = new Packer32();
}
public static final BytePackerFactory factory = new BytePackerFactory() {
public BytePacker newBytePacker(int bitWidth) {
return packers[bitWidth];
}
};
private static final class Packer0 extends BytePacker {
private Packer0() {
super(0);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
}
}
private static final class Packer1 extends BytePacker {
private Packer1() {
super(1);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [_______0]
// [0]
((in[ 0 + inPos] & 1))
| // [______1_]
// [0]
((in[ 1 + inPos] & 1) << 1)
| // [_____2__]
// [0]
((in[ 2 + inPos] & 1) << 2)
| // [____3___]
// [0]
((in[ 3 + inPos] & 1) << 3)
| // [___4____]
// [0]
((in[ 4 + inPos] & 1) << 4)
| // [__5_____]
// [0]
((in[ 5 + inPos] & 1) << 5)
| // [_6______]
// [0]
((in[ 6 + inPos] & 1) << 6)
| // [7_______]
// [0]
((in[ 7 + inPos] & 1) << 7)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [_______0]
// [0]
((in[ 0 + inPos] & 1))
| // [______1_]
// [0]
((in[ 1 + inPos] & 1) << 1)
| // [_____2__]
// [0]
((in[ 2 + inPos] & 1) << 2)
| // [____3___]
// [0]
((in[ 3 + inPos] & 1) << 3)
| // [___4____]
// [0]
((in[ 4 + inPos] & 1) << 4)
| // [__5_____]
// [0]
((in[ 5 + inPos] & 1) << 5)
| // [_6______]
// [0]
((in[ 6 + inPos] & 1) << 6)
| // [7_______]
// [0]
((in[ 7 + inPos] & 1) << 7)) & 255);
out[ 1 + outPos] = (byte)((
// [_______0]
// [0]
((in[ 8 + inPos] & 1))
| // [______1_]
// [0]
((in[ 9 + inPos] & 1) << 1)
| // [_____2__]
// [0]
((in[10 + inPos] & 1) << 2)
| // [____3___]
// [0]
((in[11 + inPos] & 1) << 3)
| // [___4____]
// [0]
((in[12 + inPos] & 1) << 4)
| // [__5_____]
// [0]
((in[13 + inPos] & 1) << 5)
| // [_6______]
// [0]
((in[14 + inPos] & 1) << 6)
| // [7_______]
// [0]
((in[15 + inPos] & 1) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [_______0]
// [0]
((in[16 + inPos] & 1))
| // [______1_]
// [0]
((in[17 + inPos] & 1) << 1)
| // [_____2__]
// [0]
((in[18 + inPos] & 1) << 2)
| // [____3___]
// [0]
((in[19 + inPos] & 1) << 3)
| // [___4____]
// [0]
((in[20 + inPos] & 1) << 4)
| // [__5_____]
// [0]
((in[21 + inPos] & 1) << 5)
| // [_6______]
// [0]
((in[22 + inPos] & 1) << 6)
| // [7_______]
// [0]
((in[23 + inPos] & 1) << 7)) & 255);
out[ 3 + outPos] = (byte)((
// [_______0]
// [0]
((in[24 + inPos] & 1))
| // [______1_]
// [0]
((in[25 + inPos] & 1) << 1)
| // [_____2__]
// [0]
((in[26 + inPos] & 1) << 2)
| // [____3___]
// [0]
((in[27 + inPos] & 1) << 3)
| // [___4____]
// [0]
((in[28 + inPos] & 1) << 4)
| // [__5_____]
// [0]
((in[29 + inPos] & 1) << 5)
| // [_6______]
// [0]
((in[30 + inPos] & 1) << 6)
| // [7_______]
// [0]
((in[31 + inPos] & 1) << 7)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_______0]
// [0]
((((int)in[ 0 + inPos]) ) & 1);
out[ 1 + outPos] =
// [______1_]
// [0]
((((int)in[ 0 + inPos]) >> 1) & 1);
out[ 2 + outPos] =
// [_____2__]
// [0]
((((int)in[ 0 + inPos]) >> 2) & 1);
out[ 3 + outPos] =
// [____3___]
// [0]
((((int)in[ 0 + inPos]) >> 3) & 1);
out[ 4 + outPos] =
// [___4____]
// [0]
((((int)in[ 0 + inPos]) >> 4) & 1);
out[ 5 + outPos] =
// [__5_____]
// [0]
((((int)in[ 0 + inPos]) >> 5) & 1);
out[ 6 + outPos] =
// [_6______]
// [0]
((((int)in[ 0 + inPos]) >> 6) & 1);
out[ 7 + outPos] =
// [7_______]
// [0]
((((int)in[ 0 + inPos]) >> 7) & 1);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_______0]
// [0]
((((int)in.get( 0 + inPos)) ) & 1);
out[ 1 + outPos] =
// [______1_]
// [0]
((((int)in.get( 0 + inPos)) >> 1) & 1);
out[ 2 + outPos] =
// [_____2__]
// [0]
((((int)in.get( 0 + inPos)) >> 2) & 1);
out[ 3 + outPos] =
// [____3___]
// [0]
((((int)in.get( 0 + inPos)) >> 3) & 1);
out[ 4 + outPos] =
// [___4____]
// [0]
((((int)in.get( 0 + inPos)) >> 4) & 1);
out[ 5 + outPos] =
// [__5_____]
// [0]
((((int)in.get( 0 + inPos)) >> 5) & 1);
out[ 6 + outPos] =
// [_6______]
// [0]
((((int)in.get( 0 + inPos)) >> 6) & 1);
out[ 7 + outPos] =
// [7_______]
// [0]
((((int)in.get( 0 + inPos)) >> 7) & 1);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_______0]
// [0]
((((int)in[ 0 + inPos]) ) & 1);
out[ 1 + outPos] =
// [______1_]
// [0]
((((int)in[ 0 + inPos]) >> 1) & 1);
out[ 2 + outPos] =
// [_____2__]
// [0]
((((int)in[ 0 + inPos]) >> 2) & 1);
out[ 3 + outPos] =
// [____3___]
// [0]
((((int)in[ 0 + inPos]) >> 3) & 1);
out[ 4 + outPos] =
// [___4____]
// [0]
((((int)in[ 0 + inPos]) >> 4) & 1);
out[ 5 + outPos] =
// [__5_____]
// [0]
((((int)in[ 0 + inPos]) >> 5) & 1);
out[ 6 + outPos] =
// [_6______]
// [0]
((((int)in[ 0 + inPos]) >> 6) & 1);
out[ 7 + outPos] =
// [7_______]
// [0]
((((int)in[ 0 + inPos]) >> 7) & 1);
out[ 8 + outPos] =
// [_______0]
// [0]
((((int)in[ 1 + inPos]) ) & 1);
out[ 9 + outPos] =
// [______1_]
// [0]
((((int)in[ 1 + inPos]) >> 1) & 1);
out[10 + outPos] =
// [_____2__]
// [0]
((((int)in[ 1 + inPos]) >> 2) & 1);
out[11 + outPos] =
// [____3___]
// [0]
((((int)in[ 1 + inPos]) >> 3) & 1);
out[12 + outPos] =
// [___4____]
// [0]
((((int)in[ 1 + inPos]) >> 4) & 1);
out[13 + outPos] =
// [__5_____]
// [0]
((((int)in[ 1 + inPos]) >> 5) & 1);
out[14 + outPos] =
// [_6______]
// [0]
((((int)in[ 1 + inPos]) >> 6) & 1);
out[15 + outPos] =
// [7_______]
// [0]
((((int)in[ 1 + inPos]) >> 7) & 1);
out[16 + outPos] =
// [_______0]
// [0]
((((int)in[ 2 + inPos]) ) & 1);
out[17 + outPos] =
// [______1_]
// [0]
((((int)in[ 2 + inPos]) >> 1) & 1);
out[18 + outPos] =
// [_____2__]
// [0]
((((int)in[ 2 + inPos]) >> 2) & 1);
out[19 + outPos] =
// [____3___]
// [0]
((((int)in[ 2 + inPos]) >> 3) & 1);
out[20 + outPos] =
// [___4____]
// [0]
((((int)in[ 2 + inPos]) >> 4) & 1);
out[21 + outPos] =
// [__5_____]
// [0]
((((int)in[ 2 + inPos]) >> 5) & 1);
out[22 + outPos] =
// [_6______]
// [0]
((((int)in[ 2 + inPos]) >> 6) & 1);
out[23 + outPos] =
// [7_______]
// [0]
((((int)in[ 2 + inPos]) >> 7) & 1);
out[24 + outPos] =
// [_______0]
// [0]
((((int)in[ 3 + inPos]) ) & 1);
out[25 + outPos] =
// [______1_]
// [0]
((((int)in[ 3 + inPos]) >> 1) & 1);
out[26 + outPos] =
// [_____2__]
// [0]
((((int)in[ 3 + inPos]) >> 2) & 1);
out[27 + outPos] =
// [____3___]
// [0]
((((int)in[ 3 + inPos]) >> 3) & 1);
out[28 + outPos] =
// [___4____]
// [0]
((((int)in[ 3 + inPos]) >> 4) & 1);
out[29 + outPos] =
// [__5_____]
// [0]
((((int)in[ 3 + inPos]) >> 5) & 1);
out[30 + outPos] =
// [_6______]
// [0]
((((int)in[ 3 + inPos]) >> 6) & 1);
out[31 + outPos] =
// [7_______]
// [0]
((((int)in[ 3 + inPos]) >> 7) & 1);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_______0]
// [0]
((((int)in.get( 0 + inPos)) ) & 1);
out[ 1 + outPos] =
// [______1_]
// [0]
((((int)in.get( 0 + inPos)) >> 1) & 1);
out[ 2 + outPos] =
// [_____2__]
// [0]
((((int)in.get( 0 + inPos)) >> 2) & 1);
out[ 3 + outPos] =
// [____3___]
// [0]
((((int)in.get( 0 + inPos)) >> 3) & 1);
out[ 4 + outPos] =
// [___4____]
// [0]
((((int)in.get( 0 + inPos)) >> 4) & 1);
out[ 5 + outPos] =
// [__5_____]
// [0]
((((int)in.get( 0 + inPos)) >> 5) & 1);
out[ 6 + outPos] =
// [_6______]
// [0]
((((int)in.get( 0 + inPos)) >> 6) & 1);
out[ 7 + outPos] =
// [7_______]
// [0]
((((int)in.get( 0 + inPos)) >> 7) & 1);
out[ 8 + outPos] =
// [_______0]
// [0]
((((int)in.get( 1 + inPos)) ) & 1);
out[ 9 + outPos] =
// [______1_]
// [0]
((((int)in.get( 1 + inPos)) >> 1) & 1);
out[10 + outPos] =
// [_____2__]
// [0]
((((int)in.get( 1 + inPos)) >> 2) & 1);
out[11 + outPos] =
// [____3___]
// [0]
((((int)in.get( 1 + inPos)) >> 3) & 1);
out[12 + outPos] =
// [___4____]
// [0]
((((int)in.get( 1 + inPos)) >> 4) & 1);
out[13 + outPos] =
// [__5_____]
// [0]
((((int)in.get( 1 + inPos)) >> 5) & 1);
out[14 + outPos] =
// [_6______]
// [0]
((((int)in.get( 1 + inPos)) >> 6) & 1);
out[15 + outPos] =
// [7_______]
// [0]
((((int)in.get( 1 + inPos)) >> 7) & 1);
out[16 + outPos] =
// [_______0]
// [0]
((((int)in.get( 2 + inPos)) ) & 1);
out[17 + outPos] =
// [______1_]
// [0]
((((int)in.get( 2 + inPos)) >> 1) & 1);
out[18 + outPos] =
// [_____2__]
// [0]
((((int)in.get( 2 + inPos)) >> 2) & 1);
out[19 + outPos] =
// [____3___]
// [0]
((((int)in.get( 2 + inPos)) >> 3) & 1);
out[20 + outPos] =
// [___4____]
// [0]
((((int)in.get( 2 + inPos)) >> 4) & 1);
out[21 + outPos] =
// [__5_____]
// [0]
((((int)in.get( 2 + inPos)) >> 5) & 1);
out[22 + outPos] =
// [_6______]
// [0]
((((int)in.get( 2 + inPos)) >> 6) & 1);
out[23 + outPos] =
// [7_______]
// [0]
((((int)in.get( 2 + inPos)) >> 7) & 1);
out[24 + outPos] =
// [_______0]
// [0]
((((int)in.get( 3 + inPos)) ) & 1);
out[25 + outPos] =
// [______1_]
// [0]
((((int)in.get( 3 + inPos)) >> 1) & 1);
out[26 + outPos] =
// [_____2__]
// [0]
((((int)in.get( 3 + inPos)) >> 2) & 1);
out[27 + outPos] =
// [____3___]
// [0]
((((int)in.get( 3 + inPos)) >> 3) & 1);
out[28 + outPos] =
// [___4____]
// [0]
((((int)in.get( 3 + inPos)) >> 4) & 1);
out[29 + outPos] =
// [__5_____]
// [0]
((((int)in.get( 3 + inPos)) >> 5) & 1);
out[30 + outPos] =
// [_6______]
// [0]
((((int)in.get( 3 + inPos)) >> 6) & 1);
out[31 + outPos] =
// [7_______]
// [0]
((((int)in.get( 3 + inPos)) >> 7) & 1);
}
}
private static final class Packer2 extends BytePacker {
private Packer2() {
super(2);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [______10]
// [10]
((in[ 0 + inPos] & 3))
| // [____32__]
// [10]
((in[ 1 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[ 2 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[ 3 + inPos] & 3) << 6)) & 255);
out[ 1 + outPos] = (byte)((
// [______10]
// [10]
((in[ 4 + inPos] & 3))
| // [____32__]
// [10]
((in[ 5 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[ 6 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[ 7 + inPos] & 3) << 6)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [______10]
// [10]
((in[ 0 + inPos] & 3))
| // [____32__]
// [10]
((in[ 1 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[ 2 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[ 3 + inPos] & 3) << 6)) & 255);
out[ 1 + outPos] = (byte)((
// [______10]
// [10]
((in[ 4 + inPos] & 3))
| // [____32__]
// [10]
((in[ 5 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[ 6 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[ 7 + inPos] & 3) << 6)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [10]
((in[ 8 + inPos] & 3))
| // [____32__]
// [10]
((in[ 9 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[10 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[11 + inPos] & 3) << 6)) & 255);
out[ 3 + outPos] = (byte)((
// [______10]
// [10]
((in[12 + inPos] & 3))
| // [____32__]
// [10]
((in[13 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[14 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[15 + inPos] & 3) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [______10]
// [10]
((in[16 + inPos] & 3))
| // [____32__]
// [10]
((in[17 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[18 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[19 + inPos] & 3) << 6)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [10]
((in[20 + inPos] & 3))
| // [____32__]
// [10]
((in[21 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[22 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[23 + inPos] & 3) << 6)) & 255);
out[ 6 + outPos] = (byte)((
// [______10]
// [10]
((in[24 + inPos] & 3))
| // [____32__]
// [10]
((in[25 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[26 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[27 + inPos] & 3) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [______10]
// [10]
((in[28 + inPos] & 3))
| // [____32__]
// [10]
((in[29 + inPos] & 3) << 2)
| // [__54____]
// [10]
((in[30 + inPos] & 3) << 4)
| // [76______]
// [10]
((in[31 + inPos] & 3) << 6)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [______10]
// [10]
((((int)in[ 0 + inPos]) ) & 3);
out[ 1 + outPos] =
// [____32__]
// [10]
((((int)in[ 0 + inPos]) >> 2) & 3);
out[ 2 + outPos] =
// [__54____]
// [10]
((((int)in[ 0 + inPos]) >> 4) & 3);
out[ 3 + outPos] =
// [76______]
// [10]
((((int)in[ 0 + inPos]) >> 6) & 3);
out[ 4 + outPos] =
// [______10]
// [10]
((((int)in[ 1 + inPos]) ) & 3);
out[ 5 + outPos] =
// [____32__]
// [10]
((((int)in[ 1 + inPos]) >> 2) & 3);
out[ 6 + outPos] =
// [__54____]
// [10]
((((int)in[ 1 + inPos]) >> 4) & 3);
out[ 7 + outPos] =
// [76______]
// [10]
((((int)in[ 1 + inPos]) >> 6) & 3);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [______10]
// [10]
((((int)in.get( 0 + inPos)) ) & 3);
out[ 1 + outPos] =
// [____32__]
// [10]
((((int)in.get( 0 + inPos)) >> 2) & 3);
out[ 2 + outPos] =
// [__54____]
// [10]
((((int)in.get( 0 + inPos)) >> 4) & 3);
out[ 3 + outPos] =
// [76______]
// [10]
((((int)in.get( 0 + inPos)) >> 6) & 3);
out[ 4 + outPos] =
// [______10]
// [10]
((((int)in.get( 1 + inPos)) ) & 3);
out[ 5 + outPos] =
// [____32__]
// [10]
((((int)in.get( 1 + inPos)) >> 2) & 3);
out[ 6 + outPos] =
// [__54____]
// [10]
((((int)in.get( 1 + inPos)) >> 4) & 3);
out[ 7 + outPos] =
// [76______]
// [10]
((((int)in.get( 1 + inPos)) >> 6) & 3);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [______10]
// [10]
((((int)in[ 0 + inPos]) ) & 3);
out[ 1 + outPos] =
// [____32__]
// [10]
((((int)in[ 0 + inPos]) >> 2) & 3);
out[ 2 + outPos] =
// [__54____]
// [10]
((((int)in[ 0 + inPos]) >> 4) & 3);
out[ 3 + outPos] =
// [76______]
// [10]
((((int)in[ 0 + inPos]) >> 6) & 3);
out[ 4 + outPos] =
// [______10]
// [10]
((((int)in[ 1 + inPos]) ) & 3);
out[ 5 + outPos] =
// [____32__]
// [10]
((((int)in[ 1 + inPos]) >> 2) & 3);
out[ 6 + outPos] =
// [__54____]
// [10]
((((int)in[ 1 + inPos]) >> 4) & 3);
out[ 7 + outPos] =
// [76______]
// [10]
((((int)in[ 1 + inPos]) >> 6) & 3);
out[ 8 + outPos] =
// [______10]
// [10]
((((int)in[ 2 + inPos]) ) & 3);
out[ 9 + outPos] =
// [____32__]
// [10]
((((int)in[ 2 + inPos]) >> 2) & 3);
out[10 + outPos] =
// [__54____]
// [10]
((((int)in[ 2 + inPos]) >> 4) & 3);
out[11 + outPos] =
// [76______]
// [10]
((((int)in[ 2 + inPos]) >> 6) & 3);
out[12 + outPos] =
// [______10]
// [10]
((((int)in[ 3 + inPos]) ) & 3);
out[13 + outPos] =
// [____32__]
// [10]
((((int)in[ 3 + inPos]) >> 2) & 3);
out[14 + outPos] =
// [__54____]
// [10]
((((int)in[ 3 + inPos]) >> 4) & 3);
out[15 + outPos] =
// [76______]
// [10]
((((int)in[ 3 + inPos]) >> 6) & 3);
out[16 + outPos] =
// [______10]
// [10]
((((int)in[ 4 + inPos]) ) & 3);
out[17 + outPos] =
// [____32__]
// [10]
((((int)in[ 4 + inPos]) >> 2) & 3);
out[18 + outPos] =
// [__54____]
// [10]
((((int)in[ 4 + inPos]) >> 4) & 3);
out[19 + outPos] =
// [76______]
// [10]
((((int)in[ 4 + inPos]) >> 6) & 3);
out[20 + outPos] =
// [______10]
// [10]
((((int)in[ 5 + inPos]) ) & 3);
out[21 + outPos] =
// [____32__]
// [10]
((((int)in[ 5 + inPos]) >> 2) & 3);
out[22 + outPos] =
// [__54____]
// [10]
((((int)in[ 5 + inPos]) >> 4) & 3);
out[23 + outPos] =
// [76______]
// [10]
((((int)in[ 5 + inPos]) >> 6) & 3);
out[24 + outPos] =
// [______10]
// [10]
((((int)in[ 6 + inPos]) ) & 3);
out[25 + outPos] =
// [____32__]
// [10]
((((int)in[ 6 + inPos]) >> 2) & 3);
out[26 + outPos] =
// [__54____]
// [10]
((((int)in[ 6 + inPos]) >> 4) & 3);
out[27 + outPos] =
// [76______]
// [10]
((((int)in[ 6 + inPos]) >> 6) & 3);
out[28 + outPos] =
// [______10]
// [10]
((((int)in[ 7 + inPos]) ) & 3);
out[29 + outPos] =
// [____32__]
// [10]
((((int)in[ 7 + inPos]) >> 2) & 3);
out[30 + outPos] =
// [__54____]
// [10]
((((int)in[ 7 + inPos]) >> 4) & 3);
out[31 + outPos] =
// [76______]
// [10]
((((int)in[ 7 + inPos]) >> 6) & 3);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [______10]
// [10]
((((int)in.get( 0 + inPos)) ) & 3);
out[ 1 + outPos] =
// [____32__]
// [10]
((((int)in.get( 0 + inPos)) >> 2) & 3);
out[ 2 + outPos] =
// [__54____]
// [10]
((((int)in.get( 0 + inPos)) >> 4) & 3);
out[ 3 + outPos] =
// [76______]
// [10]
((((int)in.get( 0 + inPos)) >> 6) & 3);
out[ 4 + outPos] =
// [______10]
// [10]
((((int)in.get( 1 + inPos)) ) & 3);
out[ 5 + outPos] =
// [____32__]
// [10]
((((int)in.get( 1 + inPos)) >> 2) & 3);
out[ 6 + outPos] =
// [__54____]
// [10]
((((int)in.get( 1 + inPos)) >> 4) & 3);
out[ 7 + outPos] =
// [76______]
// [10]
((((int)in.get( 1 + inPos)) >> 6) & 3);
out[ 8 + outPos] =
// [______10]
// [10]
((((int)in.get( 2 + inPos)) ) & 3);
out[ 9 + outPos] =
// [____32__]
// [10]
((((int)in.get( 2 + inPos)) >> 2) & 3);
out[10 + outPos] =
// [__54____]
// [10]
((((int)in.get( 2 + inPos)) >> 4) & 3);
out[11 + outPos] =
// [76______]
// [10]
((((int)in.get( 2 + inPos)) >> 6) & 3);
out[12 + outPos] =
// [______10]
// [10]
((((int)in.get( 3 + inPos)) ) & 3);
out[13 + outPos] =
// [____32__]
// [10]
((((int)in.get( 3 + inPos)) >> 2) & 3);
out[14 + outPos] =
// [__54____]
// [10]
((((int)in.get( 3 + inPos)) >> 4) & 3);
out[15 + outPos] =
// [76______]
// [10]
((((int)in.get( 3 + inPos)) >> 6) & 3);
out[16 + outPos] =
// [______10]
// [10]
((((int)in.get( 4 + inPos)) ) & 3);
out[17 + outPos] =
// [____32__]
// [10]
((((int)in.get( 4 + inPos)) >> 2) & 3);
out[18 + outPos] =
// [__54____]
// [10]
((((int)in.get( 4 + inPos)) >> 4) & 3);
out[19 + outPos] =
// [76______]
// [10]
((((int)in.get( 4 + inPos)) >> 6) & 3);
out[20 + outPos] =
// [______10]
// [10]
((((int)in.get( 5 + inPos)) ) & 3);
out[21 + outPos] =
// [____32__]
// [10]
((((int)in.get( 5 + inPos)) >> 2) & 3);
out[22 + outPos] =
// [__54____]
// [10]
((((int)in.get( 5 + inPos)) >> 4) & 3);
out[23 + outPos] =
// [76______]
// [10]
((((int)in.get( 5 + inPos)) >> 6) & 3);
out[24 + outPos] =
// [______10]
// [10]
((((int)in.get( 6 + inPos)) ) & 3);
out[25 + outPos] =
// [____32__]
// [10]
((((int)in.get( 6 + inPos)) >> 2) & 3);
out[26 + outPos] =
// [__54____]
// [10]
((((int)in.get( 6 + inPos)) >> 4) & 3);
out[27 + outPos] =
// [76______]
// [10]
((((int)in.get( 6 + inPos)) >> 6) & 3);
out[28 + outPos] =
// [______10]
// [10]
((((int)in.get( 7 + inPos)) ) & 3);
out[29 + outPos] =
// [____32__]
// [10]
((((int)in.get( 7 + inPos)) >> 2) & 3);
out[30 + outPos] =
// [__54____]
// [10]
((((int)in.get( 7 + inPos)) >> 4) & 3);
out[31 + outPos] =
// [76______]
// [10]
((((int)in.get( 7 + inPos)) >> 6) & 3);
}
}
private static final class Packer3 extends BytePacker {
private Packer3() {
super(3);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [_____210]
// [210]
((in[ 0 + inPos] & 7))
| // [__543___]
// [210]
((in[ 1 + inPos] & 7) << 3)
| // [76______]
// [_10]
((in[ 2 + inPos] & 7) << 6)) & 255);
out[ 1 + outPos] = (byte)((
// [_______0]
// [2__]
((in[ 2 + inPos] & 7) >>> 2)
| // [____321_]
// [210]
((in[ 3 + inPos] & 7) << 1)
| // [_654____]
// [210]
((in[ 4 + inPos] & 7) << 4)
| // [7_______]
// [__0]
((in[ 5 + inPos] & 7) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [21_]
((in[ 5 + inPos] & 7) >>> 1)
| // [___432__]
// [210]
((in[ 6 + inPos] & 7) << 2)
| // [765_____]
// [210]
((in[ 7 + inPos] & 7) << 5)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [_____210]
// [210]
((in[ 0 + inPos] & 7))
| // [__543___]
// [210]
((in[ 1 + inPos] & 7) << 3)
| // [76______]
// [_10]
((in[ 2 + inPos] & 7) << 6)) & 255);
out[ 1 + outPos] = (byte)((
// [_______0]
// [2__]
((in[ 2 + inPos] & 7) >>> 2)
| // [____321_]
// [210]
((in[ 3 + inPos] & 7) << 1)
| // [_654____]
// [210]
((in[ 4 + inPos] & 7) << 4)
| // [7_______]
// [__0]
((in[ 5 + inPos] & 7) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [21_]
((in[ 5 + inPos] & 7) >>> 1)
| // [___432__]
// [210]
((in[ 6 + inPos] & 7) << 2)
| // [765_____]
// [210]
((in[ 7 + inPos] & 7) << 5)) & 255);
out[ 3 + outPos] = (byte)((
// [_____210]
// [210]
((in[ 8 + inPos] & 7))
| // [__543___]
// [210]
((in[ 9 + inPos] & 7) << 3)
| // [76______]
// [_10]
((in[10 + inPos] & 7) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [_______0]
// [2__]
((in[10 + inPos] & 7) >>> 2)
| // [____321_]
// [210]
((in[11 + inPos] & 7) << 1)
| // [_654____]
// [210]
((in[12 + inPos] & 7) << 4)
| // [7_______]
// [__0]
((in[13 + inPos] & 7) << 7)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [21_]
((in[13 + inPos] & 7) >>> 1)
| // [___432__]
// [210]
((in[14 + inPos] & 7) << 2)
| // [765_____]
// [210]
((in[15 + inPos] & 7) << 5)) & 255);
out[ 6 + outPos] = (byte)((
// [_____210]
// [210]
((in[16 + inPos] & 7))
| // [__543___]
// [210]
((in[17 + inPos] & 7) << 3)
| // [76______]
// [_10]
((in[18 + inPos] & 7) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [_______0]
// [2__]
((in[18 + inPos] & 7) >>> 2)
| // [____321_]
// [210]
((in[19 + inPos] & 7) << 1)
| // [_654____]
// [210]
((in[20 + inPos] & 7) << 4)
| // [7_______]
// [__0]
((in[21 + inPos] & 7) << 7)) & 255);
out[ 8 + outPos] = (byte)((
// [______10]
// [21_]
((in[21 + inPos] & 7) >>> 1)
| // [___432__]
// [210]
((in[22 + inPos] & 7) << 2)
| // [765_____]
// [210]
((in[23 + inPos] & 7) << 5)) & 255);
out[ 9 + outPos] = (byte)((
// [_____210]
// [210]
((in[24 + inPos] & 7))
| // [__543___]
// [210]
((in[25 + inPos] & 7) << 3)
| // [76______]
// [_10]
((in[26 + inPos] & 7) << 6)) & 255);
out[10 + outPos] = (byte)((
// [_______0]
// [2__]
((in[26 + inPos] & 7) >>> 2)
| // [____321_]
// [210]
((in[27 + inPos] & 7) << 1)
| // [_654____]
// [210]
((in[28 + inPos] & 7) << 4)
| // [7_______]
// [__0]
((in[29 + inPos] & 7) << 7)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [21_]
((in[29 + inPos] & 7) >>> 1)
| // [___432__]
// [210]
((in[30 + inPos] & 7) << 2)
| // [765_____]
// [210]
((in[31 + inPos] & 7) << 5)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_____210]
// [210]
((((int)in[ 0 + inPos]) ) & 7);
out[ 1 + outPos] =
// [__543___]
// [210]
((((int)in[ 0 + inPos]) >> 3) & 7);
out[ 2 + outPos] =
// [76______]
// [_10]
((((int)in[ 0 + inPos]) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in[ 1 + inPos]) << 2) & 7);
out[ 3 + outPos] =
// [____321_]
// [210]
((((int)in[ 1 + inPos]) >> 1) & 7);
out[ 4 + outPos] =
// [_654____]
// [210]
((((int)in[ 1 + inPos]) >> 4) & 7);
out[ 5 + outPos] =
// [7_______]
// [__0]
((((int)in[ 1 + inPos]) >> 7) & 1)
| // [______10]
// [21_]
((((int)in[ 2 + inPos]) << 1) & 7);
out[ 6 + outPos] =
// [___432__]
// [210]
((((int)in[ 2 + inPos]) >> 2) & 7);
out[ 7 + outPos] =
// [765_____]
// [210]
((((int)in[ 2 + inPos]) >> 5) & 7);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_____210]
// [210]
((((int)in.get( 0 + inPos)) ) & 7);
out[ 1 + outPos] =
// [__543___]
// [210]
((((int)in.get( 0 + inPos)) >> 3) & 7);
out[ 2 + outPos] =
// [76______]
// [_10]
((((int)in.get( 0 + inPos)) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in.get( 1 + inPos)) << 2) & 7);
out[ 3 + outPos] =
// [____321_]
// [210]
((((int)in.get( 1 + inPos)) >> 1) & 7);
out[ 4 + outPos] =
// [_654____]
// [210]
((((int)in.get( 1 + inPos)) >> 4) & 7);
out[ 5 + outPos] =
// [7_______]
// [__0]
((((int)in.get( 1 + inPos)) >> 7) & 1)
| // [______10]
// [21_]
((((int)in.get( 2 + inPos)) << 1) & 7);
out[ 6 + outPos] =
// [___432__]
// [210]
((((int)in.get( 2 + inPos)) >> 2) & 7);
out[ 7 + outPos] =
// [765_____]
// [210]
((((int)in.get( 2 + inPos)) >> 5) & 7);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_____210]
// [210]
((((int)in[ 0 + inPos]) ) & 7);
out[ 1 + outPos] =
// [__543___]
// [210]
((((int)in[ 0 + inPos]) >> 3) & 7);
out[ 2 + outPos] =
// [76______]
// [_10]
((((int)in[ 0 + inPos]) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in[ 1 + inPos]) << 2) & 7);
out[ 3 + outPos] =
// [____321_]
// [210]
((((int)in[ 1 + inPos]) >> 1) & 7);
out[ 4 + outPos] =
// [_654____]
// [210]
((((int)in[ 1 + inPos]) >> 4) & 7);
out[ 5 + outPos] =
// [7_______]
// [__0]
((((int)in[ 1 + inPos]) >> 7) & 1)
| // [______10]
// [21_]
((((int)in[ 2 + inPos]) << 1) & 7);
out[ 6 + outPos] =
// [___432__]
// [210]
((((int)in[ 2 + inPos]) >> 2) & 7);
out[ 7 + outPos] =
// [765_____]
// [210]
((((int)in[ 2 + inPos]) >> 5) & 7);
out[ 8 + outPos] =
// [_____210]
// [210]
((((int)in[ 3 + inPos]) ) & 7);
out[ 9 + outPos] =
// [__543___]
// [210]
((((int)in[ 3 + inPos]) >> 3) & 7);
out[10 + outPos] =
// [76______]
// [_10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in[ 4 + inPos]) << 2) & 7);
out[11 + outPos] =
// [____321_]
// [210]
((((int)in[ 4 + inPos]) >> 1) & 7);
out[12 + outPos] =
// [_654____]
// [210]
((((int)in[ 4 + inPos]) >> 4) & 7);
out[13 + outPos] =
// [7_______]
// [__0]
((((int)in[ 4 + inPos]) >> 7) & 1)
| // [______10]
// [21_]
((((int)in[ 5 + inPos]) << 1) & 7);
out[14 + outPos] =
// [___432__]
// [210]
((((int)in[ 5 + inPos]) >> 2) & 7);
out[15 + outPos] =
// [765_____]
// [210]
((((int)in[ 5 + inPos]) >> 5) & 7);
out[16 + outPos] =
// [_____210]
// [210]
((((int)in[ 6 + inPos]) ) & 7);
out[17 + outPos] =
// [__543___]
// [210]
((((int)in[ 6 + inPos]) >> 3) & 7);
out[18 + outPos] =
// [76______]
// [_10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in[ 7 + inPos]) << 2) & 7);
out[19 + outPos] =
// [____321_]
// [210]
((((int)in[ 7 + inPos]) >> 1) & 7);
out[20 + outPos] =
// [_654____]
// [210]
((((int)in[ 7 + inPos]) >> 4) & 7);
out[21 + outPos] =
// [7_______]
// [__0]
((((int)in[ 7 + inPos]) >> 7) & 1)
| // [______10]
// [21_]
((((int)in[ 8 + inPos]) << 1) & 7);
out[22 + outPos] =
// [___432__]
// [210]
((((int)in[ 8 + inPos]) >> 2) & 7);
out[23 + outPos] =
// [765_____]
// [210]
((((int)in[ 8 + inPos]) >> 5) & 7);
out[24 + outPos] =
// [_____210]
// [210]
((((int)in[ 9 + inPos]) ) & 7);
out[25 + outPos] =
// [__543___]
// [210]
((((int)in[ 9 + inPos]) >> 3) & 7);
out[26 + outPos] =
// [76______]
// [_10]
((((int)in[ 9 + inPos]) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in[10 + inPos]) << 2) & 7);
out[27 + outPos] =
// [____321_]
// [210]
((((int)in[10 + inPos]) >> 1) & 7);
out[28 + outPos] =
// [_654____]
// [210]
((((int)in[10 + inPos]) >> 4) & 7);
out[29 + outPos] =
// [7_______]
// [__0]
((((int)in[10 + inPos]) >> 7) & 1)
| // [______10]
// [21_]
((((int)in[11 + inPos]) << 1) & 7);
out[30 + outPos] =
// [___432__]
// [210]
((((int)in[11 + inPos]) >> 2) & 7);
out[31 + outPos] =
// [765_____]
// [210]
((((int)in[11 + inPos]) >> 5) & 7);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_____210]
// [210]
((((int)in.get( 0 + inPos)) ) & 7);
out[ 1 + outPos] =
// [__543___]
// [210]
((((int)in.get( 0 + inPos)) >> 3) & 7);
out[ 2 + outPos] =
// [76______]
// [_10]
((((int)in.get( 0 + inPos)) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in.get( 1 + inPos)) << 2) & 7);
out[ 3 + outPos] =
// [____321_]
// [210]
((((int)in.get( 1 + inPos)) >> 1) & 7);
out[ 4 + outPos] =
// [_654____]
// [210]
((((int)in.get( 1 + inPos)) >> 4) & 7);
out[ 5 + outPos] =
// [7_______]
// [__0]
((((int)in.get( 1 + inPos)) >> 7) & 1)
| // [______10]
// [21_]
((((int)in.get( 2 + inPos)) << 1) & 7);
out[ 6 + outPos] =
// [___432__]
// [210]
((((int)in.get( 2 + inPos)) >> 2) & 7);
out[ 7 + outPos] =
// [765_____]
// [210]
((((int)in.get( 2 + inPos)) >> 5) & 7);
out[ 8 + outPos] =
// [_____210]
// [210]
((((int)in.get( 3 + inPos)) ) & 7);
out[ 9 + outPos] =
// [__543___]
// [210]
((((int)in.get( 3 + inPos)) >> 3) & 7);
out[10 + outPos] =
// [76______]
// [_10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in.get( 4 + inPos)) << 2) & 7);
out[11 + outPos] =
// [____321_]
// [210]
((((int)in.get( 4 + inPos)) >> 1) & 7);
out[12 + outPos] =
// [_654____]
// [210]
((((int)in.get( 4 + inPos)) >> 4) & 7);
out[13 + outPos] =
// [7_______]
// [__0]
((((int)in.get( 4 + inPos)) >> 7) & 1)
| // [______10]
// [21_]
((((int)in.get( 5 + inPos)) << 1) & 7);
out[14 + outPos] =
// [___432__]
// [210]
((((int)in.get( 5 + inPos)) >> 2) & 7);
out[15 + outPos] =
// [765_____]
// [210]
((((int)in.get( 5 + inPos)) >> 5) & 7);
out[16 + outPos] =
// [_____210]
// [210]
((((int)in.get( 6 + inPos)) ) & 7);
out[17 + outPos] =
// [__543___]
// [210]
((((int)in.get( 6 + inPos)) >> 3) & 7);
out[18 + outPos] =
// [76______]
// [_10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in.get( 7 + inPos)) << 2) & 7);
out[19 + outPos] =
// [____321_]
// [210]
((((int)in.get( 7 + inPos)) >> 1) & 7);
out[20 + outPos] =
// [_654____]
// [210]
((((int)in.get( 7 + inPos)) >> 4) & 7);
out[21 + outPos] =
// [7_______]
// [__0]
((((int)in.get( 7 + inPos)) >> 7) & 1)
| // [______10]
// [21_]
((((int)in.get( 8 + inPos)) << 1) & 7);
out[22 + outPos] =
// [___432__]
// [210]
((((int)in.get( 8 + inPos)) >> 2) & 7);
out[23 + outPos] =
// [765_____]
// [210]
((((int)in.get( 8 + inPos)) >> 5) & 7);
out[24 + outPos] =
// [_____210]
// [210]
((((int)in.get( 9 + inPos)) ) & 7);
out[25 + outPos] =
// [__543___]
// [210]
((((int)in.get( 9 + inPos)) >> 3) & 7);
out[26 + outPos] =
// [76______]
// [_10]
((((int)in.get( 9 + inPos)) >> 6) & 3)
| // [_______0]
// [2__]
((((int)in.get(10 + inPos)) << 2) & 7);
out[27 + outPos] =
// [____321_]
// [210]
((((int)in.get(10 + inPos)) >> 1) & 7);
out[28 + outPos] =
// [_654____]
// [210]
((((int)in.get(10 + inPos)) >> 4) & 7);
out[29 + outPos] =
// [7_______]
// [__0]
((((int)in.get(10 + inPos)) >> 7) & 1)
| // [______10]
// [21_]
((((int)in.get(11 + inPos)) << 1) & 7);
out[30 + outPos] =
// [___432__]
// [210]
((((int)in.get(11 + inPos)) >> 2) & 7);
out[31 + outPos] =
// [765_____]
// [210]
((((int)in.get(11 + inPos)) >> 5) & 7);
}
}
private static final class Packer4 extends BytePacker {
private Packer4() {
super(4);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 0 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 1 + inPos] & 15) << 4)) & 255);
out[ 1 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 2 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 3 + inPos] & 15) << 4)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 4 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 5 + inPos] & 15) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 6 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 7 + inPos] & 15) << 4)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 0 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 1 + inPos] & 15) << 4)) & 255);
out[ 1 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 2 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 3 + inPos] & 15) << 4)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 4 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 5 + inPos] & 15) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 6 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 7 + inPos] & 15) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [3210]
((in[ 8 + inPos] & 15))
| // [7654____]
// [3210]
((in[ 9 + inPos] & 15) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [____3210]
// [3210]
((in[10 + inPos] & 15))
| // [7654____]
// [3210]
((in[11 + inPos] & 15) << 4)) & 255);
out[ 6 + outPos] = (byte)((
// [____3210]
// [3210]
((in[12 + inPos] & 15))
| // [7654____]
// [3210]
((in[13 + inPos] & 15) << 4)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [3210]
((in[14 + inPos] & 15))
| // [7654____]
// [3210]
((in[15 + inPos] & 15) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [____3210]
// [3210]
((in[16 + inPos] & 15))
| // [7654____]
// [3210]
((in[17 + inPos] & 15) << 4)) & 255);
out[ 9 + outPos] = (byte)((
// [____3210]
// [3210]
((in[18 + inPos] & 15))
| // [7654____]
// [3210]
((in[19 + inPos] & 15) << 4)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [3210]
((in[20 + inPos] & 15))
| // [7654____]
// [3210]
((in[21 + inPos] & 15) << 4)) & 255);
out[11 + outPos] = (byte)((
// [____3210]
// [3210]
((in[22 + inPos] & 15))
| // [7654____]
// [3210]
((in[23 + inPos] & 15) << 4)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [3210]
((in[24 + inPos] & 15))
| // [7654____]
// [3210]
((in[25 + inPos] & 15) << 4)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [3210]
((in[26 + inPos] & 15))
| // [7654____]
// [3210]
((in[27 + inPos] & 15) << 4)) & 255);
out[14 + outPos] = (byte)((
// [____3210]
// [3210]
((in[28 + inPos] & 15))
| // [7654____]
// [3210]
((in[29 + inPos] & 15) << 4)) & 255);
out[15 + outPos] = (byte)((
// [____3210]
// [3210]
((in[30 + inPos] & 15))
| // [7654____]
// [3210]
((in[31 + inPos] & 15) << 4)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [____3210]
// [3210]
((((int)in[ 0 + inPos]) ) & 15);
out[ 1 + outPos] =
// [7654____]
// [3210]
((((int)in[ 0 + inPos]) >> 4) & 15);
out[ 2 + outPos] =
// [____3210]
// [3210]
((((int)in[ 1 + inPos]) ) & 15);
out[ 3 + outPos] =
// [7654____]
// [3210]
((((int)in[ 1 + inPos]) >> 4) & 15);
out[ 4 + outPos] =
// [____3210]
// [3210]
((((int)in[ 2 + inPos]) ) & 15);
out[ 5 + outPos] =
// [7654____]
// [3210]
((((int)in[ 2 + inPos]) >> 4) & 15);
out[ 6 + outPos] =
// [____3210]
// [3210]
((((int)in[ 3 + inPos]) ) & 15);
out[ 7 + outPos] =
// [7654____]
// [3210]
((((int)in[ 3 + inPos]) >> 4) & 15);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 0 + inPos)) ) & 15);
out[ 1 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 0 + inPos)) >> 4) & 15);
out[ 2 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 1 + inPos)) ) & 15);
out[ 3 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 1 + inPos)) >> 4) & 15);
out[ 4 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 2 + inPos)) ) & 15);
out[ 5 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 2 + inPos)) >> 4) & 15);
out[ 6 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 3 + inPos)) ) & 15);
out[ 7 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 3 + inPos)) >> 4) & 15);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [____3210]
// [3210]
((((int)in[ 0 + inPos]) ) & 15);
out[ 1 + outPos] =
// [7654____]
// [3210]
((((int)in[ 0 + inPos]) >> 4) & 15);
out[ 2 + outPos] =
// [____3210]
// [3210]
((((int)in[ 1 + inPos]) ) & 15);
out[ 3 + outPos] =
// [7654____]
// [3210]
((((int)in[ 1 + inPos]) >> 4) & 15);
out[ 4 + outPos] =
// [____3210]
// [3210]
((((int)in[ 2 + inPos]) ) & 15);
out[ 5 + outPos] =
// [7654____]
// [3210]
((((int)in[ 2 + inPos]) >> 4) & 15);
out[ 6 + outPos] =
// [____3210]
// [3210]
((((int)in[ 3 + inPos]) ) & 15);
out[ 7 + outPos] =
// [7654____]
// [3210]
((((int)in[ 3 + inPos]) >> 4) & 15);
out[ 8 + outPos] =
// [____3210]
// [3210]
((((int)in[ 4 + inPos]) ) & 15);
out[ 9 + outPos] =
// [7654____]
// [3210]
((((int)in[ 4 + inPos]) >> 4) & 15);
out[10 + outPos] =
// [____3210]
// [3210]
((((int)in[ 5 + inPos]) ) & 15);
out[11 + outPos] =
// [7654____]
// [3210]
((((int)in[ 5 + inPos]) >> 4) & 15);
out[12 + outPos] =
// [____3210]
// [3210]
((((int)in[ 6 + inPos]) ) & 15);
out[13 + outPos] =
// [7654____]
// [3210]
((((int)in[ 6 + inPos]) >> 4) & 15);
out[14 + outPos] =
// [____3210]
// [3210]
((((int)in[ 7 + inPos]) ) & 15);
out[15 + outPos] =
// [7654____]
// [3210]
((((int)in[ 7 + inPos]) >> 4) & 15);
out[16 + outPos] =
// [____3210]
// [3210]
((((int)in[ 8 + inPos]) ) & 15);
out[17 + outPos] =
// [7654____]
// [3210]
((((int)in[ 8 + inPos]) >> 4) & 15);
out[18 + outPos] =
// [____3210]
// [3210]
((((int)in[ 9 + inPos]) ) & 15);
out[19 + outPos] =
// [7654____]
// [3210]
((((int)in[ 9 + inPos]) >> 4) & 15);
out[20 + outPos] =
// [____3210]
// [3210]
((((int)in[10 + inPos]) ) & 15);
out[21 + outPos] =
// [7654____]
// [3210]
((((int)in[10 + inPos]) >> 4) & 15);
out[22 + outPos] =
// [____3210]
// [3210]
((((int)in[11 + inPos]) ) & 15);
out[23 + outPos] =
// [7654____]
// [3210]
((((int)in[11 + inPos]) >> 4) & 15);
out[24 + outPos] =
// [____3210]
// [3210]
((((int)in[12 + inPos]) ) & 15);
out[25 + outPos] =
// [7654____]
// [3210]
((((int)in[12 + inPos]) >> 4) & 15);
out[26 + outPos] =
// [____3210]
// [3210]
((((int)in[13 + inPos]) ) & 15);
out[27 + outPos] =
// [7654____]
// [3210]
((((int)in[13 + inPos]) >> 4) & 15);
out[28 + outPos] =
// [____3210]
// [3210]
((((int)in[14 + inPos]) ) & 15);
out[29 + outPos] =
// [7654____]
// [3210]
((((int)in[14 + inPos]) >> 4) & 15);
out[30 + outPos] =
// [____3210]
// [3210]
((((int)in[15 + inPos]) ) & 15);
out[31 + outPos] =
// [7654____]
// [3210]
((((int)in[15 + inPos]) >> 4) & 15);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 0 + inPos)) ) & 15);
out[ 1 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 0 + inPos)) >> 4) & 15);
out[ 2 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 1 + inPos)) ) & 15);
out[ 3 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 1 + inPos)) >> 4) & 15);
out[ 4 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 2 + inPos)) ) & 15);
out[ 5 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 2 + inPos)) >> 4) & 15);
out[ 6 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 3 + inPos)) ) & 15);
out[ 7 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 3 + inPos)) >> 4) & 15);
out[ 8 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 4 + inPos)) ) & 15);
out[ 9 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 4 + inPos)) >> 4) & 15);
out[10 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 5 + inPos)) ) & 15);
out[11 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 5 + inPos)) >> 4) & 15);
out[12 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 6 + inPos)) ) & 15);
out[13 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 6 + inPos)) >> 4) & 15);
out[14 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 7 + inPos)) ) & 15);
out[15 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 7 + inPos)) >> 4) & 15);
out[16 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 8 + inPos)) ) & 15);
out[17 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 8 + inPos)) >> 4) & 15);
out[18 + outPos] =
// [____3210]
// [3210]
((((int)in.get( 9 + inPos)) ) & 15);
out[19 + outPos] =
// [7654____]
// [3210]
((((int)in.get( 9 + inPos)) >> 4) & 15);
out[20 + outPos] =
// [____3210]
// [3210]
((((int)in.get(10 + inPos)) ) & 15);
out[21 + outPos] =
// [7654____]
// [3210]
((((int)in.get(10 + inPos)) >> 4) & 15);
out[22 + outPos] =
// [____3210]
// [3210]
((((int)in.get(11 + inPos)) ) & 15);
out[23 + outPos] =
// [7654____]
// [3210]
((((int)in.get(11 + inPos)) >> 4) & 15);
out[24 + outPos] =
// [____3210]
// [3210]
((((int)in.get(12 + inPos)) ) & 15);
out[25 + outPos] =
// [7654____]
// [3210]
((((int)in.get(12 + inPos)) >> 4) & 15);
out[26 + outPos] =
// [____3210]
// [3210]
((((int)in.get(13 + inPos)) ) & 15);
out[27 + outPos] =
// [7654____]
// [3210]
((((int)in.get(13 + inPos)) >> 4) & 15);
out[28 + outPos] =
// [____3210]
// [3210]
((((int)in.get(14 + inPos)) ) & 15);
out[29 + outPos] =
// [7654____]
// [3210]
((((int)in.get(14 + inPos)) >> 4) & 15);
out[30 + outPos] =
// [____3210]
// [3210]
((((int)in.get(15 + inPos)) ) & 15);
out[31 + outPos] =
// [7654____]
// [3210]
((((int)in.get(15 + inPos)) >> 4) & 15);
}
}
private static final class Packer5 extends BytePacker {
private Packer5() {
super(5);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [___43210]
// [43210]
((in[ 0 + inPos] & 31))
| // [765_____]
// [__210]
((in[ 1 + inPos] & 31) << 5)) & 255);
out[ 1 + outPos] = (byte)((
// [______10]
// [43___]
((in[ 1 + inPos] & 31) >>> 3)
| // [_65432__]
// [43210]
((in[ 2 + inPos] & 31) << 2)
| // [7_______]
// [____0]
((in[ 3 + inPos] & 31) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [4321_]
((in[ 3 + inPos] & 31) >>> 1)
| // [7654____]
// [_3210]
((in[ 4 + inPos] & 31) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [_______0]
// [4____]
((in[ 4 + inPos] & 31) >>> 4)
| // [__54321_]
// [43210]
((in[ 5 + inPos] & 31) << 1)
| // [76______]
// [___10]
((in[ 6 + inPos] & 31) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [_____210]
// [432__]
((in[ 6 + inPos] & 31) >>> 2)
| // [76543___]
// [43210]
((in[ 7 + inPos] & 31) << 3)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [___43210]
// [43210]
((in[ 0 + inPos] & 31))
| // [765_____]
// [__210]
((in[ 1 + inPos] & 31) << 5)) & 255);
out[ 1 + outPos] = (byte)((
// [______10]
// [43___]
((in[ 1 + inPos] & 31) >>> 3)
| // [_65432__]
// [43210]
((in[ 2 + inPos] & 31) << 2)
| // [7_______]
// [____0]
((in[ 3 + inPos] & 31) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [4321_]
((in[ 3 + inPos] & 31) >>> 1)
| // [7654____]
// [_3210]
((in[ 4 + inPos] & 31) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [_______0]
// [4____]
((in[ 4 + inPos] & 31) >>> 4)
| // [__54321_]
// [43210]
((in[ 5 + inPos] & 31) << 1)
| // [76______]
// [___10]
((in[ 6 + inPos] & 31) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [_____210]
// [432__]
((in[ 6 + inPos] & 31) >>> 2)
| // [76543___]
// [43210]
((in[ 7 + inPos] & 31) << 3)) & 255);
out[ 5 + outPos] = (byte)((
// [___43210]
// [43210]
((in[ 8 + inPos] & 31))
| // [765_____]
// [__210]
((in[ 9 + inPos] & 31) << 5)) & 255);
out[ 6 + outPos] = (byte)((
// [______10]
// [43___]
((in[ 9 + inPos] & 31) >>> 3)
| // [_65432__]
// [43210]
((in[10 + inPos] & 31) << 2)
| // [7_______]
// [____0]
((in[11 + inPos] & 31) << 7)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [4321_]
((in[11 + inPos] & 31) >>> 1)
| // [7654____]
// [_3210]
((in[12 + inPos] & 31) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [_______0]
// [4____]
((in[12 + inPos] & 31) >>> 4)
| // [__54321_]
// [43210]
((in[13 + inPos] & 31) << 1)
| // [76______]
// [___10]
((in[14 + inPos] & 31) << 6)) & 255);
out[ 9 + outPos] = (byte)((
// [_____210]
// [432__]
((in[14 + inPos] & 31) >>> 2)
| // [76543___]
// [43210]
((in[15 + inPos] & 31) << 3)) & 255);
out[10 + outPos] = (byte)((
// [___43210]
// [43210]
((in[16 + inPos] & 31))
| // [765_____]
// [__210]
((in[17 + inPos] & 31) << 5)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [43___]
((in[17 + inPos] & 31) >>> 3)
| // [_65432__]
// [43210]
((in[18 + inPos] & 31) << 2)
| // [7_______]
// [____0]
((in[19 + inPos] & 31) << 7)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [4321_]
((in[19 + inPos] & 31) >>> 1)
| // [7654____]
// [_3210]
((in[20 + inPos] & 31) << 4)) & 255);
out[13 + outPos] = (byte)((
// [_______0]
// [4____]
((in[20 + inPos] & 31) >>> 4)
| // [__54321_]
// [43210]
((in[21 + inPos] & 31) << 1)
| // [76______]
// [___10]
((in[22 + inPos] & 31) << 6)) & 255);
out[14 + outPos] = (byte)((
// [_____210]
// [432__]
((in[22 + inPos] & 31) >>> 2)
| // [76543___]
// [43210]
((in[23 + inPos] & 31) << 3)) & 255);
out[15 + outPos] = (byte)((
// [___43210]
// [43210]
((in[24 + inPos] & 31))
| // [765_____]
// [__210]
((in[25 + inPos] & 31) << 5)) & 255);
out[16 + outPos] = (byte)((
// [______10]
// [43___]
((in[25 + inPos] & 31) >>> 3)
| // [_65432__]
// [43210]
((in[26 + inPos] & 31) << 2)
| // [7_______]
// [____0]
((in[27 + inPos] & 31) << 7)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [4321_]
((in[27 + inPos] & 31) >>> 1)
| // [7654____]
// [_3210]
((in[28 + inPos] & 31) << 4)) & 255);
out[18 + outPos] = (byte)((
// [_______0]
// [4____]
((in[28 + inPos] & 31) >>> 4)
| // [__54321_]
// [43210]
((in[29 + inPos] & 31) << 1)
| // [76______]
// [___10]
((in[30 + inPos] & 31) << 6)) & 255);
out[19 + outPos] = (byte)((
// [_____210]
// [432__]
((in[30 + inPos] & 31) >>> 2)
| // [76543___]
// [43210]
((in[31 + inPos] & 31) << 3)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [___43210]
// [43210]
((((int)in[ 0 + inPos]) ) & 31);
out[ 1 + outPos] =
// [765_____]
// [__210]
((((int)in[ 0 + inPos]) >> 5) & 7)
| // [______10]
// [43___]
((((int)in[ 1 + inPos]) << 3) & 31);
out[ 2 + outPos] =
// [_65432__]
// [43210]
((((int)in[ 1 + inPos]) >> 2) & 31);
out[ 3 + outPos] =
// [7_______]
// [____0]
((((int)in[ 1 + inPos]) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in[ 2 + inPos]) << 1) & 31);
out[ 4 + outPos] =
// [7654____]
// [_3210]
((((int)in[ 2 + inPos]) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in[ 3 + inPos]) << 4) & 31);
out[ 5 + outPos] =
// [__54321_]
// [43210]
((((int)in[ 3 + inPos]) >> 1) & 31);
out[ 6 + outPos] =
// [76______]
// [___10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in[ 4 + inPos]) << 2) & 31);
out[ 7 + outPos] =
// [76543___]
// [43210]
((((int)in[ 4 + inPos]) >> 3) & 31);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [___43210]
// [43210]
((((int)in.get( 0 + inPos)) ) & 31);
out[ 1 + outPos] =
// [765_____]
// [__210]
((((int)in.get( 0 + inPos)) >> 5) & 7)
| // [______10]
// [43___]
((((int)in.get( 1 + inPos)) << 3) & 31);
out[ 2 + outPos] =
// [_65432__]
// [43210]
((((int)in.get( 1 + inPos)) >> 2) & 31);
out[ 3 + outPos] =
// [7_______]
// [____0]
((((int)in.get( 1 + inPos)) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in.get( 2 + inPos)) << 1) & 31);
out[ 4 + outPos] =
// [7654____]
// [_3210]
((((int)in.get( 2 + inPos)) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in.get( 3 + inPos)) << 4) & 31);
out[ 5 + outPos] =
// [__54321_]
// [43210]
((((int)in.get( 3 + inPos)) >> 1) & 31);
out[ 6 + outPos] =
// [76______]
// [___10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in.get( 4 + inPos)) << 2) & 31);
out[ 7 + outPos] =
// [76543___]
// [43210]
((((int)in.get( 4 + inPos)) >> 3) & 31);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [___43210]
// [43210]
((((int)in[ 0 + inPos]) ) & 31);
out[ 1 + outPos] =
// [765_____]
// [__210]
((((int)in[ 0 + inPos]) >> 5) & 7)
| // [______10]
// [43___]
((((int)in[ 1 + inPos]) << 3) & 31);
out[ 2 + outPos] =
// [_65432__]
// [43210]
((((int)in[ 1 + inPos]) >> 2) & 31);
out[ 3 + outPos] =
// [7_______]
// [____0]
((((int)in[ 1 + inPos]) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in[ 2 + inPos]) << 1) & 31);
out[ 4 + outPos] =
// [7654____]
// [_3210]
((((int)in[ 2 + inPos]) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in[ 3 + inPos]) << 4) & 31);
out[ 5 + outPos] =
// [__54321_]
// [43210]
((((int)in[ 3 + inPos]) >> 1) & 31);
out[ 6 + outPos] =
// [76______]
// [___10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in[ 4 + inPos]) << 2) & 31);
out[ 7 + outPos] =
// [76543___]
// [43210]
((((int)in[ 4 + inPos]) >> 3) & 31);
out[ 8 + outPos] =
// [___43210]
// [43210]
((((int)in[ 5 + inPos]) ) & 31);
out[ 9 + outPos] =
// [765_____]
// [__210]
((((int)in[ 5 + inPos]) >> 5) & 7)
| // [______10]
// [43___]
((((int)in[ 6 + inPos]) << 3) & 31);
out[10 + outPos] =
// [_65432__]
// [43210]
((((int)in[ 6 + inPos]) >> 2) & 31);
out[11 + outPos] =
// [7_______]
// [____0]
((((int)in[ 6 + inPos]) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in[ 7 + inPos]) << 1) & 31);
out[12 + outPos] =
// [7654____]
// [_3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in[ 8 + inPos]) << 4) & 31);
out[13 + outPos] =
// [__54321_]
// [43210]
((((int)in[ 8 + inPos]) >> 1) & 31);
out[14 + outPos] =
// [76______]
// [___10]
((((int)in[ 8 + inPos]) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in[ 9 + inPos]) << 2) & 31);
out[15 + outPos] =
// [76543___]
// [43210]
((((int)in[ 9 + inPos]) >> 3) & 31);
out[16 + outPos] =
// [___43210]
// [43210]
((((int)in[10 + inPos]) ) & 31);
out[17 + outPos] =
// [765_____]
// [__210]
((((int)in[10 + inPos]) >> 5) & 7)
| // [______10]
// [43___]
((((int)in[11 + inPos]) << 3) & 31);
out[18 + outPos] =
// [_65432__]
// [43210]
((((int)in[11 + inPos]) >> 2) & 31);
out[19 + outPos] =
// [7_______]
// [____0]
((((int)in[11 + inPos]) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in[12 + inPos]) << 1) & 31);
out[20 + outPos] =
// [7654____]
// [_3210]
((((int)in[12 + inPos]) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in[13 + inPos]) << 4) & 31);
out[21 + outPos] =
// [__54321_]
// [43210]
((((int)in[13 + inPos]) >> 1) & 31);
out[22 + outPos] =
// [76______]
// [___10]
((((int)in[13 + inPos]) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in[14 + inPos]) << 2) & 31);
out[23 + outPos] =
// [76543___]
// [43210]
((((int)in[14 + inPos]) >> 3) & 31);
out[24 + outPos] =
// [___43210]
// [43210]
((((int)in[15 + inPos]) ) & 31);
out[25 + outPos] =
// [765_____]
// [__210]
((((int)in[15 + inPos]) >> 5) & 7)
| // [______10]
// [43___]
((((int)in[16 + inPos]) << 3) & 31);
out[26 + outPos] =
// [_65432__]
// [43210]
((((int)in[16 + inPos]) >> 2) & 31);
out[27 + outPos] =
// [7_______]
// [____0]
((((int)in[16 + inPos]) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in[17 + inPos]) << 1) & 31);
out[28 + outPos] =
// [7654____]
// [_3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in[18 + inPos]) << 4) & 31);
out[29 + outPos] =
// [__54321_]
// [43210]
((((int)in[18 + inPos]) >> 1) & 31);
out[30 + outPos] =
// [76______]
// [___10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in[19 + inPos]) << 2) & 31);
out[31 + outPos] =
// [76543___]
// [43210]
((((int)in[19 + inPos]) >> 3) & 31);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [___43210]
// [43210]
((((int)in.get( 0 + inPos)) ) & 31);
out[ 1 + outPos] =
// [765_____]
// [__210]
((((int)in.get( 0 + inPos)) >> 5) & 7)
| // [______10]
// [43___]
((((int)in.get( 1 + inPos)) << 3) & 31);
out[ 2 + outPos] =
// [_65432__]
// [43210]
((((int)in.get( 1 + inPos)) >> 2) & 31);
out[ 3 + outPos] =
// [7_______]
// [____0]
((((int)in.get( 1 + inPos)) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in.get( 2 + inPos)) << 1) & 31);
out[ 4 + outPos] =
// [7654____]
// [_3210]
((((int)in.get( 2 + inPos)) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in.get( 3 + inPos)) << 4) & 31);
out[ 5 + outPos] =
// [__54321_]
// [43210]
((((int)in.get( 3 + inPos)) >> 1) & 31);
out[ 6 + outPos] =
// [76______]
// [___10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in.get( 4 + inPos)) << 2) & 31);
out[ 7 + outPos] =
// [76543___]
// [43210]
((((int)in.get( 4 + inPos)) >> 3) & 31);
out[ 8 + outPos] =
// [___43210]
// [43210]
((((int)in.get( 5 + inPos)) ) & 31);
out[ 9 + outPos] =
// [765_____]
// [__210]
((((int)in.get( 5 + inPos)) >> 5) & 7)
| // [______10]
// [43___]
((((int)in.get( 6 + inPos)) << 3) & 31);
out[10 + outPos] =
// [_65432__]
// [43210]
((((int)in.get( 6 + inPos)) >> 2) & 31);
out[11 + outPos] =
// [7_______]
// [____0]
((((int)in.get( 6 + inPos)) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in.get( 7 + inPos)) << 1) & 31);
out[12 + outPos] =
// [7654____]
// [_3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in.get( 8 + inPos)) << 4) & 31);
out[13 + outPos] =
// [__54321_]
// [43210]
((((int)in.get( 8 + inPos)) >> 1) & 31);
out[14 + outPos] =
// [76______]
// [___10]
((((int)in.get( 8 + inPos)) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in.get( 9 + inPos)) << 2) & 31);
out[15 + outPos] =
// [76543___]
// [43210]
((((int)in.get( 9 + inPos)) >> 3) & 31);
out[16 + outPos] =
// [___43210]
// [43210]
((((int)in.get(10 + inPos)) ) & 31);
out[17 + outPos] =
// [765_____]
// [__210]
((((int)in.get(10 + inPos)) >> 5) & 7)
| // [______10]
// [43___]
((((int)in.get(11 + inPos)) << 3) & 31);
out[18 + outPos] =
// [_65432__]
// [43210]
((((int)in.get(11 + inPos)) >> 2) & 31);
out[19 + outPos] =
// [7_______]
// [____0]
((((int)in.get(11 + inPos)) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in.get(12 + inPos)) << 1) & 31);
out[20 + outPos] =
// [7654____]
// [_3210]
((((int)in.get(12 + inPos)) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in.get(13 + inPos)) << 4) & 31);
out[21 + outPos] =
// [__54321_]
// [43210]
((((int)in.get(13 + inPos)) >> 1) & 31);
out[22 + outPos] =
// [76______]
// [___10]
((((int)in.get(13 + inPos)) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in.get(14 + inPos)) << 2) & 31);
out[23 + outPos] =
// [76543___]
// [43210]
((((int)in.get(14 + inPos)) >> 3) & 31);
out[24 + outPos] =
// [___43210]
// [43210]
((((int)in.get(15 + inPos)) ) & 31);
out[25 + outPos] =
// [765_____]
// [__210]
((((int)in.get(15 + inPos)) >> 5) & 7)
| // [______10]
// [43___]
((((int)in.get(16 + inPos)) << 3) & 31);
out[26 + outPos] =
// [_65432__]
// [43210]
((((int)in.get(16 + inPos)) >> 2) & 31);
out[27 + outPos] =
// [7_______]
// [____0]
((((int)in.get(16 + inPos)) >> 7) & 1)
| // [____3210]
// [4321_]
((((int)in.get(17 + inPos)) << 1) & 31);
out[28 + outPos] =
// [7654____]
// [_3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [_______0]
// [4____]
((((int)in.get(18 + inPos)) << 4) & 31);
out[29 + outPos] =
// [__54321_]
// [43210]
((((int)in.get(18 + inPos)) >> 1) & 31);
out[30 + outPos] =
// [76______]
// [___10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [_____210]
// [432__]
((((int)in.get(19 + inPos)) << 2) & 31);
out[31 + outPos] =
// [76543___]
// [43210]
((((int)in.get(19 + inPos)) >> 3) & 31);
}
}
private static final class Packer6 extends BytePacker {
private Packer6() {
super(6);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [__543210]
// [543210]
((in[ 0 + inPos] & 63))
| // [76______]
// [____10]
((in[ 1 + inPos] & 63) << 6)) & 255);
out[ 1 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[ 1 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[ 2 + inPos] & 63) << 4)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [54____]
((in[ 2 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[ 3 + inPos] & 63) << 2)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [543210]
((in[ 4 + inPos] & 63))
| // [76______]
// [____10]
((in[ 5 + inPos] & 63) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[ 5 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[ 6 + inPos] & 63) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [54____]
((in[ 6 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[ 7 + inPos] & 63) << 2)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [__543210]
// [543210]
((in[ 0 + inPos] & 63))
| // [76______]
// [____10]
((in[ 1 + inPos] & 63) << 6)) & 255);
out[ 1 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[ 1 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[ 2 + inPos] & 63) << 4)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [54____]
((in[ 2 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[ 3 + inPos] & 63) << 2)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [543210]
((in[ 4 + inPos] & 63))
| // [76______]
// [____10]
((in[ 5 + inPos] & 63) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[ 5 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[ 6 + inPos] & 63) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [54____]
((in[ 6 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[ 7 + inPos] & 63) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [543210]
((in[ 8 + inPos] & 63))
| // [76______]
// [____10]
((in[ 9 + inPos] & 63) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[ 9 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[10 + inPos] & 63) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [______10]
// [54____]
((in[10 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[11 + inPos] & 63) << 2)) & 255);
out[ 9 + outPos] = (byte)((
// [__543210]
// [543210]
((in[12 + inPos] & 63))
| // [76______]
// [____10]
((in[13 + inPos] & 63) << 6)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[13 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[14 + inPos] & 63) << 4)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [54____]
((in[14 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[15 + inPos] & 63) << 2)) & 255);
out[12 + outPos] = (byte)((
// [__543210]
// [543210]
((in[16 + inPos] & 63))
| // [76______]
// [____10]
((in[17 + inPos] & 63) << 6)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[17 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[18 + inPos] & 63) << 4)) & 255);
out[14 + outPos] = (byte)((
// [______10]
// [54____]
((in[18 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[19 + inPos] & 63) << 2)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [543210]
((in[20 + inPos] & 63))
| // [76______]
// [____10]
((in[21 + inPos] & 63) << 6)) & 255);
out[16 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[21 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[22 + inPos] & 63) << 4)) & 255);
out[17 + outPos] = (byte)((
// [______10]
// [54____]
((in[22 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[23 + inPos] & 63) << 2)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [543210]
((in[24 + inPos] & 63))
| // [76______]
// [____10]
((in[25 + inPos] & 63) << 6)) & 255);
out[19 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[25 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[26 + inPos] & 63) << 4)) & 255);
out[20 + outPos] = (byte)((
// [______10]
// [54____]
((in[26 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[27 + inPos] & 63) << 2)) & 255);
out[21 + outPos] = (byte)((
// [__543210]
// [543210]
((in[28 + inPos] & 63))
| // [76______]
// [____10]
((in[29 + inPos] & 63) << 6)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [5432__]
((in[29 + inPos] & 63) >>> 2)
| // [7654____]
// [__3210]
((in[30 + inPos] & 63) << 4)) & 255);
out[23 + outPos] = (byte)((
// [______10]
// [54____]
((in[30 + inPos] & 63) >>> 4)
| // [765432__]
// [543210]
((in[31 + inPos] & 63) << 2)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [__543210]
// [543210]
((((int)in[ 0 + inPos]) ) & 63);
out[ 1 + outPos] =
// [76______]
// [____10]
((((int)in[ 0 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[ 1 + inPos]) << 2) & 63);
out[ 2 + outPos] =
// [7654____]
// [__3210]
((((int)in[ 1 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[ 2 + inPos]) << 4) & 63);
out[ 3 + outPos] =
// [765432__]
// [543210]
((((int)in[ 2 + inPos]) >> 2) & 63);
out[ 4 + outPos] =
// [__543210]
// [543210]
((((int)in[ 3 + inPos]) ) & 63);
out[ 5 + outPos] =
// [76______]
// [____10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[ 4 + inPos]) << 2) & 63);
out[ 6 + outPos] =
// [7654____]
// [__3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[ 5 + inPos]) << 4) & 63);
out[ 7 + outPos] =
// [765432__]
// [543210]
((((int)in[ 5 + inPos]) >> 2) & 63);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [__543210]
// [543210]
((((int)in.get( 0 + inPos)) ) & 63);
out[ 1 + outPos] =
// [76______]
// [____10]
((((int)in.get( 0 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get( 1 + inPos)) << 2) & 63);
out[ 2 + outPos] =
// [7654____]
// [__3210]
((((int)in.get( 1 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get( 2 + inPos)) << 4) & 63);
out[ 3 + outPos] =
// [765432__]
// [543210]
((((int)in.get( 2 + inPos)) >> 2) & 63);
out[ 4 + outPos] =
// [__543210]
// [543210]
((((int)in.get( 3 + inPos)) ) & 63);
out[ 5 + outPos] =
// [76______]
// [____10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get( 4 + inPos)) << 2) & 63);
out[ 6 + outPos] =
// [7654____]
// [__3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get( 5 + inPos)) << 4) & 63);
out[ 7 + outPos] =
// [765432__]
// [543210]
((((int)in.get( 5 + inPos)) >> 2) & 63);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [__543210]
// [543210]
((((int)in[ 0 + inPos]) ) & 63);
out[ 1 + outPos] =
// [76______]
// [____10]
((((int)in[ 0 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[ 1 + inPos]) << 2) & 63);
out[ 2 + outPos] =
// [7654____]
// [__3210]
((((int)in[ 1 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[ 2 + inPos]) << 4) & 63);
out[ 3 + outPos] =
// [765432__]
// [543210]
((((int)in[ 2 + inPos]) >> 2) & 63);
out[ 4 + outPos] =
// [__543210]
// [543210]
((((int)in[ 3 + inPos]) ) & 63);
out[ 5 + outPos] =
// [76______]
// [____10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[ 4 + inPos]) << 2) & 63);
out[ 6 + outPos] =
// [7654____]
// [__3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[ 5 + inPos]) << 4) & 63);
out[ 7 + outPos] =
// [765432__]
// [543210]
((((int)in[ 5 + inPos]) >> 2) & 63);
out[ 8 + outPos] =
// [__543210]
// [543210]
((((int)in[ 6 + inPos]) ) & 63);
out[ 9 + outPos] =
// [76______]
// [____10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[ 7 + inPos]) << 2) & 63);
out[10 + outPos] =
// [7654____]
// [__3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[ 8 + inPos]) << 4) & 63);
out[11 + outPos] =
// [765432__]
// [543210]
((((int)in[ 8 + inPos]) >> 2) & 63);
out[12 + outPos] =
// [__543210]
// [543210]
((((int)in[ 9 + inPos]) ) & 63);
out[13 + outPos] =
// [76______]
// [____10]
((((int)in[ 9 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[10 + inPos]) << 2) & 63);
out[14 + outPos] =
// [7654____]
// [__3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[11 + inPos]) << 4) & 63);
out[15 + outPos] =
// [765432__]
// [543210]
((((int)in[11 + inPos]) >> 2) & 63);
out[16 + outPos] =
// [__543210]
// [543210]
((((int)in[12 + inPos]) ) & 63);
out[17 + outPos] =
// [76______]
// [____10]
((((int)in[12 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[13 + inPos]) << 2) & 63);
out[18 + outPos] =
// [7654____]
// [__3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[14 + inPos]) << 4) & 63);
out[19 + outPos] =
// [765432__]
// [543210]
((((int)in[14 + inPos]) >> 2) & 63);
out[20 + outPos] =
// [__543210]
// [543210]
((((int)in[15 + inPos]) ) & 63);
out[21 + outPos] =
// [76______]
// [____10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[16 + inPos]) << 2) & 63);
out[22 + outPos] =
// [7654____]
// [__3210]
((((int)in[16 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[17 + inPos]) << 4) & 63);
out[23 + outPos] =
// [765432__]
// [543210]
((((int)in[17 + inPos]) >> 2) & 63);
out[24 + outPos] =
// [__543210]
// [543210]
((((int)in[18 + inPos]) ) & 63);
out[25 + outPos] =
// [76______]
// [____10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[19 + inPos]) << 2) & 63);
out[26 + outPos] =
// [7654____]
// [__3210]
((((int)in[19 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[20 + inPos]) << 4) & 63);
out[27 + outPos] =
// [765432__]
// [543210]
((((int)in[20 + inPos]) >> 2) & 63);
out[28 + outPos] =
// [__543210]
// [543210]
((((int)in[21 + inPos]) ) & 63);
out[29 + outPos] =
// [76______]
// [____10]
((((int)in[21 + inPos]) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in[22 + inPos]) << 2) & 63);
out[30 + outPos] =
// [7654____]
// [__3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [______10]
// [54____]
((((int)in[23 + inPos]) << 4) & 63);
out[31 + outPos] =
// [765432__]
// [543210]
((((int)in[23 + inPos]) >> 2) & 63);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [__543210]
// [543210]
((((int)in.get( 0 + inPos)) ) & 63);
out[ 1 + outPos] =
// [76______]
// [____10]
((((int)in.get( 0 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get( 1 + inPos)) << 2) & 63);
out[ 2 + outPos] =
// [7654____]
// [__3210]
((((int)in.get( 1 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get( 2 + inPos)) << 4) & 63);
out[ 3 + outPos] =
// [765432__]
// [543210]
((((int)in.get( 2 + inPos)) >> 2) & 63);
out[ 4 + outPos] =
// [__543210]
// [543210]
((((int)in.get( 3 + inPos)) ) & 63);
out[ 5 + outPos] =
// [76______]
// [____10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get( 4 + inPos)) << 2) & 63);
out[ 6 + outPos] =
// [7654____]
// [__3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get( 5 + inPos)) << 4) & 63);
out[ 7 + outPos] =
// [765432__]
// [543210]
((((int)in.get( 5 + inPos)) >> 2) & 63);
out[ 8 + outPos] =
// [__543210]
// [543210]
((((int)in.get( 6 + inPos)) ) & 63);
out[ 9 + outPos] =
// [76______]
// [____10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get( 7 + inPos)) << 2) & 63);
out[10 + outPos] =
// [7654____]
// [__3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get( 8 + inPos)) << 4) & 63);
out[11 + outPos] =
// [765432__]
// [543210]
((((int)in.get( 8 + inPos)) >> 2) & 63);
out[12 + outPos] =
// [__543210]
// [543210]
((((int)in.get( 9 + inPos)) ) & 63);
out[13 + outPos] =
// [76______]
// [____10]
((((int)in.get( 9 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get(10 + inPos)) << 2) & 63);
out[14 + outPos] =
// [7654____]
// [__3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get(11 + inPos)) << 4) & 63);
out[15 + outPos] =
// [765432__]
// [543210]
((((int)in.get(11 + inPos)) >> 2) & 63);
out[16 + outPos] =
// [__543210]
// [543210]
((((int)in.get(12 + inPos)) ) & 63);
out[17 + outPos] =
// [76______]
// [____10]
((((int)in.get(12 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get(13 + inPos)) << 2) & 63);
out[18 + outPos] =
// [7654____]
// [__3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get(14 + inPos)) << 4) & 63);
out[19 + outPos] =
// [765432__]
// [543210]
((((int)in.get(14 + inPos)) >> 2) & 63);
out[20 + outPos] =
// [__543210]
// [543210]
((((int)in.get(15 + inPos)) ) & 63);
out[21 + outPos] =
// [76______]
// [____10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get(16 + inPos)) << 2) & 63);
out[22 + outPos] =
// [7654____]
// [__3210]
((((int)in.get(16 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get(17 + inPos)) << 4) & 63);
out[23 + outPos] =
// [765432__]
// [543210]
((((int)in.get(17 + inPos)) >> 2) & 63);
out[24 + outPos] =
// [__543210]
// [543210]
((((int)in.get(18 + inPos)) ) & 63);
out[25 + outPos] =
// [76______]
// [____10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get(19 + inPos)) << 2) & 63);
out[26 + outPos] =
// [7654____]
// [__3210]
((((int)in.get(19 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get(20 + inPos)) << 4) & 63);
out[27 + outPos] =
// [765432__]
// [543210]
((((int)in.get(20 + inPos)) >> 2) & 63);
out[28 + outPos] =
// [__543210]
// [543210]
((((int)in.get(21 + inPos)) ) & 63);
out[29 + outPos] =
// [76______]
// [____10]
((((int)in.get(21 + inPos)) >> 6) & 3)
| // [____3210]
// [5432__]
((((int)in.get(22 + inPos)) << 2) & 63);
out[30 + outPos] =
// [7654____]
// [__3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [______10]
// [54____]
((((int)in.get(23 + inPos)) << 4) & 63);
out[31 + outPos] =
// [765432__]
// [543210]
((((int)in.get(23 + inPos)) >> 2) & 63);
}
}
private static final class Packer7 extends BytePacker {
private Packer7() {
super(7);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [_6543210]
// [6543210]
((in[ 0 + inPos] & 127))
| // [7_______]
// [______0]
((in[ 1 + inPos] & 127) << 7)) & 255);
out[ 1 + outPos] = (byte)((
// [__543210]
// [654321_]
((in[ 1 + inPos] & 127) >>> 1)
| // [76______]
// [_____10]
((in[ 2 + inPos] & 127) << 6)) & 255);
out[ 2 + outPos] = (byte)((
// [___43210]
// [65432__]
((in[ 2 + inPos] & 127) >>> 2)
| // [765_____]
// [____210]
((in[ 3 + inPos] & 127) << 5)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [6543___]
((in[ 3 + inPos] & 127) >>> 3)
| // [7654____]
// [___3210]
((in[ 4 + inPos] & 127) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [_____210]
// [654____]
((in[ 4 + inPos] & 127) >>> 4)
| // [76543___]
// [__43210]
((in[ 5 + inPos] & 127) << 3)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [65_____]
((in[ 5 + inPos] & 127) >>> 5)
| // [765432__]
// [_543210]
((in[ 6 + inPos] & 127) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [_______0]
// [6______]
((in[ 6 + inPos] & 127) >>> 6)
| // [7654321_]
// [6543210]
((in[ 7 + inPos] & 127) << 1)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [_6543210]
// [6543210]
((in[ 0 + inPos] & 127))
| // [7_______]
// [______0]
((in[ 1 + inPos] & 127) << 7)) & 255);
out[ 1 + outPos] = (byte)((
// [__543210]
// [654321_]
((in[ 1 + inPos] & 127) >>> 1)
| // [76______]
// [_____10]
((in[ 2 + inPos] & 127) << 6)) & 255);
out[ 2 + outPos] = (byte)((
// [___43210]
// [65432__]
((in[ 2 + inPos] & 127) >>> 2)
| // [765_____]
// [____210]
((in[ 3 + inPos] & 127) << 5)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [6543___]
((in[ 3 + inPos] & 127) >>> 3)
| // [7654____]
// [___3210]
((in[ 4 + inPos] & 127) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [_____210]
// [654____]
((in[ 4 + inPos] & 127) >>> 4)
| // [76543___]
// [__43210]
((in[ 5 + inPos] & 127) << 3)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [65_____]
((in[ 5 + inPos] & 127) >>> 5)
| // [765432__]
// [_543210]
((in[ 6 + inPos] & 127) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [_______0]
// [6______]
((in[ 6 + inPos] & 127) >>> 6)
| // [7654321_]
// [6543210]
((in[ 7 + inPos] & 127) << 1)) & 255);
out[ 7 + outPos] = (byte)((
// [_6543210]
// [6543210]
((in[ 8 + inPos] & 127))
| // [7_______]
// [______0]
((in[ 9 + inPos] & 127) << 7)) & 255);
out[ 8 + outPos] = (byte)((
// [__543210]
// [654321_]
((in[ 9 + inPos] & 127) >>> 1)
| // [76______]
// [_____10]
((in[10 + inPos] & 127) << 6)) & 255);
out[ 9 + outPos] = (byte)((
// [___43210]
// [65432__]
((in[10 + inPos] & 127) >>> 2)
| // [765_____]
// [____210]
((in[11 + inPos] & 127) << 5)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [6543___]
((in[11 + inPos] & 127) >>> 3)
| // [7654____]
// [___3210]
((in[12 + inPos] & 127) << 4)) & 255);
out[11 + outPos] = (byte)((
// [_____210]
// [654____]
((in[12 + inPos] & 127) >>> 4)
| // [76543___]
// [__43210]
((in[13 + inPos] & 127) << 3)) & 255);
out[12 + outPos] = (byte)((
// [______10]
// [65_____]
((in[13 + inPos] & 127) >>> 5)
| // [765432__]
// [_543210]
((in[14 + inPos] & 127) << 2)) & 255);
out[13 + outPos] = (byte)((
// [_______0]
// [6______]
((in[14 + inPos] & 127) >>> 6)
| // [7654321_]
// [6543210]
((in[15 + inPos] & 127) << 1)) & 255);
out[14 + outPos] = (byte)((
// [_6543210]
// [6543210]
((in[16 + inPos] & 127))
| // [7_______]
// [______0]
((in[17 + inPos] & 127) << 7)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [654321_]
((in[17 + inPos] & 127) >>> 1)
| // [76______]
// [_____10]
((in[18 + inPos] & 127) << 6)) & 255);
out[16 + outPos] = (byte)((
// [___43210]
// [65432__]
((in[18 + inPos] & 127) >>> 2)
| // [765_____]
// [____210]
((in[19 + inPos] & 127) << 5)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [6543___]
((in[19 + inPos] & 127) >>> 3)
| // [7654____]
// [___3210]
((in[20 + inPos] & 127) << 4)) & 255);
out[18 + outPos] = (byte)((
// [_____210]
// [654____]
((in[20 + inPos] & 127) >>> 4)
| // [76543___]
// [__43210]
((in[21 + inPos] & 127) << 3)) & 255);
out[19 + outPos] = (byte)((
// [______10]
// [65_____]
((in[21 + inPos] & 127) >>> 5)
| // [765432__]
// [_543210]
((in[22 + inPos] & 127) << 2)) & 255);
out[20 + outPos] = (byte)((
// [_______0]
// [6______]
((in[22 + inPos] & 127) >>> 6)
| // [7654321_]
// [6543210]
((in[23 + inPos] & 127) << 1)) & 255);
out[21 + outPos] = (byte)((
// [_6543210]
// [6543210]
((in[24 + inPos] & 127))
| // [7_______]
// [______0]
((in[25 + inPos] & 127) << 7)) & 255);
out[22 + outPos] = (byte)((
// [__543210]
// [654321_]
((in[25 + inPos] & 127) >>> 1)
| // [76______]
// [_____10]
((in[26 + inPos] & 127) << 6)) & 255);
out[23 + outPos] = (byte)((
// [___43210]
// [65432__]
((in[26 + inPos] & 127) >>> 2)
| // [765_____]
// [____210]
((in[27 + inPos] & 127) << 5)) & 255);
out[24 + outPos] = (byte)((
// [____3210]
// [6543___]
((in[27 + inPos] & 127) >>> 3)
| // [7654____]
// [___3210]
((in[28 + inPos] & 127) << 4)) & 255);
out[25 + outPos] = (byte)((
// [_____210]
// [654____]
((in[28 + inPos] & 127) >>> 4)
| // [76543___]
// [__43210]
((in[29 + inPos] & 127) << 3)) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [65_____]
((in[29 + inPos] & 127) >>> 5)
| // [765432__]
// [_543210]
((in[30 + inPos] & 127) << 2)) & 255);
out[27 + outPos] = (byte)((
// [_______0]
// [6______]
((in[30 + inPos] & 127) >>> 6)
| // [7654321_]
// [6543210]
((in[31 + inPos] & 127) << 1)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_6543210]
// [6543210]
((((int)in[ 0 + inPos]) ) & 127);
out[ 1 + outPos] =
// [7_______]
// [______0]
((((int)in[ 0 + inPos]) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in[ 1 + inPos]) << 1) & 127);
out[ 2 + outPos] =
// [76______]
// [_____10]
((((int)in[ 1 + inPos]) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in[ 2 + inPos]) << 2) & 127);
out[ 3 + outPos] =
// [765_____]
// [____210]
((((int)in[ 2 + inPos]) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in[ 3 + inPos]) << 3) & 127);
out[ 4 + outPos] =
// [7654____]
// [___3210]
((((int)in[ 3 + inPos]) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in[ 4 + inPos]) << 4) & 127);
out[ 5 + outPos] =
// [76543___]
// [__43210]
((((int)in[ 4 + inPos]) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in[ 5 + inPos]) << 5) & 127);
out[ 6 + outPos] =
// [765432__]
// [_543210]
((((int)in[ 5 + inPos]) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in[ 6 + inPos]) << 6) & 127);
out[ 7 + outPos] =
// [7654321_]
// [6543210]
((((int)in[ 6 + inPos]) >> 1) & 127);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_6543210]
// [6543210]
((((int)in.get( 0 + inPos)) ) & 127);
out[ 1 + outPos] =
// [7_______]
// [______0]
((((int)in.get( 0 + inPos)) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in.get( 1 + inPos)) << 1) & 127);
out[ 2 + outPos] =
// [76______]
// [_____10]
((((int)in.get( 1 + inPos)) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in.get( 2 + inPos)) << 2) & 127);
out[ 3 + outPos] =
// [765_____]
// [____210]
((((int)in.get( 2 + inPos)) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in.get( 3 + inPos)) << 3) & 127);
out[ 4 + outPos] =
// [7654____]
// [___3210]
((((int)in.get( 3 + inPos)) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in.get( 4 + inPos)) << 4) & 127);
out[ 5 + outPos] =
// [76543___]
// [__43210]
((((int)in.get( 4 + inPos)) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in.get( 5 + inPos)) << 5) & 127);
out[ 6 + outPos] =
// [765432__]
// [_543210]
((((int)in.get( 5 + inPos)) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in.get( 6 + inPos)) << 6) & 127);
out[ 7 + outPos] =
// [7654321_]
// [6543210]
((((int)in.get( 6 + inPos)) >> 1) & 127);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_6543210]
// [6543210]
((((int)in[ 0 + inPos]) ) & 127);
out[ 1 + outPos] =
// [7_______]
// [______0]
((((int)in[ 0 + inPos]) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in[ 1 + inPos]) << 1) & 127);
out[ 2 + outPos] =
// [76______]
// [_____10]
((((int)in[ 1 + inPos]) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in[ 2 + inPos]) << 2) & 127);
out[ 3 + outPos] =
// [765_____]
// [____210]
((((int)in[ 2 + inPos]) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in[ 3 + inPos]) << 3) & 127);
out[ 4 + outPos] =
// [7654____]
// [___3210]
((((int)in[ 3 + inPos]) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in[ 4 + inPos]) << 4) & 127);
out[ 5 + outPos] =
// [76543___]
// [__43210]
((((int)in[ 4 + inPos]) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in[ 5 + inPos]) << 5) & 127);
out[ 6 + outPos] =
// [765432__]
// [_543210]
((((int)in[ 5 + inPos]) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in[ 6 + inPos]) << 6) & 127);
out[ 7 + outPos] =
// [7654321_]
// [6543210]
((((int)in[ 6 + inPos]) >> 1) & 127);
out[ 8 + outPos] =
// [_6543210]
// [6543210]
((((int)in[ 7 + inPos]) ) & 127);
out[ 9 + outPos] =
// [7_______]
// [______0]
((((int)in[ 7 + inPos]) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in[ 8 + inPos]) << 1) & 127);
out[10 + outPos] =
// [76______]
// [_____10]
((((int)in[ 8 + inPos]) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in[ 9 + inPos]) << 2) & 127);
out[11 + outPos] =
// [765_____]
// [____210]
((((int)in[ 9 + inPos]) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in[10 + inPos]) << 3) & 127);
out[12 + outPos] =
// [7654____]
// [___3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in[11 + inPos]) << 4) & 127);
out[13 + outPos] =
// [76543___]
// [__43210]
((((int)in[11 + inPos]) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in[12 + inPos]) << 5) & 127);
out[14 + outPos] =
// [765432__]
// [_543210]
((((int)in[12 + inPos]) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in[13 + inPos]) << 6) & 127);
out[15 + outPos] =
// [7654321_]
// [6543210]
((((int)in[13 + inPos]) >> 1) & 127);
out[16 + outPos] =
// [_6543210]
// [6543210]
((((int)in[14 + inPos]) ) & 127);
out[17 + outPos] =
// [7_______]
// [______0]
((((int)in[14 + inPos]) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in[15 + inPos]) << 1) & 127);
out[18 + outPos] =
// [76______]
// [_____10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in[16 + inPos]) << 2) & 127);
out[19 + outPos] =
// [765_____]
// [____210]
((((int)in[16 + inPos]) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in[17 + inPos]) << 3) & 127);
out[20 + outPos] =
// [7654____]
// [___3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in[18 + inPos]) << 4) & 127);
out[21 + outPos] =
// [76543___]
// [__43210]
((((int)in[18 + inPos]) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in[19 + inPos]) << 5) & 127);
out[22 + outPos] =
// [765432__]
// [_543210]
((((int)in[19 + inPos]) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in[20 + inPos]) << 6) & 127);
out[23 + outPos] =
// [7654321_]
// [6543210]
((((int)in[20 + inPos]) >> 1) & 127);
out[24 + outPos] =
// [_6543210]
// [6543210]
((((int)in[21 + inPos]) ) & 127);
out[25 + outPos] =
// [7_______]
// [______0]
((((int)in[21 + inPos]) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in[22 + inPos]) << 1) & 127);
out[26 + outPos] =
// [76______]
// [_____10]
((((int)in[22 + inPos]) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in[23 + inPos]) << 2) & 127);
out[27 + outPos] =
// [765_____]
// [____210]
((((int)in[23 + inPos]) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in[24 + inPos]) << 3) & 127);
out[28 + outPos] =
// [7654____]
// [___3210]
((((int)in[24 + inPos]) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in[25 + inPos]) << 4) & 127);
out[29 + outPos] =
// [76543___]
// [__43210]
((((int)in[25 + inPos]) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in[26 + inPos]) << 5) & 127);
out[30 + outPos] =
// [765432__]
// [_543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in[27 + inPos]) << 6) & 127);
out[31 + outPos] =
// [7654321_]
// [6543210]
((((int)in[27 + inPos]) >> 1) & 127);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [_6543210]
// [6543210]
((((int)in.get( 0 + inPos)) ) & 127);
out[ 1 + outPos] =
// [7_______]
// [______0]
((((int)in.get( 0 + inPos)) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in.get( 1 + inPos)) << 1) & 127);
out[ 2 + outPos] =
// [76______]
// [_____10]
((((int)in.get( 1 + inPos)) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in.get( 2 + inPos)) << 2) & 127);
out[ 3 + outPos] =
// [765_____]
// [____210]
((((int)in.get( 2 + inPos)) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in.get( 3 + inPos)) << 3) & 127);
out[ 4 + outPos] =
// [7654____]
// [___3210]
((((int)in.get( 3 + inPos)) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in.get( 4 + inPos)) << 4) & 127);
out[ 5 + outPos] =
// [76543___]
// [__43210]
((((int)in.get( 4 + inPos)) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in.get( 5 + inPos)) << 5) & 127);
out[ 6 + outPos] =
// [765432__]
// [_543210]
((((int)in.get( 5 + inPos)) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in.get( 6 + inPos)) << 6) & 127);
out[ 7 + outPos] =
// [7654321_]
// [6543210]
((((int)in.get( 6 + inPos)) >> 1) & 127);
out[ 8 + outPos] =
// [_6543210]
// [6543210]
((((int)in.get( 7 + inPos)) ) & 127);
out[ 9 + outPos] =
// [7_______]
// [______0]
((((int)in.get( 7 + inPos)) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in.get( 8 + inPos)) << 1) & 127);
out[10 + outPos] =
// [76______]
// [_____10]
((((int)in.get( 8 + inPos)) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in.get( 9 + inPos)) << 2) & 127);
out[11 + outPos] =
// [765_____]
// [____210]
((((int)in.get( 9 + inPos)) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in.get(10 + inPos)) << 3) & 127);
out[12 + outPos] =
// [7654____]
// [___3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in.get(11 + inPos)) << 4) & 127);
out[13 + outPos] =
// [76543___]
// [__43210]
((((int)in.get(11 + inPos)) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in.get(12 + inPos)) << 5) & 127);
out[14 + outPos] =
// [765432__]
// [_543210]
((((int)in.get(12 + inPos)) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in.get(13 + inPos)) << 6) & 127);
out[15 + outPos] =
// [7654321_]
// [6543210]
((((int)in.get(13 + inPos)) >> 1) & 127);
out[16 + outPos] =
// [_6543210]
// [6543210]
((((int)in.get(14 + inPos)) ) & 127);
out[17 + outPos] =
// [7_______]
// [______0]
((((int)in.get(14 + inPos)) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in.get(15 + inPos)) << 1) & 127);
out[18 + outPos] =
// [76______]
// [_____10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in.get(16 + inPos)) << 2) & 127);
out[19 + outPos] =
// [765_____]
// [____210]
((((int)in.get(16 + inPos)) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in.get(17 + inPos)) << 3) & 127);
out[20 + outPos] =
// [7654____]
// [___3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in.get(18 + inPos)) << 4) & 127);
out[21 + outPos] =
// [76543___]
// [__43210]
((((int)in.get(18 + inPos)) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in.get(19 + inPos)) << 5) & 127);
out[22 + outPos] =
// [765432__]
// [_543210]
((((int)in.get(19 + inPos)) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in.get(20 + inPos)) << 6) & 127);
out[23 + outPos] =
// [7654321_]
// [6543210]
((((int)in.get(20 + inPos)) >> 1) & 127);
out[24 + outPos] =
// [_6543210]
// [6543210]
((((int)in.get(21 + inPos)) ) & 127);
out[25 + outPos] =
// [7_______]
// [______0]
((((int)in.get(21 + inPos)) >> 7) & 1)
| // [__543210]
// [654321_]
((((int)in.get(22 + inPos)) << 1) & 127);
out[26 + outPos] =
// [76______]
// [_____10]
((((int)in.get(22 + inPos)) >> 6) & 3)
| // [___43210]
// [65432__]
((((int)in.get(23 + inPos)) << 2) & 127);
out[27 + outPos] =
// [765_____]
// [____210]
((((int)in.get(23 + inPos)) >> 5) & 7)
| // [____3210]
// [6543___]
((((int)in.get(24 + inPos)) << 3) & 127);
out[28 + outPos] =
// [7654____]
// [___3210]
((((int)in.get(24 + inPos)) >> 4) & 15)
| // [_____210]
// [654____]
((((int)in.get(25 + inPos)) << 4) & 127);
out[29 + outPos] =
// [76543___]
// [__43210]
((((int)in.get(25 + inPos)) >> 3) & 31)
| // [______10]
// [65_____]
((((int)in.get(26 + inPos)) << 5) & 127);
out[30 + outPos] =
// [765432__]
// [_543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [_______0]
// [6______]
((((int)in.get(27 + inPos)) << 6) & 127);
out[31 + outPos] =
// [7654321_]
// [6543210]
((((int)in.get(27 + inPos)) >> 1) & 127);
}
}
private static final class Packer8 extends BytePacker {
private Packer8() {
super(8);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 0 + inPos] & 255))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 1 + inPos] & 255))) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 2 + inPos] & 255))) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 3 + inPos] & 255))) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 4 + inPos] & 255))) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 5 + inPos] & 255))) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 6 + inPos] & 255))) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 7 + inPos] & 255))) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 0 + inPos] & 255))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 1 + inPos] & 255))) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 2 + inPos] & 255))) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 3 + inPos] & 255))) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 4 + inPos] & 255))) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 5 + inPos] & 255))) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 6 + inPos] & 255))) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 7 + inPos] & 255))) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 8 + inPos] & 255))) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[ 9 + inPos] & 255))) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[10 + inPos] & 255))) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[11 + inPos] & 255))) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[12 + inPos] & 255))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[13 + inPos] & 255))) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[14 + inPos] & 255))) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[15 + inPos] & 255))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[16 + inPos] & 255))) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[17 + inPos] & 255))) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[18 + inPos] & 255))) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[19 + inPos] & 255))) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[20 + inPos] & 255))) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[21 + inPos] & 255))) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[22 + inPos] & 255))) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[23 + inPos] & 255))) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[24 + inPos] & 255))) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[25 + inPos] & 255))) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[26 + inPos] & 255))) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[27 + inPos] & 255))) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[28 + inPos] & 255))) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[29 + inPos] & 255))) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[30 + inPos] & 255))) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [76543210]
((in[31 + inPos] & 255))) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 0 + inPos]) ) & 255);
out[ 1 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 1 + inPos]) ) & 255);
out[ 2 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 2 + inPos]) ) & 255);
out[ 3 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 3 + inPos]) ) & 255);
out[ 4 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 4 + inPos]) ) & 255);
out[ 5 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 5 + inPos]) ) & 255);
out[ 6 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 6 + inPos]) ) & 255);
out[ 7 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 7 + inPos]) ) & 255);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 0 + inPos)) ) & 255);
out[ 1 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 1 + inPos)) ) & 255);
out[ 2 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 2 + inPos)) ) & 255);
out[ 3 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 3 + inPos)) ) & 255);
out[ 4 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 4 + inPos)) ) & 255);
out[ 5 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 5 + inPos)) ) & 255);
out[ 6 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 6 + inPos)) ) & 255);
out[ 7 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 7 + inPos)) ) & 255);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 0 + inPos]) ) & 255);
out[ 1 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 1 + inPos]) ) & 255);
out[ 2 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 2 + inPos]) ) & 255);
out[ 3 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 3 + inPos]) ) & 255);
out[ 4 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 4 + inPos]) ) & 255);
out[ 5 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 5 + inPos]) ) & 255);
out[ 6 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 6 + inPos]) ) & 255);
out[ 7 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 7 + inPos]) ) & 255);
out[ 8 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 8 + inPos]) ) & 255);
out[ 9 + outPos] =
// [76543210]
// [76543210]
((((int)in[ 9 + inPos]) ) & 255);
out[10 + outPos] =
// [76543210]
// [76543210]
((((int)in[10 + inPos]) ) & 255);
out[11 + outPos] =
// [76543210]
// [76543210]
((((int)in[11 + inPos]) ) & 255);
out[12 + outPos] =
// [76543210]
// [76543210]
((((int)in[12 + inPos]) ) & 255);
out[13 + outPos] =
// [76543210]
// [76543210]
((((int)in[13 + inPos]) ) & 255);
out[14 + outPos] =
// [76543210]
// [76543210]
((((int)in[14 + inPos]) ) & 255);
out[15 + outPos] =
// [76543210]
// [76543210]
((((int)in[15 + inPos]) ) & 255);
out[16 + outPos] =
// [76543210]
// [76543210]
((((int)in[16 + inPos]) ) & 255);
out[17 + outPos] =
// [76543210]
// [76543210]
((((int)in[17 + inPos]) ) & 255);
out[18 + outPos] =
// [76543210]
// [76543210]
((((int)in[18 + inPos]) ) & 255);
out[19 + outPos] =
// [76543210]
// [76543210]
((((int)in[19 + inPos]) ) & 255);
out[20 + outPos] =
// [76543210]
// [76543210]
((((int)in[20 + inPos]) ) & 255);
out[21 + outPos] =
// [76543210]
// [76543210]
((((int)in[21 + inPos]) ) & 255);
out[22 + outPos] =
// [76543210]
// [76543210]
((((int)in[22 + inPos]) ) & 255);
out[23 + outPos] =
// [76543210]
// [76543210]
((((int)in[23 + inPos]) ) & 255);
out[24 + outPos] =
// [76543210]
// [76543210]
((((int)in[24 + inPos]) ) & 255);
out[25 + outPos] =
// [76543210]
// [76543210]
((((int)in[25 + inPos]) ) & 255);
out[26 + outPos] =
// [76543210]
// [76543210]
((((int)in[26 + inPos]) ) & 255);
out[27 + outPos] =
// [76543210]
// [76543210]
((((int)in[27 + inPos]) ) & 255);
out[28 + outPos] =
// [76543210]
// [76543210]
((((int)in[28 + inPos]) ) & 255);
out[29 + outPos] =
// [76543210]
// [76543210]
((((int)in[29 + inPos]) ) & 255);
out[30 + outPos] =
// [76543210]
// [76543210]
((((int)in[30 + inPos]) ) & 255);
out[31 + outPos] =
// [76543210]
// [76543210]
((((int)in[31 + inPos]) ) & 255);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 0 + inPos)) ) & 255);
out[ 1 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 1 + inPos)) ) & 255);
out[ 2 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 2 + inPos)) ) & 255);
out[ 3 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 3 + inPos)) ) & 255);
out[ 4 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 4 + inPos)) ) & 255);
out[ 5 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 5 + inPos)) ) & 255);
out[ 6 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 6 + inPos)) ) & 255);
out[ 7 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 7 + inPos)) ) & 255);
out[ 8 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 8 + inPos)) ) & 255);
out[ 9 + outPos] =
// [76543210]
// [76543210]
((((int)in.get( 9 + inPos)) ) & 255);
out[10 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(10 + inPos)) ) & 255);
out[11 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(11 + inPos)) ) & 255);
out[12 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(12 + inPos)) ) & 255);
out[13 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(13 + inPos)) ) & 255);
out[14 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(14 + inPos)) ) & 255);
out[15 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(15 + inPos)) ) & 255);
out[16 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(16 + inPos)) ) & 255);
out[17 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(17 + inPos)) ) & 255);
out[18 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(18 + inPos)) ) & 255);
out[19 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(19 + inPos)) ) & 255);
out[20 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(20 + inPos)) ) & 255);
out[21 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(21 + inPos)) ) & 255);
out[22 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(22 + inPos)) ) & 255);
out[23 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(23 + inPos)) ) & 255);
out[24 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(24 + inPos)) ) & 255);
out[25 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(25 + inPos)) ) & 255);
out[26 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(26 + inPos)) ) & 255);
out[27 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(27 + inPos)) ) & 255);
out[28 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(28 + inPos)) ) & 255);
out[29 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(29 + inPos)) ) & 255);
out[30 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(30 + inPos)) ) & 255);
out[31 + outPos] =
// [76543210]
// [76543210]
((((int)in.get(31 + inPos)) ) & 255);
}
}
private static final class Packer9 extends BytePacker {
private Packer9() {
super(9);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_76543210]
((in[ 0 + inPos] & 511))) & 255);
out[ 1 + outPos] = (byte)((
// [_______0]
// [8________]
((in[ 0 + inPos] & 511) >>> 8)
| // [7654321_]
// [__6543210]
((in[ 1 + inPos] & 511) << 1)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [87_______]
((in[ 1 + inPos] & 511) >>> 7)
| // [765432__]
// [___543210]
((in[ 2 + inPos] & 511) << 2)) & 255);
out[ 3 + outPos] = (byte)((
// [_____210]
// [876______]
((in[ 2 + inPos] & 511) >>> 6)
| // [76543___]
// [____43210]
((in[ 3 + inPos] & 511) << 3)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [8765_____]
((in[ 3 + inPos] & 511) >>> 5)
| // [7654____]
// [_____3210]
((in[ 4 + inPos] & 511) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [___43210]
// [87654____]
((in[ 4 + inPos] & 511) >>> 4)
| // [765_____]
// [______210]
((in[ 5 + inPos] & 511) << 5)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [876543___]
((in[ 5 + inPos] & 511) >>> 3)
| // [76______]
// [_______10]
((in[ 6 + inPos] & 511) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [_6543210]
// [8765432__]
((in[ 6 + inPos] & 511) >>> 2)
| // [7_______]
// [________0]
((in[ 7 + inPos] & 511) << 7)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [87654321_]
((in[ 7 + inPos] & 511) >>> 1)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_76543210]
((in[ 0 + inPos] & 511))) & 255);
out[ 1 + outPos] = (byte)((
// [_______0]
// [8________]
((in[ 0 + inPos] & 511) >>> 8)
| // [7654321_]
// [__6543210]
((in[ 1 + inPos] & 511) << 1)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [87_______]
((in[ 1 + inPos] & 511) >>> 7)
| // [765432__]
// [___543210]
((in[ 2 + inPos] & 511) << 2)) & 255);
out[ 3 + outPos] = (byte)((
// [_____210]
// [876______]
((in[ 2 + inPos] & 511) >>> 6)
| // [76543___]
// [____43210]
((in[ 3 + inPos] & 511) << 3)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [8765_____]
((in[ 3 + inPos] & 511) >>> 5)
| // [7654____]
// [_____3210]
((in[ 4 + inPos] & 511) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [___43210]
// [87654____]
((in[ 4 + inPos] & 511) >>> 4)
| // [765_____]
// [______210]
((in[ 5 + inPos] & 511) << 5)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [876543___]
((in[ 5 + inPos] & 511) >>> 3)
| // [76______]
// [_______10]
((in[ 6 + inPos] & 511) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [_6543210]
// [8765432__]
((in[ 6 + inPos] & 511) >>> 2)
| // [7_______]
// [________0]
((in[ 7 + inPos] & 511) << 7)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [87654321_]
((in[ 7 + inPos] & 511) >>> 1)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_76543210]
((in[ 8 + inPos] & 511))) & 255);
out[10 + outPos] = (byte)((
// [_______0]
// [8________]
((in[ 8 + inPos] & 511) >>> 8)
| // [7654321_]
// [__6543210]
((in[ 9 + inPos] & 511) << 1)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [87_______]
((in[ 9 + inPos] & 511) >>> 7)
| // [765432__]
// [___543210]
((in[10 + inPos] & 511) << 2)) & 255);
out[12 + outPos] = (byte)((
// [_____210]
// [876______]
((in[10 + inPos] & 511) >>> 6)
| // [76543___]
// [____43210]
((in[11 + inPos] & 511) << 3)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [8765_____]
((in[11 + inPos] & 511) >>> 5)
| // [7654____]
// [_____3210]
((in[12 + inPos] & 511) << 4)) & 255);
out[14 + outPos] = (byte)((
// [___43210]
// [87654____]
((in[12 + inPos] & 511) >>> 4)
| // [765_____]
// [______210]
((in[13 + inPos] & 511) << 5)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [876543___]
((in[13 + inPos] & 511) >>> 3)
| // [76______]
// [_______10]
((in[14 + inPos] & 511) << 6)) & 255);
out[16 + outPos] = (byte)((
// [_6543210]
// [8765432__]
((in[14 + inPos] & 511) >>> 2)
| // [7_______]
// [________0]
((in[15 + inPos] & 511) << 7)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [87654321_]
((in[15 + inPos] & 511) >>> 1)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [_76543210]
((in[16 + inPos] & 511))) & 255);
out[19 + outPos] = (byte)((
// [_______0]
// [8________]
((in[16 + inPos] & 511) >>> 8)
| // [7654321_]
// [__6543210]
((in[17 + inPos] & 511) << 1)) & 255);
out[20 + outPos] = (byte)((
// [______10]
// [87_______]
((in[17 + inPos] & 511) >>> 7)
| // [765432__]
// [___543210]
((in[18 + inPos] & 511) << 2)) & 255);
out[21 + outPos] = (byte)((
// [_____210]
// [876______]
((in[18 + inPos] & 511) >>> 6)
| // [76543___]
// [____43210]
((in[19 + inPos] & 511) << 3)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [8765_____]
((in[19 + inPos] & 511) >>> 5)
| // [7654____]
// [_____3210]
((in[20 + inPos] & 511) << 4)) & 255);
out[23 + outPos] = (byte)((
// [___43210]
// [87654____]
((in[20 + inPos] & 511) >>> 4)
| // [765_____]
// [______210]
((in[21 + inPos] & 511) << 5)) & 255);
out[24 + outPos] = (byte)((
// [__543210]
// [876543___]
((in[21 + inPos] & 511) >>> 3)
| // [76______]
// [_______10]
((in[22 + inPos] & 511) << 6)) & 255);
out[25 + outPos] = (byte)((
// [_6543210]
// [8765432__]
((in[22 + inPos] & 511) >>> 2)
| // [7_______]
// [________0]
((in[23 + inPos] & 511) << 7)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [87654321_]
((in[23 + inPos] & 511) >>> 1)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [_76543210]
((in[24 + inPos] & 511))) & 255);
out[28 + outPos] = (byte)((
// [_______0]
// [8________]
((in[24 + inPos] & 511) >>> 8)
| // [7654321_]
// [__6543210]
((in[25 + inPos] & 511) << 1)) & 255);
out[29 + outPos] = (byte)((
// [______10]
// [87_______]
((in[25 + inPos] & 511) >>> 7)
| // [765432__]
// [___543210]
((in[26 + inPos] & 511) << 2)) & 255);
out[30 + outPos] = (byte)((
// [_____210]
// [876______]
((in[26 + inPos] & 511) >>> 6)
| // [76543___]
// [____43210]
((in[27 + inPos] & 511) << 3)) & 255);
out[31 + outPos] = (byte)((
// [____3210]
// [8765_____]
((in[27 + inPos] & 511) >>> 5)
| // [7654____]
// [_____3210]
((in[28 + inPos] & 511) << 4)) & 255);
out[32 + outPos] = (byte)((
// [___43210]
// [87654____]
((in[28 + inPos] & 511) >>> 4)
| // [765_____]
// [______210]
((in[29 + inPos] & 511) << 5)) & 255);
out[33 + outPos] = (byte)((
// [__543210]
// [876543___]
((in[29 + inPos] & 511) >>> 3)
| // [76______]
// [_______10]
((in[30 + inPos] & 511) << 6)) & 255);
out[34 + outPos] = (byte)((
// [_6543210]
// [8765432__]
((in[30 + inPos] & 511) >>> 2)
| // [7_______]
// [________0]
((in[31 + inPos] & 511) << 7)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [87654321_]
((in[31 + inPos] & 511) >>> 1)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [_______0]
// [8________]
((((int)in[ 1 + inPos]) << 8) & 511);
out[ 1 + outPos] =
// [7654321_]
// [__6543210]
((((int)in[ 1 + inPos]) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in[ 2 + inPos]) << 7) & 511);
out[ 2 + outPos] =
// [765432__]
// [___543210]
((((int)in[ 2 + inPos]) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in[ 3 + inPos]) << 6) & 511);
out[ 3 + outPos] =
// [76543___]
// [____43210]
((((int)in[ 3 + inPos]) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in[ 4 + inPos]) << 5) & 511);
out[ 4 + outPos] =
// [7654____]
// [_____3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in[ 5 + inPos]) << 4) & 511);
out[ 5 + outPos] =
// [765_____]
// [______210]
((((int)in[ 5 + inPos]) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in[ 6 + inPos]) << 3) & 511);
out[ 6 + outPos] =
// [76______]
// [_______10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in[ 7 + inPos]) << 2) & 511);
out[ 7 + outPos] =
// [7_______]
// [________0]
((((int)in[ 7 + inPos]) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in[ 8 + inPos]) << 1) & 511);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [_______0]
// [8________]
((((int)in.get( 1 + inPos)) << 8) & 511);
out[ 1 + outPos] =
// [7654321_]
// [__6543210]
((((int)in.get( 1 + inPos)) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in.get( 2 + inPos)) << 7) & 511);
out[ 2 + outPos] =
// [765432__]
// [___543210]
((((int)in.get( 2 + inPos)) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in.get( 3 + inPos)) << 6) & 511);
out[ 3 + outPos] =
// [76543___]
// [____43210]
((((int)in.get( 3 + inPos)) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in.get( 4 + inPos)) << 5) & 511);
out[ 4 + outPos] =
// [7654____]
// [_____3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in.get( 5 + inPos)) << 4) & 511);
out[ 5 + outPos] =
// [765_____]
// [______210]
((((int)in.get( 5 + inPos)) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in.get( 6 + inPos)) << 3) & 511);
out[ 6 + outPos] =
// [76______]
// [_______10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in.get( 7 + inPos)) << 2) & 511);
out[ 7 + outPos] =
// [7_______]
// [________0]
((((int)in.get( 7 + inPos)) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in.get( 8 + inPos)) << 1) & 511);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [_______0]
// [8________]
((((int)in[ 1 + inPos]) << 8) & 511);
out[ 1 + outPos] =
// [7654321_]
// [__6543210]
((((int)in[ 1 + inPos]) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in[ 2 + inPos]) << 7) & 511);
out[ 2 + outPos] =
// [765432__]
// [___543210]
((((int)in[ 2 + inPos]) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in[ 3 + inPos]) << 6) & 511);
out[ 3 + outPos] =
// [76543___]
// [____43210]
((((int)in[ 3 + inPos]) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in[ 4 + inPos]) << 5) & 511);
out[ 4 + outPos] =
// [7654____]
// [_____3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in[ 5 + inPos]) << 4) & 511);
out[ 5 + outPos] =
// [765_____]
// [______210]
((((int)in[ 5 + inPos]) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in[ 6 + inPos]) << 3) & 511);
out[ 6 + outPos] =
// [76______]
// [_______10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in[ 7 + inPos]) << 2) & 511);
out[ 7 + outPos] =
// [7_______]
// [________0]
((((int)in[ 7 + inPos]) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in[ 8 + inPos]) << 1) & 511);
out[ 8 + outPos] =
// [76543210]
// [_76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [_______0]
// [8________]
((((int)in[10 + inPos]) << 8) & 511);
out[ 9 + outPos] =
// [7654321_]
// [__6543210]
((((int)in[10 + inPos]) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in[11 + inPos]) << 7) & 511);
out[10 + outPos] =
// [765432__]
// [___543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in[12 + inPos]) << 6) & 511);
out[11 + outPos] =
// [76543___]
// [____43210]
((((int)in[12 + inPos]) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in[13 + inPos]) << 5) & 511);
out[12 + outPos] =
// [7654____]
// [_____3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in[14 + inPos]) << 4) & 511);
out[13 + outPos] =
// [765_____]
// [______210]
((((int)in[14 + inPos]) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in[15 + inPos]) << 3) & 511);
out[14 + outPos] =
// [76______]
// [_______10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in[16 + inPos]) << 2) & 511);
out[15 + outPos] =
// [7_______]
// [________0]
((((int)in[16 + inPos]) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in[17 + inPos]) << 1) & 511);
out[16 + outPos] =
// [76543210]
// [_76543210]
((((int)in[18 + inPos]) ) & 255)
| // [_______0]
// [8________]
((((int)in[19 + inPos]) << 8) & 511);
out[17 + outPos] =
// [7654321_]
// [__6543210]
((((int)in[19 + inPos]) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in[20 + inPos]) << 7) & 511);
out[18 + outPos] =
// [765432__]
// [___543210]
((((int)in[20 + inPos]) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in[21 + inPos]) << 6) & 511);
out[19 + outPos] =
// [76543___]
// [____43210]
((((int)in[21 + inPos]) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in[22 + inPos]) << 5) & 511);
out[20 + outPos] =
// [7654____]
// [_____3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in[23 + inPos]) << 4) & 511);
out[21 + outPos] =
// [765_____]
// [______210]
((((int)in[23 + inPos]) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in[24 + inPos]) << 3) & 511);
out[22 + outPos] =
// [76______]
// [_______10]
((((int)in[24 + inPos]) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in[25 + inPos]) << 2) & 511);
out[23 + outPos] =
// [7_______]
// [________0]
((((int)in[25 + inPos]) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in[26 + inPos]) << 1) & 511);
out[24 + outPos] =
// [76543210]
// [_76543210]
((((int)in[27 + inPos]) ) & 255)
| // [_______0]
// [8________]
((((int)in[28 + inPos]) << 8) & 511);
out[25 + outPos] =
// [7654321_]
// [__6543210]
((((int)in[28 + inPos]) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in[29 + inPos]) << 7) & 511);
out[26 + outPos] =
// [765432__]
// [___543210]
((((int)in[29 + inPos]) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in[30 + inPos]) << 6) & 511);
out[27 + outPos] =
// [76543___]
// [____43210]
((((int)in[30 + inPos]) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in[31 + inPos]) << 5) & 511);
out[28 + outPos] =
// [7654____]
// [_____3210]
((((int)in[31 + inPos]) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in[32 + inPos]) << 4) & 511);
out[29 + outPos] =
// [765_____]
// [______210]
((((int)in[32 + inPos]) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in[33 + inPos]) << 3) & 511);
out[30 + outPos] =
// [76______]
// [_______10]
((((int)in[33 + inPos]) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in[34 + inPos]) << 2) & 511);
out[31 + outPos] =
// [7_______]
// [________0]
((((int)in[34 + inPos]) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in[35 + inPos]) << 1) & 511);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [_______0]
// [8________]
((((int)in.get( 1 + inPos)) << 8) & 511);
out[ 1 + outPos] =
// [7654321_]
// [__6543210]
((((int)in.get( 1 + inPos)) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in.get( 2 + inPos)) << 7) & 511);
out[ 2 + outPos] =
// [765432__]
// [___543210]
((((int)in.get( 2 + inPos)) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in.get( 3 + inPos)) << 6) & 511);
out[ 3 + outPos] =
// [76543___]
// [____43210]
((((int)in.get( 3 + inPos)) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in.get( 4 + inPos)) << 5) & 511);
out[ 4 + outPos] =
// [7654____]
// [_____3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in.get( 5 + inPos)) << 4) & 511);
out[ 5 + outPos] =
// [765_____]
// [______210]
((((int)in.get( 5 + inPos)) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in.get( 6 + inPos)) << 3) & 511);
out[ 6 + outPos] =
// [76______]
// [_______10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in.get( 7 + inPos)) << 2) & 511);
out[ 7 + outPos] =
// [7_______]
// [________0]
((((int)in.get( 7 + inPos)) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in.get( 8 + inPos)) << 1) & 511);
out[ 8 + outPos] =
// [76543210]
// [_76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [_______0]
// [8________]
((((int)in.get(10 + inPos)) << 8) & 511);
out[ 9 + outPos] =
// [7654321_]
// [__6543210]
((((int)in.get(10 + inPos)) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in.get(11 + inPos)) << 7) & 511);
out[10 + outPos] =
// [765432__]
// [___543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in.get(12 + inPos)) << 6) & 511);
out[11 + outPos] =
// [76543___]
// [____43210]
((((int)in.get(12 + inPos)) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in.get(13 + inPos)) << 5) & 511);
out[12 + outPos] =
// [7654____]
// [_____3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in.get(14 + inPos)) << 4) & 511);
out[13 + outPos] =
// [765_____]
// [______210]
((((int)in.get(14 + inPos)) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in.get(15 + inPos)) << 3) & 511);
out[14 + outPos] =
// [76______]
// [_______10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in.get(16 + inPos)) << 2) & 511);
out[15 + outPos] =
// [7_______]
// [________0]
((((int)in.get(16 + inPos)) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in.get(17 + inPos)) << 1) & 511);
out[16 + outPos] =
// [76543210]
// [_76543210]
((((int)in.get(18 + inPos)) ) & 255)
| // [_______0]
// [8________]
((((int)in.get(19 + inPos)) << 8) & 511);
out[17 + outPos] =
// [7654321_]
// [__6543210]
((((int)in.get(19 + inPos)) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in.get(20 + inPos)) << 7) & 511);
out[18 + outPos] =
// [765432__]
// [___543210]
((((int)in.get(20 + inPos)) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in.get(21 + inPos)) << 6) & 511);
out[19 + outPos] =
// [76543___]
// [____43210]
((((int)in.get(21 + inPos)) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in.get(22 + inPos)) << 5) & 511);
out[20 + outPos] =
// [7654____]
// [_____3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in.get(23 + inPos)) << 4) & 511);
out[21 + outPos] =
// [765_____]
// [______210]
((((int)in.get(23 + inPos)) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in.get(24 + inPos)) << 3) & 511);
out[22 + outPos] =
// [76______]
// [_______10]
((((int)in.get(24 + inPos)) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in.get(25 + inPos)) << 2) & 511);
out[23 + outPos] =
// [7_______]
// [________0]
((((int)in.get(25 + inPos)) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in.get(26 + inPos)) << 1) & 511);
out[24 + outPos] =
// [76543210]
// [_76543210]
((((int)in.get(27 + inPos)) ) & 255)
| // [_______0]
// [8________]
((((int)in.get(28 + inPos)) << 8) & 511);
out[25 + outPos] =
// [7654321_]
// [__6543210]
((((int)in.get(28 + inPos)) >> 1) & 127)
| // [______10]
// [87_______]
((((int)in.get(29 + inPos)) << 7) & 511);
out[26 + outPos] =
// [765432__]
// [___543210]
((((int)in.get(29 + inPos)) >> 2) & 63)
| // [_____210]
// [876______]
((((int)in.get(30 + inPos)) << 6) & 511);
out[27 + outPos] =
// [76543___]
// [____43210]
((((int)in.get(30 + inPos)) >> 3) & 31)
| // [____3210]
// [8765_____]
((((int)in.get(31 + inPos)) << 5) & 511);
out[28 + outPos] =
// [7654____]
// [_____3210]
((((int)in.get(31 + inPos)) >> 4) & 15)
| // [___43210]
// [87654____]
((((int)in.get(32 + inPos)) << 4) & 511);
out[29 + outPos] =
// [765_____]
// [______210]
((((int)in.get(32 + inPos)) >> 5) & 7)
| // [__543210]
// [876543___]
((((int)in.get(33 + inPos)) << 3) & 511);
out[30 + outPos] =
// [76______]
// [_______10]
((((int)in.get(33 + inPos)) >> 6) & 3)
| // [_6543210]
// [8765432__]
((((int)in.get(34 + inPos)) << 2) & 511);
out[31 + outPos] =
// [7_______]
// [________0]
((((int)in.get(34 + inPos)) >> 7) & 1)
| // [76543210]
// [87654321_]
((((int)in.get(35 + inPos)) << 1) & 511);
}
}
private static final class Packer10 extends BytePacker {
private Packer10() {
super(10);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[ 0 + inPos] & 1023))) & 255);
out[ 1 + outPos] = (byte)((
// [______10]
// [98________]
((in[ 0 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[ 1 + inPos] & 1023) << 2)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[ 1 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[ 2 + inPos] & 1023) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[ 2 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[ 3 + inPos] & 1023) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[ 3 + inPos] & 1023) >>> 2)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[ 4 + inPos] & 1023))) & 255);
out[ 6 + outPos] = (byte)((
// [______10]
// [98________]
((in[ 4 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[ 5 + inPos] & 1023) << 2)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[ 5 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[ 6 + inPos] & 1023) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[ 6 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[ 7 + inPos] & 1023) << 6)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[ 7 + inPos] & 1023) >>> 2)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[ 0 + inPos] & 1023))) & 255);
out[ 1 + outPos] = (byte)((
// [______10]
// [98________]
((in[ 0 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[ 1 + inPos] & 1023) << 2)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[ 1 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[ 2 + inPos] & 1023) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[ 2 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[ 3 + inPos] & 1023) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[ 3 + inPos] & 1023) >>> 2)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[ 4 + inPos] & 1023))) & 255);
out[ 6 + outPos] = (byte)((
// [______10]
// [98________]
((in[ 4 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[ 5 + inPos] & 1023) << 2)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[ 5 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[ 6 + inPos] & 1023) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[ 6 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[ 7 + inPos] & 1023) << 6)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[ 7 + inPos] & 1023) >>> 2)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[ 8 + inPos] & 1023))) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [98________]
((in[ 8 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[ 9 + inPos] & 1023) << 2)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[ 9 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[10 + inPos] & 1023) << 4)) & 255);
out[13 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[10 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[11 + inPos] & 1023) << 6)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[11 + inPos] & 1023) >>> 2)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[12 + inPos] & 1023))) & 255);
out[16 + outPos] = (byte)((
// [______10]
// [98________]
((in[12 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[13 + inPos] & 1023) << 2)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[13 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[14 + inPos] & 1023) << 4)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[14 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[15 + inPos] & 1023) << 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[15 + inPos] & 1023) >>> 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[16 + inPos] & 1023))) & 255);
out[21 + outPos] = (byte)((
// [______10]
// [98________]
((in[16 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[17 + inPos] & 1023) << 2)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[17 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[18 + inPos] & 1023) << 4)) & 255);
out[23 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[18 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[19 + inPos] & 1023) << 6)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[19 + inPos] & 1023) >>> 2)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[20 + inPos] & 1023))) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [98________]
((in[20 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[21 + inPos] & 1023) << 2)) & 255);
out[27 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[21 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[22 + inPos] & 1023) << 4)) & 255);
out[28 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[22 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[23 + inPos] & 1023) << 6)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[23 + inPos] & 1023) >>> 2)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[24 + inPos] & 1023))) & 255);
out[31 + outPos] = (byte)((
// [______10]
// [98________]
((in[24 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[25 + inPos] & 1023) << 2)) & 255);
out[32 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[25 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[26 + inPos] & 1023) << 4)) & 255);
out[33 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[26 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[27 + inPos] & 1023) << 6)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[27 + inPos] & 1023) >>> 2)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [__76543210]
((in[28 + inPos] & 1023))) & 255);
out[36 + outPos] = (byte)((
// [______10]
// [98________]
((in[28 + inPos] & 1023) >>> 8)
| // [765432__]
// [____543210]
((in[29 + inPos] & 1023) << 2)) & 255);
out[37 + outPos] = (byte)((
// [____3210]
// [9876______]
((in[29 + inPos] & 1023) >>> 6)
| // [7654____]
// [______3210]
((in[30 + inPos] & 1023) << 4)) & 255);
out[38 + outPos] = (byte)((
// [__543210]
// [987654____]
((in[30 + inPos] & 1023) >>> 4)
| // [76______]
// [________10]
((in[31 + inPos] & 1023) << 6)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [98765432__]
((in[31 + inPos] & 1023) >>> 2)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[ 1 + inPos]) << 8) & 1023);
out[ 1 + outPos] =
// [765432__]
// [____543210]
((((int)in[ 1 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[ 2 + inPos]) << 6) & 1023);
out[ 2 + outPos] =
// [7654____]
// [______3210]
((((int)in[ 2 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[ 3 + inPos]) << 4) & 1023);
out[ 3 + outPos] =
// [76______]
// [________10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[ 4 + inPos]) << 2) & 1023);
out[ 4 + outPos] =
// [76543210]
// [__76543210]
((((int)in[ 5 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[ 6 + inPos]) << 8) & 1023);
out[ 5 + outPos] =
// [765432__]
// [____543210]
((((int)in[ 6 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[ 7 + inPos]) << 6) & 1023);
out[ 6 + outPos] =
// [7654____]
// [______3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[ 8 + inPos]) << 4) & 1023);
out[ 7 + outPos] =
// [76______]
// [________10]
((((int)in[ 8 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[ 9 + inPos]) << 2) & 1023);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get( 1 + inPos)) << 8) & 1023);
out[ 1 + outPos] =
// [765432__]
// [____543210]
((((int)in.get( 1 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get( 2 + inPos)) << 6) & 1023);
out[ 2 + outPos] =
// [7654____]
// [______3210]
((((int)in.get( 2 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get( 3 + inPos)) << 4) & 1023);
out[ 3 + outPos] =
// [76______]
// [________10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get( 4 + inPos)) << 2) & 1023);
out[ 4 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get( 5 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get( 6 + inPos)) << 8) & 1023);
out[ 5 + outPos] =
// [765432__]
// [____543210]
((((int)in.get( 6 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get( 7 + inPos)) << 6) & 1023);
out[ 6 + outPos] =
// [7654____]
// [______3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get( 8 + inPos)) << 4) & 1023);
out[ 7 + outPos] =
// [76______]
// [________10]
((((int)in.get( 8 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get( 9 + inPos)) << 2) & 1023);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[ 1 + inPos]) << 8) & 1023);
out[ 1 + outPos] =
// [765432__]
// [____543210]
((((int)in[ 1 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[ 2 + inPos]) << 6) & 1023);
out[ 2 + outPos] =
// [7654____]
// [______3210]
((((int)in[ 2 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[ 3 + inPos]) << 4) & 1023);
out[ 3 + outPos] =
// [76______]
// [________10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[ 4 + inPos]) << 2) & 1023);
out[ 4 + outPos] =
// [76543210]
// [__76543210]
((((int)in[ 5 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[ 6 + inPos]) << 8) & 1023);
out[ 5 + outPos] =
// [765432__]
// [____543210]
((((int)in[ 6 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[ 7 + inPos]) << 6) & 1023);
out[ 6 + outPos] =
// [7654____]
// [______3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[ 8 + inPos]) << 4) & 1023);
out[ 7 + outPos] =
// [76______]
// [________10]
((((int)in[ 8 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[ 9 + inPos]) << 2) & 1023);
out[ 8 + outPos] =
// [76543210]
// [__76543210]
((((int)in[10 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[11 + inPos]) << 8) & 1023);
out[ 9 + outPos] =
// [765432__]
// [____543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[12 + inPos]) << 6) & 1023);
out[10 + outPos] =
// [7654____]
// [______3210]
((((int)in[12 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[13 + inPos]) << 4) & 1023);
out[11 + outPos] =
// [76______]
// [________10]
((((int)in[13 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[14 + inPos]) << 2) & 1023);
out[12 + outPos] =
// [76543210]
// [__76543210]
((((int)in[15 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[16 + inPos]) << 8) & 1023);
out[13 + outPos] =
// [765432__]
// [____543210]
((((int)in[16 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[17 + inPos]) << 6) & 1023);
out[14 + outPos] =
// [7654____]
// [______3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[18 + inPos]) << 4) & 1023);
out[15 + outPos] =
// [76______]
// [________10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[19 + inPos]) << 2) & 1023);
out[16 + outPos] =
// [76543210]
// [__76543210]
((((int)in[20 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[21 + inPos]) << 8) & 1023);
out[17 + outPos] =
// [765432__]
// [____543210]
((((int)in[21 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[22 + inPos]) << 6) & 1023);
out[18 + outPos] =
// [7654____]
// [______3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[23 + inPos]) << 4) & 1023);
out[19 + outPos] =
// [76______]
// [________10]
((((int)in[23 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[24 + inPos]) << 2) & 1023);
out[20 + outPos] =
// [76543210]
// [__76543210]
((((int)in[25 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[26 + inPos]) << 8) & 1023);
out[21 + outPos] =
// [765432__]
// [____543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[27 + inPos]) << 6) & 1023);
out[22 + outPos] =
// [7654____]
// [______3210]
((((int)in[27 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[28 + inPos]) << 4) & 1023);
out[23 + outPos] =
// [76______]
// [________10]
((((int)in[28 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[29 + inPos]) << 2) & 1023);
out[24 + outPos] =
// [76543210]
// [__76543210]
((((int)in[30 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[31 + inPos]) << 8) & 1023);
out[25 + outPos] =
// [765432__]
// [____543210]
((((int)in[31 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[32 + inPos]) << 6) & 1023);
out[26 + outPos] =
// [7654____]
// [______3210]
((((int)in[32 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[33 + inPos]) << 4) & 1023);
out[27 + outPos] =
// [76______]
// [________10]
((((int)in[33 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[34 + inPos]) << 2) & 1023);
out[28 + outPos] =
// [76543210]
// [__76543210]
((((int)in[35 + inPos]) ) & 255)
| // [______10]
// [98________]
((((int)in[36 + inPos]) << 8) & 1023);
out[29 + outPos] =
// [765432__]
// [____543210]
((((int)in[36 + inPos]) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in[37 + inPos]) << 6) & 1023);
out[30 + outPos] =
// [7654____]
// [______3210]
((((int)in[37 + inPos]) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in[38 + inPos]) << 4) & 1023);
out[31 + outPos] =
// [76______]
// [________10]
((((int)in[38 + inPos]) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in[39 + inPos]) << 2) & 1023);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get( 1 + inPos)) << 8) & 1023);
out[ 1 + outPos] =
// [765432__]
// [____543210]
((((int)in.get( 1 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get( 2 + inPos)) << 6) & 1023);
out[ 2 + outPos] =
// [7654____]
// [______3210]
((((int)in.get( 2 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get( 3 + inPos)) << 4) & 1023);
out[ 3 + outPos] =
// [76______]
// [________10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get( 4 + inPos)) << 2) & 1023);
out[ 4 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get( 5 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get( 6 + inPos)) << 8) & 1023);
out[ 5 + outPos] =
// [765432__]
// [____543210]
((((int)in.get( 6 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get( 7 + inPos)) << 6) & 1023);
out[ 6 + outPos] =
// [7654____]
// [______3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get( 8 + inPos)) << 4) & 1023);
out[ 7 + outPos] =
// [76______]
// [________10]
((((int)in.get( 8 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get( 9 + inPos)) << 2) & 1023);
out[ 8 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get(10 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get(11 + inPos)) << 8) & 1023);
out[ 9 + outPos] =
// [765432__]
// [____543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get(12 + inPos)) << 6) & 1023);
out[10 + outPos] =
// [7654____]
// [______3210]
((((int)in.get(12 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get(13 + inPos)) << 4) & 1023);
out[11 + outPos] =
// [76______]
// [________10]
((((int)in.get(13 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get(14 + inPos)) << 2) & 1023);
out[12 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get(16 + inPos)) << 8) & 1023);
out[13 + outPos] =
// [765432__]
// [____543210]
((((int)in.get(16 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get(17 + inPos)) << 6) & 1023);
out[14 + outPos] =
// [7654____]
// [______3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get(18 + inPos)) << 4) & 1023);
out[15 + outPos] =
// [76______]
// [________10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get(19 + inPos)) << 2) & 1023);
out[16 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get(20 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get(21 + inPos)) << 8) & 1023);
out[17 + outPos] =
// [765432__]
// [____543210]
((((int)in.get(21 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get(22 + inPos)) << 6) & 1023);
out[18 + outPos] =
// [7654____]
// [______3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get(23 + inPos)) << 4) & 1023);
out[19 + outPos] =
// [76______]
// [________10]
((((int)in.get(23 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get(24 + inPos)) << 2) & 1023);
out[20 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get(25 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get(26 + inPos)) << 8) & 1023);
out[21 + outPos] =
// [765432__]
// [____543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get(27 + inPos)) << 6) & 1023);
out[22 + outPos] =
// [7654____]
// [______3210]
((((int)in.get(27 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get(28 + inPos)) << 4) & 1023);
out[23 + outPos] =
// [76______]
// [________10]
((((int)in.get(28 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get(29 + inPos)) << 2) & 1023);
out[24 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get(31 + inPos)) << 8) & 1023);
out[25 + outPos] =
// [765432__]
// [____543210]
((((int)in.get(31 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get(32 + inPos)) << 6) & 1023);
out[26 + outPos] =
// [7654____]
// [______3210]
((((int)in.get(32 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get(33 + inPos)) << 4) & 1023);
out[27 + outPos] =
// [76______]
// [________10]
((((int)in.get(33 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get(34 + inPos)) << 2) & 1023);
out[28 + outPos] =
// [76543210]
// [__76543210]
((((int)in.get(35 + inPos)) ) & 255)
| // [______10]
// [98________]
((((int)in.get(36 + inPos)) << 8) & 1023);
out[29 + outPos] =
// [765432__]
// [____543210]
((((int)in.get(36 + inPos)) >> 2) & 63)
| // [____3210]
// [9876______]
((((int)in.get(37 + inPos)) << 6) & 1023);
out[30 + outPos] =
// [7654____]
// [______3210]
((((int)in.get(37 + inPos)) >> 4) & 15)
| // [__543210]
// [987654____]
((((int)in.get(38 + inPos)) << 4) & 1023);
out[31 + outPos] =
// [76______]
// [________10]
((((int)in.get(38 + inPos)) >> 6) & 3)
| // [76543210]
// [98765432__]
((((int)in.get(39 + inPos)) << 2) & 1023);
}
}
private static final class Packer11 extends BytePacker {
private Packer11() {
super(11);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [___76543210]
((in[ 0 + inPos] & 2047))) & 255);
out[ 1 + outPos] = (byte)((
// [_____210]
// [098________]
((in[ 0 + inPos] & 2047) >>> 8)
| // [76543___]
// [______43210]
((in[ 1 + inPos] & 2047) << 3)) & 255);
out[ 2 + outPos] = (byte)((
// [__543210]
// [098765_____]
((in[ 1 + inPos] & 2047) >>> 5)
| // [76______]
// [_________10]
((in[ 2 + inPos] & 2047) << 6)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [_98765432__]
((in[ 2 + inPos] & 2047) >>> 2)) & 255);
out[ 4 + outPos] = (byte)((
// [_______0]
// [0__________]
((in[ 2 + inPos] & 2047) >>> 10)
| // [7654321_]
// [____6543210]
((in[ 3 + inPos] & 2047) << 1)) & 255);
out[ 5 + outPos] = (byte)((
// [____3210]
// [0987_______]
((in[ 3 + inPos] & 2047) >>> 7)
| // [7654____]
// [_______3210]
((in[ 4 + inPos] & 2047) << 4)) & 255);
out[ 6 + outPos] = (byte)((
// [_6543210]
// [0987654____]
((in[ 4 + inPos] & 2047) >>> 4)
| // [7_______]
// [__________0]
((in[ 5 + inPos] & 2047) << 7)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [__87654321_]
((in[ 5 + inPos] & 2047) >>> 1)) & 255);
out[ 8 + outPos] = (byte)((
// [______10]
// [09_________]
((in[ 5 + inPos] & 2047) >>> 9)
| // [765432__]
// [_____543210]
((in[ 6 + inPos] & 2047) << 2)) & 255);
out[ 9 + outPos] = (byte)((
// [___43210]
// [09876______]
((in[ 6 + inPos] & 2047) >>> 6)
| // [765_____]
// [________210]
((in[ 7 + inPos] & 2047) << 5)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [09876543___]
((in[ 7 + inPos] & 2047) >>> 3)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [___76543210]
((in[ 0 + inPos] & 2047))) & 255);
out[ 1 + outPos] = (byte)((
// [_____210]
// [098________]
((in[ 0 + inPos] & 2047) >>> 8)
| // [76543___]
// [______43210]
((in[ 1 + inPos] & 2047) << 3)) & 255);
out[ 2 + outPos] = (byte)((
// [__543210]
// [098765_____]
((in[ 1 + inPos] & 2047) >>> 5)
| // [76______]
// [_________10]
((in[ 2 + inPos] & 2047) << 6)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [_98765432__]
((in[ 2 + inPos] & 2047) >>> 2)) & 255);
out[ 4 + outPos] = (byte)((
// [_______0]
// [0__________]
((in[ 2 + inPos] & 2047) >>> 10)
| // [7654321_]
// [____6543210]
((in[ 3 + inPos] & 2047) << 1)) & 255);
out[ 5 + outPos] = (byte)((
// [____3210]
// [0987_______]
((in[ 3 + inPos] & 2047) >>> 7)
| // [7654____]
// [_______3210]
((in[ 4 + inPos] & 2047) << 4)) & 255);
out[ 6 + outPos] = (byte)((
// [_6543210]
// [0987654____]
((in[ 4 + inPos] & 2047) >>> 4)
| // [7_______]
// [__________0]
((in[ 5 + inPos] & 2047) << 7)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [__87654321_]
((in[ 5 + inPos] & 2047) >>> 1)) & 255);
out[ 8 + outPos] = (byte)((
// [______10]
// [09_________]
((in[ 5 + inPos] & 2047) >>> 9)
| // [765432__]
// [_____543210]
((in[ 6 + inPos] & 2047) << 2)) & 255);
out[ 9 + outPos] = (byte)((
// [___43210]
// [09876______]
((in[ 6 + inPos] & 2047) >>> 6)
| // [765_____]
// [________210]
((in[ 7 + inPos] & 2047) << 5)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [09876543___]
((in[ 7 + inPos] & 2047) >>> 3)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [___76543210]
((in[ 8 + inPos] & 2047))) & 255);
out[12 + outPos] = (byte)((
// [_____210]
// [098________]
((in[ 8 + inPos] & 2047) >>> 8)
| // [76543___]
// [______43210]
((in[ 9 + inPos] & 2047) << 3)) & 255);
out[13 + outPos] = (byte)((
// [__543210]
// [098765_____]
((in[ 9 + inPos] & 2047) >>> 5)
| // [76______]
// [_________10]
((in[10 + inPos] & 2047) << 6)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [_98765432__]
((in[10 + inPos] & 2047) >>> 2)) & 255);
out[15 + outPos] = (byte)((
// [_______0]
// [0__________]
((in[10 + inPos] & 2047) >>> 10)
| // [7654321_]
// [____6543210]
((in[11 + inPos] & 2047) << 1)) & 255);
out[16 + outPos] = (byte)((
// [____3210]
// [0987_______]
((in[11 + inPos] & 2047) >>> 7)
| // [7654____]
// [_______3210]
((in[12 + inPos] & 2047) << 4)) & 255);
out[17 + outPos] = (byte)((
// [_6543210]
// [0987654____]
((in[12 + inPos] & 2047) >>> 4)
| // [7_______]
// [__________0]
((in[13 + inPos] & 2047) << 7)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__87654321_]
((in[13 + inPos] & 2047) >>> 1)) & 255);
out[19 + outPos] = (byte)((
// [______10]
// [09_________]
((in[13 + inPos] & 2047) >>> 9)
| // [765432__]
// [_____543210]
((in[14 + inPos] & 2047) << 2)) & 255);
out[20 + outPos] = (byte)((
// [___43210]
// [09876______]
((in[14 + inPos] & 2047) >>> 6)
| // [765_____]
// [________210]
((in[15 + inPos] & 2047) << 5)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [09876543___]
((in[15 + inPos] & 2047) >>> 3)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [___76543210]
((in[16 + inPos] & 2047))) & 255);
out[23 + outPos] = (byte)((
// [_____210]
// [098________]
((in[16 + inPos] & 2047) >>> 8)
| // [76543___]
// [______43210]
((in[17 + inPos] & 2047) << 3)) & 255);
out[24 + outPos] = (byte)((
// [__543210]
// [098765_____]
((in[17 + inPos] & 2047) >>> 5)
| // [76______]
// [_________10]
((in[18 + inPos] & 2047) << 6)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [_98765432__]
((in[18 + inPos] & 2047) >>> 2)) & 255);
out[26 + outPos] = (byte)((
// [_______0]
// [0__________]
((in[18 + inPos] & 2047) >>> 10)
| // [7654321_]
// [____6543210]
((in[19 + inPos] & 2047) << 1)) & 255);
out[27 + outPos] = (byte)((
// [____3210]
// [0987_______]
((in[19 + inPos] & 2047) >>> 7)
| // [7654____]
// [_______3210]
((in[20 + inPos] & 2047) << 4)) & 255);
out[28 + outPos] = (byte)((
// [_6543210]
// [0987654____]
((in[20 + inPos] & 2047) >>> 4)
| // [7_______]
// [__________0]
((in[21 + inPos] & 2047) << 7)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [__87654321_]
((in[21 + inPos] & 2047) >>> 1)) & 255);
out[30 + outPos] = (byte)((
// [______10]
// [09_________]
((in[21 + inPos] & 2047) >>> 9)
| // [765432__]
// [_____543210]
((in[22 + inPos] & 2047) << 2)) & 255);
out[31 + outPos] = (byte)((
// [___43210]
// [09876______]
((in[22 + inPos] & 2047) >>> 6)
| // [765_____]
// [________210]
((in[23 + inPos] & 2047) << 5)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [09876543___]
((in[23 + inPos] & 2047) >>> 3)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [___76543210]
((in[24 + inPos] & 2047))) & 255);
out[34 + outPos] = (byte)((
// [_____210]
// [098________]
((in[24 + inPos] & 2047) >>> 8)
| // [76543___]
// [______43210]
((in[25 + inPos] & 2047) << 3)) & 255);
out[35 + outPos] = (byte)((
// [__543210]
// [098765_____]
((in[25 + inPos] & 2047) >>> 5)
| // [76______]
// [_________10]
((in[26 + inPos] & 2047) << 6)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [_98765432__]
((in[26 + inPos] & 2047) >>> 2)) & 255);
out[37 + outPos] = (byte)((
// [_______0]
// [0__________]
((in[26 + inPos] & 2047) >>> 10)
| // [7654321_]
// [____6543210]
((in[27 + inPos] & 2047) << 1)) & 255);
out[38 + outPos] = (byte)((
// [____3210]
// [0987_______]
((in[27 + inPos] & 2047) >>> 7)
| // [7654____]
// [_______3210]
((in[28 + inPos] & 2047) << 4)) & 255);
out[39 + outPos] = (byte)((
// [_6543210]
// [0987654____]
((in[28 + inPos] & 2047) >>> 4)
| // [7_______]
// [__________0]
((in[29 + inPos] & 2047) << 7)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [__87654321_]
((in[29 + inPos] & 2047) >>> 1)) & 255);
out[41 + outPos] = (byte)((
// [______10]
// [09_________]
((in[29 + inPos] & 2047) >>> 9)
| // [765432__]
// [_____543210]
((in[30 + inPos] & 2047) << 2)) & 255);
out[42 + outPos] = (byte)((
// [___43210]
// [09876______]
((in[30 + inPos] & 2047) >>> 6)
| // [765_____]
// [________210]
((in[31 + inPos] & 2047) << 5)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [09876543___]
((in[31 + inPos] & 2047) >>> 3)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [_____210]
// [098________]
((((int)in[ 1 + inPos]) << 8) & 2047);
out[ 1 + outPos] =
// [76543___]
// [______43210]
((((int)in[ 1 + inPos]) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in[ 2 + inPos]) << 5) & 2047);
out[ 2 + outPos] =
// [76______]
// [_________10]
((((int)in[ 2 + inPos]) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in[ 3 + inPos]) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in[ 4 + inPos]) << 10) & 2047);
out[ 3 + outPos] =
// [7654321_]
// [____6543210]
((((int)in[ 4 + inPos]) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in[ 5 + inPos]) << 7) & 2047);
out[ 4 + outPos] =
// [7654____]
// [_______3210]
((((int)in[ 5 + inPos]) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in[ 6 + inPos]) << 4) & 2047);
out[ 5 + outPos] =
// [7_______]
// [__________0]
((((int)in[ 6 + inPos]) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in[ 7 + inPos]) << 1) & 511)
| // [______10]
// [09_________]
((((int)in[ 8 + inPos]) << 9) & 2047);
out[ 6 + outPos] =
// [765432__]
// [_____543210]
((((int)in[ 8 + inPos]) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in[ 9 + inPos]) << 6) & 2047);
out[ 7 + outPos] =
// [765_____]
// [________210]
((((int)in[ 9 + inPos]) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in[10 + inPos]) << 3) & 2047);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [_____210]
// [098________]
((((int)in.get( 1 + inPos)) << 8) & 2047);
out[ 1 + outPos] =
// [76543___]
// [______43210]
((((int)in.get( 1 + inPos)) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in.get( 2 + inPos)) << 5) & 2047);
out[ 2 + outPos] =
// [76______]
// [_________10]
((((int)in.get( 2 + inPos)) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in.get( 3 + inPos)) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in.get( 4 + inPos)) << 10) & 2047);
out[ 3 + outPos] =
// [7654321_]
// [____6543210]
((((int)in.get( 4 + inPos)) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in.get( 5 + inPos)) << 7) & 2047);
out[ 4 + outPos] =
// [7654____]
// [_______3210]
((((int)in.get( 5 + inPos)) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in.get( 6 + inPos)) << 4) & 2047);
out[ 5 + outPos] =
// [7_______]
// [__________0]
((((int)in.get( 6 + inPos)) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in.get( 7 + inPos)) << 1) & 511)
| // [______10]
// [09_________]
((((int)in.get( 8 + inPos)) << 9) & 2047);
out[ 6 + outPos] =
// [765432__]
// [_____543210]
((((int)in.get( 8 + inPos)) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in.get( 9 + inPos)) << 6) & 2047);
out[ 7 + outPos] =
// [765_____]
// [________210]
((((int)in.get( 9 + inPos)) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in.get(10 + inPos)) << 3) & 2047);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [_____210]
// [098________]
((((int)in[ 1 + inPos]) << 8) & 2047);
out[ 1 + outPos] =
// [76543___]
// [______43210]
((((int)in[ 1 + inPos]) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in[ 2 + inPos]) << 5) & 2047);
out[ 2 + outPos] =
// [76______]
// [_________10]
((((int)in[ 2 + inPos]) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in[ 3 + inPos]) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in[ 4 + inPos]) << 10) & 2047);
out[ 3 + outPos] =
// [7654321_]
// [____6543210]
((((int)in[ 4 + inPos]) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in[ 5 + inPos]) << 7) & 2047);
out[ 4 + outPos] =
// [7654____]
// [_______3210]
((((int)in[ 5 + inPos]) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in[ 6 + inPos]) << 4) & 2047);
out[ 5 + outPos] =
// [7_______]
// [__________0]
((((int)in[ 6 + inPos]) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in[ 7 + inPos]) << 1) & 511)
| // [______10]
// [09_________]
((((int)in[ 8 + inPos]) << 9) & 2047);
out[ 6 + outPos] =
// [765432__]
// [_____543210]
((((int)in[ 8 + inPos]) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in[ 9 + inPos]) << 6) & 2047);
out[ 7 + outPos] =
// [765_____]
// [________210]
((((int)in[ 9 + inPos]) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in[10 + inPos]) << 3) & 2047);
out[ 8 + outPos] =
// [76543210]
// [___76543210]
((((int)in[11 + inPos]) ) & 255)
| // [_____210]
// [098________]
((((int)in[12 + inPos]) << 8) & 2047);
out[ 9 + outPos] =
// [76543___]
// [______43210]
((((int)in[12 + inPos]) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in[13 + inPos]) << 5) & 2047);
out[10 + outPos] =
// [76______]
// [_________10]
((((int)in[13 + inPos]) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in[14 + inPos]) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in[15 + inPos]) << 10) & 2047);
out[11 + outPos] =
// [7654321_]
// [____6543210]
((((int)in[15 + inPos]) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in[16 + inPos]) << 7) & 2047);
out[12 + outPos] =
// [7654____]
// [_______3210]
((((int)in[16 + inPos]) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in[17 + inPos]) << 4) & 2047);
out[13 + outPos] =
// [7_______]
// [__________0]
((((int)in[17 + inPos]) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in[18 + inPos]) << 1) & 511)
| // [______10]
// [09_________]
((((int)in[19 + inPos]) << 9) & 2047);
out[14 + outPos] =
// [765432__]
// [_____543210]
((((int)in[19 + inPos]) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in[20 + inPos]) << 6) & 2047);
out[15 + outPos] =
// [765_____]
// [________210]
((((int)in[20 + inPos]) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in[21 + inPos]) << 3) & 2047);
out[16 + outPos] =
// [76543210]
// [___76543210]
((((int)in[22 + inPos]) ) & 255)
| // [_____210]
// [098________]
((((int)in[23 + inPos]) << 8) & 2047);
out[17 + outPos] =
// [76543___]
// [______43210]
((((int)in[23 + inPos]) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in[24 + inPos]) << 5) & 2047);
out[18 + outPos] =
// [76______]
// [_________10]
((((int)in[24 + inPos]) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in[25 + inPos]) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in[26 + inPos]) << 10) & 2047);
out[19 + outPos] =
// [7654321_]
// [____6543210]
((((int)in[26 + inPos]) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in[27 + inPos]) << 7) & 2047);
out[20 + outPos] =
// [7654____]
// [_______3210]
((((int)in[27 + inPos]) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in[28 + inPos]) << 4) & 2047);
out[21 + outPos] =
// [7_______]
// [__________0]
((((int)in[28 + inPos]) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in[29 + inPos]) << 1) & 511)
| // [______10]
// [09_________]
((((int)in[30 + inPos]) << 9) & 2047);
out[22 + outPos] =
// [765432__]
// [_____543210]
((((int)in[30 + inPos]) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in[31 + inPos]) << 6) & 2047);
out[23 + outPos] =
// [765_____]
// [________210]
((((int)in[31 + inPos]) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in[32 + inPos]) << 3) & 2047);
out[24 + outPos] =
// [76543210]
// [___76543210]
((((int)in[33 + inPos]) ) & 255)
| // [_____210]
// [098________]
((((int)in[34 + inPos]) << 8) & 2047);
out[25 + outPos] =
// [76543___]
// [______43210]
((((int)in[34 + inPos]) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in[35 + inPos]) << 5) & 2047);
out[26 + outPos] =
// [76______]
// [_________10]
((((int)in[35 + inPos]) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in[36 + inPos]) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in[37 + inPos]) << 10) & 2047);
out[27 + outPos] =
// [7654321_]
// [____6543210]
((((int)in[37 + inPos]) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in[38 + inPos]) << 7) & 2047);
out[28 + outPos] =
// [7654____]
// [_______3210]
((((int)in[38 + inPos]) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in[39 + inPos]) << 4) & 2047);
out[29 + outPos] =
// [7_______]
// [__________0]
((((int)in[39 + inPos]) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in[40 + inPos]) << 1) & 511)
| // [______10]
// [09_________]
((((int)in[41 + inPos]) << 9) & 2047);
out[30 + outPos] =
// [765432__]
// [_____543210]
((((int)in[41 + inPos]) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in[42 + inPos]) << 6) & 2047);
out[31 + outPos] =
// [765_____]
// [________210]
((((int)in[42 + inPos]) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in[43 + inPos]) << 3) & 2047);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [_____210]
// [098________]
((((int)in.get( 1 + inPos)) << 8) & 2047);
out[ 1 + outPos] =
// [76543___]
// [______43210]
((((int)in.get( 1 + inPos)) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in.get( 2 + inPos)) << 5) & 2047);
out[ 2 + outPos] =
// [76______]
// [_________10]
((((int)in.get( 2 + inPos)) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in.get( 3 + inPos)) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in.get( 4 + inPos)) << 10) & 2047);
out[ 3 + outPos] =
// [7654321_]
// [____6543210]
((((int)in.get( 4 + inPos)) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in.get( 5 + inPos)) << 7) & 2047);
out[ 4 + outPos] =
// [7654____]
// [_______3210]
((((int)in.get( 5 + inPos)) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in.get( 6 + inPos)) << 4) & 2047);
out[ 5 + outPos] =
// [7_______]
// [__________0]
((((int)in.get( 6 + inPos)) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in.get( 7 + inPos)) << 1) & 511)
| // [______10]
// [09_________]
((((int)in.get( 8 + inPos)) << 9) & 2047);
out[ 6 + outPos] =
// [765432__]
// [_____543210]
((((int)in.get( 8 + inPos)) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in.get( 9 + inPos)) << 6) & 2047);
out[ 7 + outPos] =
// [765_____]
// [________210]
((((int)in.get( 9 + inPos)) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in.get(10 + inPos)) << 3) & 2047);
out[ 8 + outPos] =
// [76543210]
// [___76543210]
((((int)in.get(11 + inPos)) ) & 255)
| // [_____210]
// [098________]
((((int)in.get(12 + inPos)) << 8) & 2047);
out[ 9 + outPos] =
// [76543___]
// [______43210]
((((int)in.get(12 + inPos)) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in.get(13 + inPos)) << 5) & 2047);
out[10 + outPos] =
// [76______]
// [_________10]
((((int)in.get(13 + inPos)) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in.get(14 + inPos)) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in.get(15 + inPos)) << 10) & 2047);
out[11 + outPos] =
// [7654321_]
// [____6543210]
((((int)in.get(15 + inPos)) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in.get(16 + inPos)) << 7) & 2047);
out[12 + outPos] =
// [7654____]
// [_______3210]
((((int)in.get(16 + inPos)) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in.get(17 + inPos)) << 4) & 2047);
out[13 + outPos] =
// [7_______]
// [__________0]
((((int)in.get(17 + inPos)) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in.get(18 + inPos)) << 1) & 511)
| // [______10]
// [09_________]
((((int)in.get(19 + inPos)) << 9) & 2047);
out[14 + outPos] =
// [765432__]
// [_____543210]
((((int)in.get(19 + inPos)) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in.get(20 + inPos)) << 6) & 2047);
out[15 + outPos] =
// [765_____]
// [________210]
((((int)in.get(20 + inPos)) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in.get(21 + inPos)) << 3) & 2047);
out[16 + outPos] =
// [76543210]
// [___76543210]
((((int)in.get(22 + inPos)) ) & 255)
| // [_____210]
// [098________]
((((int)in.get(23 + inPos)) << 8) & 2047);
out[17 + outPos] =
// [76543___]
// [______43210]
((((int)in.get(23 + inPos)) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in.get(24 + inPos)) << 5) & 2047);
out[18 + outPos] =
// [76______]
// [_________10]
((((int)in.get(24 + inPos)) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in.get(25 + inPos)) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in.get(26 + inPos)) << 10) & 2047);
out[19 + outPos] =
// [7654321_]
// [____6543210]
((((int)in.get(26 + inPos)) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in.get(27 + inPos)) << 7) & 2047);
out[20 + outPos] =
// [7654____]
// [_______3210]
((((int)in.get(27 + inPos)) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in.get(28 + inPos)) << 4) & 2047);
out[21 + outPos] =
// [7_______]
// [__________0]
((((int)in.get(28 + inPos)) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in.get(29 + inPos)) << 1) & 511)
| // [______10]
// [09_________]
((((int)in.get(30 + inPos)) << 9) & 2047);
out[22 + outPos] =
// [765432__]
// [_____543210]
((((int)in.get(30 + inPos)) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in.get(31 + inPos)) << 6) & 2047);
out[23 + outPos] =
// [765_____]
// [________210]
((((int)in.get(31 + inPos)) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in.get(32 + inPos)) << 3) & 2047);
out[24 + outPos] =
// [76543210]
// [___76543210]
((((int)in.get(33 + inPos)) ) & 255)
| // [_____210]
// [098________]
((((int)in.get(34 + inPos)) << 8) & 2047);
out[25 + outPos] =
// [76543___]
// [______43210]
((((int)in.get(34 + inPos)) >> 3) & 31)
| // [__543210]
// [098765_____]
((((int)in.get(35 + inPos)) << 5) & 2047);
out[26 + outPos] =
// [76______]
// [_________10]
((((int)in.get(35 + inPos)) >> 6) & 3)
| // [76543210]
// [_98765432__]
((((int)in.get(36 + inPos)) << 2) & 1023)
| // [_______0]
// [0__________]
((((int)in.get(37 + inPos)) << 10) & 2047);
out[27 + outPos] =
// [7654321_]
// [____6543210]
((((int)in.get(37 + inPos)) >> 1) & 127)
| // [____3210]
// [0987_______]
((((int)in.get(38 + inPos)) << 7) & 2047);
out[28 + outPos] =
// [7654____]
// [_______3210]
((((int)in.get(38 + inPos)) >> 4) & 15)
| // [_6543210]
// [0987654____]
((((int)in.get(39 + inPos)) << 4) & 2047);
out[29 + outPos] =
// [7_______]
// [__________0]
((((int)in.get(39 + inPos)) >> 7) & 1)
| // [76543210]
// [__87654321_]
((((int)in.get(40 + inPos)) << 1) & 511)
| // [______10]
// [09_________]
((((int)in.get(41 + inPos)) << 9) & 2047);
out[30 + outPos] =
// [765432__]
// [_____543210]
((((int)in.get(41 + inPos)) >> 2) & 63)
| // [___43210]
// [09876______]
((((int)in.get(42 + inPos)) << 6) & 2047);
out[31 + outPos] =
// [765_____]
// [________210]
((((int)in.get(42 + inPos)) >> 5) & 7)
| // [76543210]
// [09876543___]
((((int)in.get(43 + inPos)) << 3) & 2047);
}
}
private static final class Packer12 extends BytePacker {
private Packer12() {
super(12);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 0 + inPos] & 4095))) & 255);
out[ 1 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 0 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 1 + inPos] & 4095) << 4)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 1 + inPos] & 4095) >>> 4)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 2 + inPos] & 4095))) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 2 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 3 + inPos] & 4095) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 3 + inPos] & 4095) >>> 4)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 4 + inPos] & 4095))) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 4 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 5 + inPos] & 4095) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 5 + inPos] & 4095) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 6 + inPos] & 4095))) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 6 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 7 + inPos] & 4095) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 7 + inPos] & 4095) >>> 4)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 0 + inPos] & 4095))) & 255);
out[ 1 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 0 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 1 + inPos] & 4095) << 4)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 1 + inPos] & 4095) >>> 4)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 2 + inPos] & 4095))) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 2 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 3 + inPos] & 4095) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 3 + inPos] & 4095) >>> 4)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 4 + inPos] & 4095))) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 4 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 5 + inPos] & 4095) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 5 + inPos] & 4095) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 6 + inPos] & 4095))) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 6 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 7 + inPos] & 4095) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 7 + inPos] & 4095) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[ 8 + inPos] & 4095))) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[ 8 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[ 9 + inPos] & 4095) << 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[ 9 + inPos] & 4095) >>> 4)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[10 + inPos] & 4095))) & 255);
out[16 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[10 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[11 + inPos] & 4095) << 4)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[11 + inPos] & 4095) >>> 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[12 + inPos] & 4095))) & 255);
out[19 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[12 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[13 + inPos] & 4095) << 4)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[13 + inPos] & 4095) >>> 4)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[14 + inPos] & 4095))) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[14 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[15 + inPos] & 4095) << 4)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[15 + inPos] & 4095) >>> 4)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[16 + inPos] & 4095))) & 255);
out[25 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[16 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[17 + inPos] & 4095) << 4)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[17 + inPos] & 4095) >>> 4)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[18 + inPos] & 4095))) & 255);
out[28 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[18 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[19 + inPos] & 4095) << 4)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[19 + inPos] & 4095) >>> 4)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[20 + inPos] & 4095))) & 255);
out[31 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[20 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[21 + inPos] & 4095) << 4)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[21 + inPos] & 4095) >>> 4)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[22 + inPos] & 4095))) & 255);
out[34 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[22 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[23 + inPos] & 4095) << 4)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[23 + inPos] & 4095) >>> 4)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[24 + inPos] & 4095))) & 255);
out[37 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[24 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[25 + inPos] & 4095) << 4)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[25 + inPos] & 4095) >>> 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[26 + inPos] & 4095))) & 255);
out[40 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[26 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[27 + inPos] & 4095) << 4)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[27 + inPos] & 4095) >>> 4)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[28 + inPos] & 4095))) & 255);
out[43 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[28 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[29 + inPos] & 4095) << 4)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[29 + inPos] & 4095) >>> 4)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [____76543210]
((in[30 + inPos] & 4095))) & 255);
out[46 + outPos] = (byte)((
// [____3210]
// [1098________]
((in[30 + inPos] & 4095) >>> 8)
| // [7654____]
// [________3210]
((in[31 + inPos] & 4095) << 4)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [10987654____]
((in[31 + inPos] & 4095) >>> 4)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[ 1 + inPos]) << 8) & 4095);
out[ 1 + outPos] =
// [7654____]
// [________3210]
((((int)in[ 1 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[ 2 + inPos]) << 4) & 4095);
out[ 2 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 3 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[ 4 + inPos]) << 8) & 4095);
out[ 3 + outPos] =
// [7654____]
// [________3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[ 5 + inPos]) << 4) & 4095);
out[ 4 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 6 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[ 7 + inPos]) << 8) & 4095);
out[ 5 + outPos] =
// [7654____]
// [________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095);
out[ 6 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[10 + inPos]) << 8) & 4095);
out[ 7 + outPos] =
// [7654____]
// [________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[11 + inPos]) << 4) & 4095);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get( 1 + inPos)) << 8) & 4095);
out[ 1 + outPos] =
// [7654____]
// [________3210]
((((int)in.get( 1 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get( 2 + inPos)) << 4) & 4095);
out[ 2 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 3 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get( 4 + inPos)) << 8) & 4095);
out[ 3 + outPos] =
// [7654____]
// [________3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get( 5 + inPos)) << 4) & 4095);
out[ 4 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 6 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get( 7 + inPos)) << 8) & 4095);
out[ 5 + outPos] =
// [7654____]
// [________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095);
out[ 6 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(10 + inPos)) << 8) & 4095);
out[ 7 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[ 1 + inPos]) << 8) & 4095);
out[ 1 + outPos] =
// [7654____]
// [________3210]
((((int)in[ 1 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[ 2 + inPos]) << 4) & 4095);
out[ 2 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 3 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[ 4 + inPos]) << 8) & 4095);
out[ 3 + outPos] =
// [7654____]
// [________3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[ 5 + inPos]) << 4) & 4095);
out[ 4 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 6 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[ 7 + inPos]) << 8) & 4095);
out[ 5 + outPos] =
// [7654____]
// [________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095);
out[ 6 + outPos] =
// [76543210]
// [____76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[10 + inPos]) << 8) & 4095);
out[ 7 + outPos] =
// [7654____]
// [________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[11 + inPos]) << 4) & 4095);
out[ 8 + outPos] =
// [76543210]
// [____76543210]
((((int)in[12 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[13 + inPos]) << 8) & 4095);
out[ 9 + outPos] =
// [7654____]
// [________3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[14 + inPos]) << 4) & 4095);
out[10 + outPos] =
// [76543210]
// [____76543210]
((((int)in[15 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[16 + inPos]) << 8) & 4095);
out[11 + outPos] =
// [7654____]
// [________3210]
((((int)in[16 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[17 + inPos]) << 4) & 4095);
out[12 + outPos] =
// [76543210]
// [____76543210]
((((int)in[18 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[19 + inPos]) << 8) & 4095);
out[13 + outPos] =
// [7654____]
// [________3210]
((((int)in[19 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[20 + inPos]) << 4) & 4095);
out[14 + outPos] =
// [76543210]
// [____76543210]
((((int)in[21 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[22 + inPos]) << 8) & 4095);
out[15 + outPos] =
// [7654____]
// [________3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[23 + inPos]) << 4) & 4095);
out[16 + outPos] =
// [76543210]
// [____76543210]
((((int)in[24 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[25 + inPos]) << 8) & 4095);
out[17 + outPos] =
// [7654____]
// [________3210]
((((int)in[25 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[26 + inPos]) << 4) & 4095);
out[18 + outPos] =
// [76543210]
// [____76543210]
((((int)in[27 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[28 + inPos]) << 8) & 4095);
out[19 + outPos] =
// [7654____]
// [________3210]
((((int)in[28 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[29 + inPos]) << 4) & 4095);
out[20 + outPos] =
// [76543210]
// [____76543210]
((((int)in[30 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[31 + inPos]) << 8) & 4095);
out[21 + outPos] =
// [7654____]
// [________3210]
((((int)in[31 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[32 + inPos]) << 4) & 4095);
out[22 + outPos] =
// [76543210]
// [____76543210]
((((int)in[33 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[34 + inPos]) << 8) & 4095);
out[23 + outPos] =
// [7654____]
// [________3210]
((((int)in[34 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[35 + inPos]) << 4) & 4095);
out[24 + outPos] =
// [76543210]
// [____76543210]
((((int)in[36 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[37 + inPos]) << 8) & 4095);
out[25 + outPos] =
// [7654____]
// [________3210]
((((int)in[37 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[38 + inPos]) << 4) & 4095);
out[26 + outPos] =
// [76543210]
// [____76543210]
((((int)in[39 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[40 + inPos]) << 8) & 4095);
out[27 + outPos] =
// [7654____]
// [________3210]
((((int)in[40 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[41 + inPos]) << 4) & 4095);
out[28 + outPos] =
// [76543210]
// [____76543210]
((((int)in[42 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[43 + inPos]) << 8) & 4095);
out[29 + outPos] =
// [7654____]
// [________3210]
((((int)in[43 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[44 + inPos]) << 4) & 4095);
out[30 + outPos] =
// [76543210]
// [____76543210]
((((int)in[45 + inPos]) ) & 255)
| // [____3210]
// [1098________]
((((int)in[46 + inPos]) << 8) & 4095);
out[31 + outPos] =
// [7654____]
// [________3210]
((((int)in[46 + inPos]) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in[47 + inPos]) << 4) & 4095);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get( 1 + inPos)) << 8) & 4095);
out[ 1 + outPos] =
// [7654____]
// [________3210]
((((int)in.get( 1 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get( 2 + inPos)) << 4) & 4095);
out[ 2 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 3 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get( 4 + inPos)) << 8) & 4095);
out[ 3 + outPos] =
// [7654____]
// [________3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get( 5 + inPos)) << 4) & 4095);
out[ 4 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 6 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get( 7 + inPos)) << 8) & 4095);
out[ 5 + outPos] =
// [7654____]
// [________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095);
out[ 6 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(10 + inPos)) << 8) & 4095);
out[ 7 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095);
out[ 8 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(13 + inPos)) << 8) & 4095);
out[ 9 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(14 + inPos)) << 4) & 4095);
out[10 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(16 + inPos)) << 8) & 4095);
out[11 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(16 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(17 + inPos)) << 4) & 4095);
out[12 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(18 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(19 + inPos)) << 8) & 4095);
out[13 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(19 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(20 + inPos)) << 4) & 4095);
out[14 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(22 + inPos)) << 8) & 4095);
out[15 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(23 + inPos)) << 4) & 4095);
out[16 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(24 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(25 + inPos)) << 8) & 4095);
out[17 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(25 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(26 + inPos)) << 4) & 4095);
out[18 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(27 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(28 + inPos)) << 8) & 4095);
out[19 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(28 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(29 + inPos)) << 4) & 4095);
out[20 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(31 + inPos)) << 8) & 4095);
out[21 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(31 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(32 + inPos)) << 4) & 4095);
out[22 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(33 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(34 + inPos)) << 8) & 4095);
out[23 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(34 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(35 + inPos)) << 4) & 4095);
out[24 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(36 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(37 + inPos)) << 8) & 4095);
out[25 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(37 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(38 + inPos)) << 4) & 4095);
out[26 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(39 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(40 + inPos)) << 8) & 4095);
out[27 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(40 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(41 + inPos)) << 4) & 4095);
out[28 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(42 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(43 + inPos)) << 8) & 4095);
out[29 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(43 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(44 + inPos)) << 4) & 4095);
out[30 + outPos] =
// [76543210]
// [____76543210]
((((int)in.get(45 + inPos)) ) & 255)
| // [____3210]
// [1098________]
((((int)in.get(46 + inPos)) << 8) & 4095);
out[31 + outPos] =
// [7654____]
// [________3210]
((((int)in.get(46 + inPos)) >> 4) & 15)
| // [76543210]
// [10987654____]
((((int)in.get(47 + inPos)) << 4) & 4095);
}
}
private static final class Packer13 extends BytePacker {
private Packer13() {
super(13);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_____76543210]
((in[ 0 + inPos] & 8191))) & 255);
out[ 1 + outPos] = (byte)((
// [___43210]
// [21098________]
((in[ 0 + inPos] & 8191) >>> 8)
| // [765_____]
// [__________210]
((in[ 1 + inPos] & 8191) << 5)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [__09876543___]
((in[ 1 + inPos] & 8191) >>> 3)) & 255);
out[ 3 + outPos] = (byte)((
// [______10]
// [21___________]
((in[ 1 + inPos] & 8191) >>> 11)
| // [765432__]
// [_______543210]
((in[ 2 + inPos] & 8191) << 2)) & 255);
out[ 4 + outPos] = (byte)((
// [_6543210]
// [2109876______]
((in[ 2 + inPos] & 8191) >>> 6)
| // [7_______]
// [____________0]
((in[ 3 + inPos] & 8191) << 7)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____87654321_]
((in[ 3 + inPos] & 8191) >>> 1)) & 255);
out[ 6 + outPos] = (byte)((
// [____3210]
// [2109_________]
((in[ 3 + inPos] & 8191) >>> 9)
| // [7654____]
// [_________3210]
((in[ 4 + inPos] & 8191) << 4)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [_10987654____]
((in[ 4 + inPos] & 8191) >>> 4)) & 255);
out[ 8 + outPos] = (byte)((
// [_______0]
// [2____________]
((in[ 4 + inPos] & 8191) >>> 12)
| // [7654321_]
// [______6543210]
((in[ 5 + inPos] & 8191) << 1)) & 255);
out[ 9 + outPos] = (byte)((
// [__543210]
// [210987_______]
((in[ 5 + inPos] & 8191) >>> 7)
| // [76______]
// [___________10]
((in[ 6 + inPos] & 8191) << 6)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [___98765432__]
((in[ 6 + inPos] & 8191) >>> 2)) & 255);
out[11 + outPos] = (byte)((
// [_____210]
// [210__________]
((in[ 6 + inPos] & 8191) >>> 10)
| // [76543___]
// [________43210]
((in[ 7 + inPos] & 8191) << 3)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [21098765_____]
((in[ 7 + inPos] & 8191) >>> 5)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_____76543210]
((in[ 0 + inPos] & 8191))) & 255);
out[ 1 + outPos] = (byte)((
// [___43210]
// [21098________]
((in[ 0 + inPos] & 8191) >>> 8)
| // [765_____]
// [__________210]
((in[ 1 + inPos] & 8191) << 5)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [__09876543___]
((in[ 1 + inPos] & 8191) >>> 3)) & 255);
out[ 3 + outPos] = (byte)((
// [______10]
// [21___________]
((in[ 1 + inPos] & 8191) >>> 11)
| // [765432__]
// [_______543210]
((in[ 2 + inPos] & 8191) << 2)) & 255);
out[ 4 + outPos] = (byte)((
// [_6543210]
// [2109876______]
((in[ 2 + inPos] & 8191) >>> 6)
| // [7_______]
// [____________0]
((in[ 3 + inPos] & 8191) << 7)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____87654321_]
((in[ 3 + inPos] & 8191) >>> 1)) & 255);
out[ 6 + outPos] = (byte)((
// [____3210]
// [2109_________]
((in[ 3 + inPos] & 8191) >>> 9)
| // [7654____]
// [_________3210]
((in[ 4 + inPos] & 8191) << 4)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [_10987654____]
((in[ 4 + inPos] & 8191) >>> 4)) & 255);
out[ 8 + outPos] = (byte)((
// [_______0]
// [2____________]
((in[ 4 + inPos] & 8191) >>> 12)
| // [7654321_]
// [______6543210]
((in[ 5 + inPos] & 8191) << 1)) & 255);
out[ 9 + outPos] = (byte)((
// [__543210]
// [210987_______]
((in[ 5 + inPos] & 8191) >>> 7)
| // [76______]
// [___________10]
((in[ 6 + inPos] & 8191) << 6)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [___98765432__]
((in[ 6 + inPos] & 8191) >>> 2)) & 255);
out[11 + outPos] = (byte)((
// [_____210]
// [210__________]
((in[ 6 + inPos] & 8191) >>> 10)
| // [76543___]
// [________43210]
((in[ 7 + inPos] & 8191) << 3)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [21098765_____]
((in[ 7 + inPos] & 8191) >>> 5)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [_____76543210]
((in[ 8 + inPos] & 8191))) & 255);
out[14 + outPos] = (byte)((
// [___43210]
// [21098________]
((in[ 8 + inPos] & 8191) >>> 8)
| // [765_____]
// [__________210]
((in[ 9 + inPos] & 8191) << 5)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [__09876543___]
((in[ 9 + inPos] & 8191) >>> 3)) & 255);
out[16 + outPos] = (byte)((
// [______10]
// [21___________]
((in[ 9 + inPos] & 8191) >>> 11)
| // [765432__]
// [_______543210]
((in[10 + inPos] & 8191) << 2)) & 255);
out[17 + outPos] = (byte)((
// [_6543210]
// [2109876______]
((in[10 + inPos] & 8191) >>> 6)
| // [7_______]
// [____________0]
((in[11 + inPos] & 8191) << 7)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [____87654321_]
((in[11 + inPos] & 8191) >>> 1)) & 255);
out[19 + outPos] = (byte)((
// [____3210]
// [2109_________]
((in[11 + inPos] & 8191) >>> 9)
| // [7654____]
// [_________3210]
((in[12 + inPos] & 8191) << 4)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [_10987654____]
((in[12 + inPos] & 8191) >>> 4)) & 255);
out[21 + outPos] = (byte)((
// [_______0]
// [2____________]
((in[12 + inPos] & 8191) >>> 12)
| // [7654321_]
// [______6543210]
((in[13 + inPos] & 8191) << 1)) & 255);
out[22 + outPos] = (byte)((
// [__543210]
// [210987_______]
((in[13 + inPos] & 8191) >>> 7)
| // [76______]
// [___________10]
((in[14 + inPos] & 8191) << 6)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [___98765432__]
((in[14 + inPos] & 8191) >>> 2)) & 255);
out[24 + outPos] = (byte)((
// [_____210]
// [210__________]
((in[14 + inPos] & 8191) >>> 10)
| // [76543___]
// [________43210]
((in[15 + inPos] & 8191) << 3)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [21098765_____]
((in[15 + inPos] & 8191) >>> 5)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [_____76543210]
((in[16 + inPos] & 8191))) & 255);
out[27 + outPos] = (byte)((
// [___43210]
// [21098________]
((in[16 + inPos] & 8191) >>> 8)
| // [765_____]
// [__________210]
((in[17 + inPos] & 8191) << 5)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [__09876543___]
((in[17 + inPos] & 8191) >>> 3)) & 255);
out[29 + outPos] = (byte)((
// [______10]
// [21___________]
((in[17 + inPos] & 8191) >>> 11)
| // [765432__]
// [_______543210]
((in[18 + inPos] & 8191) << 2)) & 255);
out[30 + outPos] = (byte)((
// [_6543210]
// [2109876______]
((in[18 + inPos] & 8191) >>> 6)
| // [7_______]
// [____________0]
((in[19 + inPos] & 8191) << 7)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [____87654321_]
((in[19 + inPos] & 8191) >>> 1)) & 255);
out[32 + outPos] = (byte)((
// [____3210]
// [2109_________]
((in[19 + inPos] & 8191) >>> 9)
| // [7654____]
// [_________3210]
((in[20 + inPos] & 8191) << 4)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [_10987654____]
((in[20 + inPos] & 8191) >>> 4)) & 255);
out[34 + outPos] = (byte)((
// [_______0]
// [2____________]
((in[20 + inPos] & 8191) >>> 12)
| // [7654321_]
// [______6543210]
((in[21 + inPos] & 8191) << 1)) & 255);
out[35 + outPos] = (byte)((
// [__543210]
// [210987_______]
((in[21 + inPos] & 8191) >>> 7)
| // [76______]
// [___________10]
((in[22 + inPos] & 8191) << 6)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [___98765432__]
((in[22 + inPos] & 8191) >>> 2)) & 255);
out[37 + outPos] = (byte)((
// [_____210]
// [210__________]
((in[22 + inPos] & 8191) >>> 10)
| // [76543___]
// [________43210]
((in[23 + inPos] & 8191) << 3)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [21098765_____]
((in[23 + inPos] & 8191) >>> 5)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [_____76543210]
((in[24 + inPos] & 8191))) & 255);
out[40 + outPos] = (byte)((
// [___43210]
// [21098________]
((in[24 + inPos] & 8191) >>> 8)
| // [765_____]
// [__________210]
((in[25 + inPos] & 8191) << 5)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [__09876543___]
((in[25 + inPos] & 8191) >>> 3)) & 255);
out[42 + outPos] = (byte)((
// [______10]
// [21___________]
((in[25 + inPos] & 8191) >>> 11)
| // [765432__]
// [_______543210]
((in[26 + inPos] & 8191) << 2)) & 255);
out[43 + outPos] = (byte)((
// [_6543210]
// [2109876______]
((in[26 + inPos] & 8191) >>> 6)
| // [7_______]
// [____________0]
((in[27 + inPos] & 8191) << 7)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [____87654321_]
((in[27 + inPos] & 8191) >>> 1)) & 255);
out[45 + outPos] = (byte)((
// [____3210]
// [2109_________]
((in[27 + inPos] & 8191) >>> 9)
| // [7654____]
// [_________3210]
((in[28 + inPos] & 8191) << 4)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [_10987654____]
((in[28 + inPos] & 8191) >>> 4)) & 255);
out[47 + outPos] = (byte)((
// [_______0]
// [2____________]
((in[28 + inPos] & 8191) >>> 12)
| // [7654321_]
// [______6543210]
((in[29 + inPos] & 8191) << 1)) & 255);
out[48 + outPos] = (byte)((
// [__543210]
// [210987_______]
((in[29 + inPos] & 8191) >>> 7)
| // [76______]
// [___________10]
((in[30 + inPos] & 8191) << 6)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [___98765432__]
((in[30 + inPos] & 8191) >>> 2)) & 255);
out[50 + outPos] = (byte)((
// [_____210]
// [210__________]
((in[30 + inPos] & 8191) >>> 10)
| // [76543___]
// [________43210]
((in[31 + inPos] & 8191) << 3)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [21098765_____]
((in[31 + inPos] & 8191) >>> 5)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [___43210]
// [21098________]
((((int)in[ 1 + inPos]) << 8) & 8191);
out[ 1 + outPos] =
// [765_____]
// [__________210]
((((int)in[ 1 + inPos]) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in[ 2 + inPos]) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in[ 3 + inPos]) << 11) & 8191);
out[ 2 + outPos] =
// [765432__]
// [_______543210]
((((int)in[ 3 + inPos]) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in[ 4 + inPos]) << 6) & 8191);
out[ 3 + outPos] =
// [7_______]
// [____________0]
((((int)in[ 4 + inPos]) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in[ 5 + inPos]) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in[ 6 + inPos]) << 9) & 8191);
out[ 4 + outPos] =
// [7654____]
// [_________3210]
((((int)in[ 6 + inPos]) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in[ 7 + inPos]) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in[ 8 + inPos]) << 12) & 8191);
out[ 5 + outPos] =
// [7654321_]
// [______6543210]
((((int)in[ 8 + inPos]) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in[ 9 + inPos]) << 7) & 8191);
out[ 6 + outPos] =
// [76______]
// [___________10]
((((int)in[ 9 + inPos]) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in[10 + inPos]) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in[11 + inPos]) << 10) & 8191);
out[ 7 + outPos] =
// [76543___]
// [________43210]
((((int)in[11 + inPos]) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in[12 + inPos]) << 5) & 8191);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [___43210]
// [21098________]
((((int)in.get( 1 + inPos)) << 8) & 8191);
out[ 1 + outPos] =
// [765_____]
// [__________210]
((((int)in.get( 1 + inPos)) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in.get( 2 + inPos)) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in.get( 3 + inPos)) << 11) & 8191);
out[ 2 + outPos] =
// [765432__]
// [_______543210]
((((int)in.get( 3 + inPos)) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in.get( 4 + inPos)) << 6) & 8191);
out[ 3 + outPos] =
// [7_______]
// [____________0]
((((int)in.get( 4 + inPos)) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in.get( 5 + inPos)) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in.get( 6 + inPos)) << 9) & 8191);
out[ 4 + outPos] =
// [7654____]
// [_________3210]
((((int)in.get( 6 + inPos)) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in.get( 7 + inPos)) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in.get( 8 + inPos)) << 12) & 8191);
out[ 5 + outPos] =
// [7654321_]
// [______6543210]
((((int)in.get( 8 + inPos)) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in.get( 9 + inPos)) << 7) & 8191);
out[ 6 + outPos] =
// [76______]
// [___________10]
((((int)in.get( 9 + inPos)) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in.get(10 + inPos)) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in.get(11 + inPos)) << 10) & 8191);
out[ 7 + outPos] =
// [76543___]
// [________43210]
((((int)in.get(11 + inPos)) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in.get(12 + inPos)) << 5) & 8191);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [___43210]
// [21098________]
((((int)in[ 1 + inPos]) << 8) & 8191);
out[ 1 + outPos] =
// [765_____]
// [__________210]
((((int)in[ 1 + inPos]) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in[ 2 + inPos]) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in[ 3 + inPos]) << 11) & 8191);
out[ 2 + outPos] =
// [765432__]
// [_______543210]
((((int)in[ 3 + inPos]) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in[ 4 + inPos]) << 6) & 8191);
out[ 3 + outPos] =
// [7_______]
// [____________0]
((((int)in[ 4 + inPos]) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in[ 5 + inPos]) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in[ 6 + inPos]) << 9) & 8191);
out[ 4 + outPos] =
// [7654____]
// [_________3210]
((((int)in[ 6 + inPos]) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in[ 7 + inPos]) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in[ 8 + inPos]) << 12) & 8191);
out[ 5 + outPos] =
// [7654321_]
// [______6543210]
((((int)in[ 8 + inPos]) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in[ 9 + inPos]) << 7) & 8191);
out[ 6 + outPos] =
// [76______]
// [___________10]
((((int)in[ 9 + inPos]) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in[10 + inPos]) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in[11 + inPos]) << 10) & 8191);
out[ 7 + outPos] =
// [76543___]
// [________43210]
((((int)in[11 + inPos]) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in[12 + inPos]) << 5) & 8191);
out[ 8 + outPos] =
// [76543210]
// [_____76543210]
((((int)in[13 + inPos]) ) & 255)
| // [___43210]
// [21098________]
((((int)in[14 + inPos]) << 8) & 8191);
out[ 9 + outPos] =
// [765_____]
// [__________210]
((((int)in[14 + inPos]) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in[15 + inPos]) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in[16 + inPos]) << 11) & 8191);
out[10 + outPos] =
// [765432__]
// [_______543210]
((((int)in[16 + inPos]) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in[17 + inPos]) << 6) & 8191);
out[11 + outPos] =
// [7_______]
// [____________0]
((((int)in[17 + inPos]) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in[18 + inPos]) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in[19 + inPos]) << 9) & 8191);
out[12 + outPos] =
// [7654____]
// [_________3210]
((((int)in[19 + inPos]) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in[20 + inPos]) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in[21 + inPos]) << 12) & 8191);
out[13 + outPos] =
// [7654321_]
// [______6543210]
((((int)in[21 + inPos]) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in[22 + inPos]) << 7) & 8191);
out[14 + outPos] =
// [76______]
// [___________10]
((((int)in[22 + inPos]) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in[23 + inPos]) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in[24 + inPos]) << 10) & 8191);
out[15 + outPos] =
// [76543___]
// [________43210]
((((int)in[24 + inPos]) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in[25 + inPos]) << 5) & 8191);
out[16 + outPos] =
// [76543210]
// [_____76543210]
((((int)in[26 + inPos]) ) & 255)
| // [___43210]
// [21098________]
((((int)in[27 + inPos]) << 8) & 8191);
out[17 + outPos] =
// [765_____]
// [__________210]
((((int)in[27 + inPos]) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in[28 + inPos]) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in[29 + inPos]) << 11) & 8191);
out[18 + outPos] =
// [765432__]
// [_______543210]
((((int)in[29 + inPos]) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in[30 + inPos]) << 6) & 8191);
out[19 + outPos] =
// [7_______]
// [____________0]
((((int)in[30 + inPos]) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in[31 + inPos]) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in[32 + inPos]) << 9) & 8191);
out[20 + outPos] =
// [7654____]
// [_________3210]
((((int)in[32 + inPos]) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in[33 + inPos]) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in[34 + inPos]) << 12) & 8191);
out[21 + outPos] =
// [7654321_]
// [______6543210]
((((int)in[34 + inPos]) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in[35 + inPos]) << 7) & 8191);
out[22 + outPos] =
// [76______]
// [___________10]
((((int)in[35 + inPos]) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in[36 + inPos]) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in[37 + inPos]) << 10) & 8191);
out[23 + outPos] =
// [76543___]
// [________43210]
((((int)in[37 + inPos]) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in[38 + inPos]) << 5) & 8191);
out[24 + outPos] =
// [76543210]
// [_____76543210]
((((int)in[39 + inPos]) ) & 255)
| // [___43210]
// [21098________]
((((int)in[40 + inPos]) << 8) & 8191);
out[25 + outPos] =
// [765_____]
// [__________210]
((((int)in[40 + inPos]) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in[41 + inPos]) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in[42 + inPos]) << 11) & 8191);
out[26 + outPos] =
// [765432__]
// [_______543210]
((((int)in[42 + inPos]) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in[43 + inPos]) << 6) & 8191);
out[27 + outPos] =
// [7_______]
// [____________0]
((((int)in[43 + inPos]) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in[44 + inPos]) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in[45 + inPos]) << 9) & 8191);
out[28 + outPos] =
// [7654____]
// [_________3210]
((((int)in[45 + inPos]) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in[46 + inPos]) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in[47 + inPos]) << 12) & 8191);
out[29 + outPos] =
// [7654321_]
// [______6543210]
((((int)in[47 + inPos]) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in[48 + inPos]) << 7) & 8191);
out[30 + outPos] =
// [76______]
// [___________10]
((((int)in[48 + inPos]) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in[49 + inPos]) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in[50 + inPos]) << 10) & 8191);
out[31 + outPos] =
// [76543___]
// [________43210]
((((int)in[50 + inPos]) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in[51 + inPos]) << 5) & 8191);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [___43210]
// [21098________]
((((int)in.get( 1 + inPos)) << 8) & 8191);
out[ 1 + outPos] =
// [765_____]
// [__________210]
((((int)in.get( 1 + inPos)) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in.get( 2 + inPos)) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in.get( 3 + inPos)) << 11) & 8191);
out[ 2 + outPos] =
// [765432__]
// [_______543210]
((((int)in.get( 3 + inPos)) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in.get( 4 + inPos)) << 6) & 8191);
out[ 3 + outPos] =
// [7_______]
// [____________0]
((((int)in.get( 4 + inPos)) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in.get( 5 + inPos)) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in.get( 6 + inPos)) << 9) & 8191);
out[ 4 + outPos] =
// [7654____]
// [_________3210]
((((int)in.get( 6 + inPos)) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in.get( 7 + inPos)) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in.get( 8 + inPos)) << 12) & 8191);
out[ 5 + outPos] =
// [7654321_]
// [______6543210]
((((int)in.get( 8 + inPos)) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in.get( 9 + inPos)) << 7) & 8191);
out[ 6 + outPos] =
// [76______]
// [___________10]
((((int)in.get( 9 + inPos)) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in.get(10 + inPos)) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in.get(11 + inPos)) << 10) & 8191);
out[ 7 + outPos] =
// [76543___]
// [________43210]
((((int)in.get(11 + inPos)) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in.get(12 + inPos)) << 5) & 8191);
out[ 8 + outPos] =
// [76543210]
// [_____76543210]
((((int)in.get(13 + inPos)) ) & 255)
| // [___43210]
// [21098________]
((((int)in.get(14 + inPos)) << 8) & 8191);
out[ 9 + outPos] =
// [765_____]
// [__________210]
((((int)in.get(14 + inPos)) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in.get(15 + inPos)) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in.get(16 + inPos)) << 11) & 8191);
out[10 + outPos] =
// [765432__]
// [_______543210]
((((int)in.get(16 + inPos)) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in.get(17 + inPos)) << 6) & 8191);
out[11 + outPos] =
// [7_______]
// [____________0]
((((int)in.get(17 + inPos)) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in.get(18 + inPos)) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in.get(19 + inPos)) << 9) & 8191);
out[12 + outPos] =
// [7654____]
// [_________3210]
((((int)in.get(19 + inPos)) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in.get(20 + inPos)) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in.get(21 + inPos)) << 12) & 8191);
out[13 + outPos] =
// [7654321_]
// [______6543210]
((((int)in.get(21 + inPos)) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in.get(22 + inPos)) << 7) & 8191);
out[14 + outPos] =
// [76______]
// [___________10]
((((int)in.get(22 + inPos)) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in.get(23 + inPos)) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in.get(24 + inPos)) << 10) & 8191);
out[15 + outPos] =
// [76543___]
// [________43210]
((((int)in.get(24 + inPos)) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in.get(25 + inPos)) << 5) & 8191);
out[16 + outPos] =
// [76543210]
// [_____76543210]
((((int)in.get(26 + inPos)) ) & 255)
| // [___43210]
// [21098________]
((((int)in.get(27 + inPos)) << 8) & 8191);
out[17 + outPos] =
// [765_____]
// [__________210]
((((int)in.get(27 + inPos)) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in.get(28 + inPos)) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in.get(29 + inPos)) << 11) & 8191);
out[18 + outPos] =
// [765432__]
// [_______543210]
((((int)in.get(29 + inPos)) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in.get(30 + inPos)) << 6) & 8191);
out[19 + outPos] =
// [7_______]
// [____________0]
((((int)in.get(30 + inPos)) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in.get(31 + inPos)) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in.get(32 + inPos)) << 9) & 8191);
out[20 + outPos] =
// [7654____]
// [_________3210]
((((int)in.get(32 + inPos)) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in.get(33 + inPos)) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in.get(34 + inPos)) << 12) & 8191);
out[21 + outPos] =
// [7654321_]
// [______6543210]
((((int)in.get(34 + inPos)) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in.get(35 + inPos)) << 7) & 8191);
out[22 + outPos] =
// [76______]
// [___________10]
((((int)in.get(35 + inPos)) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in.get(36 + inPos)) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in.get(37 + inPos)) << 10) & 8191);
out[23 + outPos] =
// [76543___]
// [________43210]
((((int)in.get(37 + inPos)) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in.get(38 + inPos)) << 5) & 8191);
out[24 + outPos] =
// [76543210]
// [_____76543210]
((((int)in.get(39 + inPos)) ) & 255)
| // [___43210]
// [21098________]
((((int)in.get(40 + inPos)) << 8) & 8191);
out[25 + outPos] =
// [765_____]
// [__________210]
((((int)in.get(40 + inPos)) >> 5) & 7)
| // [76543210]
// [__09876543___]
((((int)in.get(41 + inPos)) << 3) & 2047)
| // [______10]
// [21___________]
((((int)in.get(42 + inPos)) << 11) & 8191);
out[26 + outPos] =
// [765432__]
// [_______543210]
((((int)in.get(42 + inPos)) >> 2) & 63)
| // [_6543210]
// [2109876______]
((((int)in.get(43 + inPos)) << 6) & 8191);
out[27 + outPos] =
// [7_______]
// [____________0]
((((int)in.get(43 + inPos)) >> 7) & 1)
| // [76543210]
// [____87654321_]
((((int)in.get(44 + inPos)) << 1) & 511)
| // [____3210]
// [2109_________]
((((int)in.get(45 + inPos)) << 9) & 8191);
out[28 + outPos] =
// [7654____]
// [_________3210]
((((int)in.get(45 + inPos)) >> 4) & 15)
| // [76543210]
// [_10987654____]
((((int)in.get(46 + inPos)) << 4) & 4095)
| // [_______0]
// [2____________]
((((int)in.get(47 + inPos)) << 12) & 8191);
out[29 + outPos] =
// [7654321_]
// [______6543210]
((((int)in.get(47 + inPos)) >> 1) & 127)
| // [__543210]
// [210987_______]
((((int)in.get(48 + inPos)) << 7) & 8191);
out[30 + outPos] =
// [76______]
// [___________10]
((((int)in.get(48 + inPos)) >> 6) & 3)
| // [76543210]
// [___98765432__]
((((int)in.get(49 + inPos)) << 2) & 1023)
| // [_____210]
// [210__________]
((((int)in.get(50 + inPos)) << 10) & 8191);
out[31 + outPos] =
// [76543___]
// [________43210]
((((int)in.get(50 + inPos)) >> 3) & 31)
| // [76543210]
// [21098765_____]
((((int)in.get(51 + inPos)) << 5) & 8191);
}
}
private static final class Packer14 extends BytePacker {
private Packer14() {
super(14);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[ 0 + inPos] & 16383))) & 255);
out[ 1 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[ 0 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[ 1 + inPos] & 16383) << 6)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[ 1 + inPos] & 16383) >>> 2)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[ 1 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[ 2 + inPos] & 16383) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[ 2 + inPos] & 16383) >>> 4)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [32____________]
((in[ 2 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[ 3 + inPos] & 16383) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[ 3 + inPos] & 16383) >>> 6)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[ 4 + inPos] & 16383))) & 255);
out[ 8 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[ 4 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[ 5 + inPos] & 16383) << 6)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[ 5 + inPos] & 16383) >>> 2)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[ 5 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[ 6 + inPos] & 16383) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[ 6 + inPos] & 16383) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [______10]
// [32____________]
((in[ 6 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[ 7 + inPos] & 16383) << 2)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[ 7 + inPos] & 16383) >>> 6)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[ 0 + inPos] & 16383))) & 255);
out[ 1 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[ 0 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[ 1 + inPos] & 16383) << 6)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[ 1 + inPos] & 16383) >>> 2)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[ 1 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[ 2 + inPos] & 16383) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[ 2 + inPos] & 16383) >>> 4)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [32____________]
((in[ 2 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[ 3 + inPos] & 16383) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[ 3 + inPos] & 16383) >>> 6)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[ 4 + inPos] & 16383))) & 255);
out[ 8 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[ 4 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[ 5 + inPos] & 16383) << 6)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[ 5 + inPos] & 16383) >>> 2)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[ 5 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[ 6 + inPos] & 16383) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[ 6 + inPos] & 16383) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [______10]
// [32____________]
((in[ 6 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[ 7 + inPos] & 16383) << 2)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[ 7 + inPos] & 16383) >>> 6)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[ 8 + inPos] & 16383))) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[ 8 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[ 9 + inPos] & 16383) << 6)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[ 9 + inPos] & 16383) >>> 2)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[ 9 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[10 + inPos] & 16383) << 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[10 + inPos] & 16383) >>> 4)) & 255);
out[19 + outPos] = (byte)((
// [______10]
// [32____________]
((in[10 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[11 + inPos] & 16383) << 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[11 + inPos] & 16383) >>> 6)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[12 + inPos] & 16383))) & 255);
out[22 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[12 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[13 + inPos] & 16383) << 6)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[13 + inPos] & 16383) >>> 2)) & 255);
out[24 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[13 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[14 + inPos] & 16383) << 4)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[14 + inPos] & 16383) >>> 4)) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [32____________]
((in[14 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[15 + inPos] & 16383) << 2)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[15 + inPos] & 16383) >>> 6)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[16 + inPos] & 16383))) & 255);
out[29 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[16 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[17 + inPos] & 16383) << 6)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[17 + inPos] & 16383) >>> 2)) & 255);
out[31 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[17 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[18 + inPos] & 16383) << 4)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[18 + inPos] & 16383) >>> 4)) & 255);
out[33 + outPos] = (byte)((
// [______10]
// [32____________]
((in[18 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[19 + inPos] & 16383) << 2)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[19 + inPos] & 16383) >>> 6)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[20 + inPos] & 16383))) & 255);
out[36 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[20 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[21 + inPos] & 16383) << 6)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[21 + inPos] & 16383) >>> 2)) & 255);
out[38 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[21 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[22 + inPos] & 16383) << 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[22 + inPos] & 16383) >>> 4)) & 255);
out[40 + outPos] = (byte)((
// [______10]
// [32____________]
((in[22 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[23 + inPos] & 16383) << 2)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[23 + inPos] & 16383) >>> 6)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[24 + inPos] & 16383))) & 255);
out[43 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[24 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[25 + inPos] & 16383) << 6)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[25 + inPos] & 16383) >>> 2)) & 255);
out[45 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[25 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[26 + inPos] & 16383) << 4)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[26 + inPos] & 16383) >>> 4)) & 255);
out[47 + outPos] = (byte)((
// [______10]
// [32____________]
((in[26 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[27 + inPos] & 16383) << 2)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[27 + inPos] & 16383) >>> 6)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [______76543210]
((in[28 + inPos] & 16383))) & 255);
out[50 + outPos] = (byte)((
// [__543210]
// [321098________]
((in[28 + inPos] & 16383) >>> 8)
| // [76______]
// [____________10]
((in[29 + inPos] & 16383) << 6)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [____98765432__]
((in[29 + inPos] & 16383) >>> 2)) & 255);
out[52 + outPos] = (byte)((
// [____3210]
// [3210__________]
((in[29 + inPos] & 16383) >>> 10)
| // [7654____]
// [__________3210]
((in[30 + inPos] & 16383) << 4)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [__10987654____]
((in[30 + inPos] & 16383) >>> 4)) & 255);
out[54 + outPos] = (byte)((
// [______10]
// [32____________]
((in[30 + inPos] & 16383) >>> 12)
| // [765432__]
// [________543210]
((in[31 + inPos] & 16383) << 2)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [32109876______]
((in[31 + inPos] & 16383) >>> 6)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[ 1 + inPos]) << 8) & 16383);
out[ 1 + outPos] =
// [76______]
// [____________10]
((((int)in[ 1 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[ 2 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[ 3 + inPos]) << 10) & 16383);
out[ 2 + outPos] =
// [7654____]
// [__________3210]
((((int)in[ 3 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[ 4 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[ 5 + inPos]) << 12) & 16383);
out[ 3 + outPos] =
// [765432__]
// [________543210]
((((int)in[ 5 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[ 6 + inPos]) << 6) & 16383);
out[ 4 + outPos] =
// [76543210]
// [______76543210]
((((int)in[ 7 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[ 8 + inPos]) << 8) & 16383);
out[ 5 + outPos] =
// [76______]
// [____________10]
((((int)in[ 8 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[ 9 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[10 + inPos]) << 10) & 16383);
out[ 6 + outPos] =
// [7654____]
// [__________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[11 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[12 + inPos]) << 12) & 16383);
out[ 7 + outPos] =
// [765432__]
// [________543210]
((((int)in[12 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[13 + inPos]) << 6) & 16383);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get( 1 + inPos)) << 8) & 16383);
out[ 1 + outPos] =
// [76______]
// [____________10]
((((int)in.get( 1 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get( 2 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get( 3 + inPos)) << 10) & 16383);
out[ 2 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get( 3 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get( 4 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get( 5 + inPos)) << 12) & 16383);
out[ 3 + outPos] =
// [765432__]
// [________543210]
((((int)in.get( 5 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get( 6 + inPos)) << 6) & 16383);
out[ 4 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get( 7 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get( 8 + inPos)) << 8) & 16383);
out[ 5 + outPos] =
// [76______]
// [____________10]
((((int)in.get( 8 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get( 9 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(10 + inPos)) << 10) & 16383);
out[ 6 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(12 + inPos)) << 12) & 16383);
out[ 7 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(12 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(13 + inPos)) << 6) & 16383);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[ 1 + inPos]) << 8) & 16383);
out[ 1 + outPos] =
// [76______]
// [____________10]
((((int)in[ 1 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[ 2 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[ 3 + inPos]) << 10) & 16383);
out[ 2 + outPos] =
// [7654____]
// [__________3210]
((((int)in[ 3 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[ 4 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[ 5 + inPos]) << 12) & 16383);
out[ 3 + outPos] =
// [765432__]
// [________543210]
((((int)in[ 5 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[ 6 + inPos]) << 6) & 16383);
out[ 4 + outPos] =
// [76543210]
// [______76543210]
((((int)in[ 7 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[ 8 + inPos]) << 8) & 16383);
out[ 5 + outPos] =
// [76______]
// [____________10]
((((int)in[ 8 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[ 9 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[10 + inPos]) << 10) & 16383);
out[ 6 + outPos] =
// [7654____]
// [__________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[11 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[12 + inPos]) << 12) & 16383);
out[ 7 + outPos] =
// [765432__]
// [________543210]
((((int)in[12 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[13 + inPos]) << 6) & 16383);
out[ 8 + outPos] =
// [76543210]
// [______76543210]
((((int)in[14 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[15 + inPos]) << 8) & 16383);
out[ 9 + outPos] =
// [76______]
// [____________10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[16 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[17 + inPos]) << 10) & 16383);
out[10 + outPos] =
// [7654____]
// [__________3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[18 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[19 + inPos]) << 12) & 16383);
out[11 + outPos] =
// [765432__]
// [________543210]
((((int)in[19 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[20 + inPos]) << 6) & 16383);
out[12 + outPos] =
// [76543210]
// [______76543210]
((((int)in[21 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[22 + inPos]) << 8) & 16383);
out[13 + outPos] =
// [76______]
// [____________10]
((((int)in[22 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[23 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[24 + inPos]) << 10) & 16383);
out[14 + outPos] =
// [7654____]
// [__________3210]
((((int)in[24 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[25 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[26 + inPos]) << 12) & 16383);
out[15 + outPos] =
// [765432__]
// [________543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[27 + inPos]) << 6) & 16383);
out[16 + outPos] =
// [76543210]
// [______76543210]
((((int)in[28 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[29 + inPos]) << 8) & 16383);
out[17 + outPos] =
// [76______]
// [____________10]
((((int)in[29 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[30 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[31 + inPos]) << 10) & 16383);
out[18 + outPos] =
// [7654____]
// [__________3210]
((((int)in[31 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[32 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[33 + inPos]) << 12) & 16383);
out[19 + outPos] =
// [765432__]
// [________543210]
((((int)in[33 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[34 + inPos]) << 6) & 16383);
out[20 + outPos] =
// [76543210]
// [______76543210]
((((int)in[35 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[36 + inPos]) << 8) & 16383);
out[21 + outPos] =
// [76______]
// [____________10]
((((int)in[36 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[37 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[38 + inPos]) << 10) & 16383);
out[22 + outPos] =
// [7654____]
// [__________3210]
((((int)in[38 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[39 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[40 + inPos]) << 12) & 16383);
out[23 + outPos] =
// [765432__]
// [________543210]
((((int)in[40 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[41 + inPos]) << 6) & 16383);
out[24 + outPos] =
// [76543210]
// [______76543210]
((((int)in[42 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[43 + inPos]) << 8) & 16383);
out[25 + outPos] =
// [76______]
// [____________10]
((((int)in[43 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[44 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[45 + inPos]) << 10) & 16383);
out[26 + outPos] =
// [7654____]
// [__________3210]
((((int)in[45 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[46 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[47 + inPos]) << 12) & 16383);
out[27 + outPos] =
// [765432__]
// [________543210]
((((int)in[47 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[48 + inPos]) << 6) & 16383);
out[28 + outPos] =
// [76543210]
// [______76543210]
((((int)in[49 + inPos]) ) & 255)
| // [__543210]
// [321098________]
((((int)in[50 + inPos]) << 8) & 16383);
out[29 + outPos] =
// [76______]
// [____________10]
((((int)in[50 + inPos]) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in[51 + inPos]) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in[52 + inPos]) << 10) & 16383);
out[30 + outPos] =
// [7654____]
// [__________3210]
((((int)in[52 + inPos]) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in[53 + inPos]) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in[54 + inPos]) << 12) & 16383);
out[31 + outPos] =
// [765432__]
// [________543210]
((((int)in[54 + inPos]) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in[55 + inPos]) << 6) & 16383);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get( 1 + inPos)) << 8) & 16383);
out[ 1 + outPos] =
// [76______]
// [____________10]
((((int)in.get( 1 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get( 2 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get( 3 + inPos)) << 10) & 16383);
out[ 2 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get( 3 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get( 4 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get( 5 + inPos)) << 12) & 16383);
out[ 3 + outPos] =
// [765432__]
// [________543210]
((((int)in.get( 5 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get( 6 + inPos)) << 6) & 16383);
out[ 4 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get( 7 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get( 8 + inPos)) << 8) & 16383);
out[ 5 + outPos] =
// [76______]
// [____________10]
((((int)in.get( 8 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get( 9 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(10 + inPos)) << 10) & 16383);
out[ 6 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(12 + inPos)) << 12) & 16383);
out[ 7 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(12 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(13 + inPos)) << 6) & 16383);
out[ 8 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get(14 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get(15 + inPos)) << 8) & 16383);
out[ 9 + outPos] =
// [76______]
// [____________10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get(16 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(17 + inPos)) << 10) & 16383);
out[10 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(18 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(19 + inPos)) << 12) & 16383);
out[11 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(19 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(20 + inPos)) << 6) & 16383);
out[12 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get(22 + inPos)) << 8) & 16383);
out[13 + outPos] =
// [76______]
// [____________10]
((((int)in.get(22 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get(23 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(24 + inPos)) << 10) & 16383);
out[14 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(24 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(25 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(26 + inPos)) << 12) & 16383);
out[15 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(27 + inPos)) << 6) & 16383);
out[16 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get(28 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get(29 + inPos)) << 8) & 16383);
out[17 + outPos] =
// [76______]
// [____________10]
((((int)in.get(29 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get(30 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(31 + inPos)) << 10) & 16383);
out[18 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(31 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(32 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(33 + inPos)) << 12) & 16383);
out[19 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(33 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(34 + inPos)) << 6) & 16383);
out[20 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get(35 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get(36 + inPos)) << 8) & 16383);
out[21 + outPos] =
// [76______]
// [____________10]
((((int)in.get(36 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get(37 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(38 + inPos)) << 10) & 16383);
out[22 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(38 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(39 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(40 + inPos)) << 12) & 16383);
out[23 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(40 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(41 + inPos)) << 6) & 16383);
out[24 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get(42 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get(43 + inPos)) << 8) & 16383);
out[25 + outPos] =
// [76______]
// [____________10]
((((int)in.get(43 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get(44 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(45 + inPos)) << 10) & 16383);
out[26 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(45 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(46 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(47 + inPos)) << 12) & 16383);
out[27 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(47 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(48 + inPos)) << 6) & 16383);
out[28 + outPos] =
// [76543210]
// [______76543210]
((((int)in.get(49 + inPos)) ) & 255)
| // [__543210]
// [321098________]
((((int)in.get(50 + inPos)) << 8) & 16383);
out[29 + outPos] =
// [76______]
// [____________10]
((((int)in.get(50 + inPos)) >> 6) & 3)
| // [76543210]
// [____98765432__]
((((int)in.get(51 + inPos)) << 2) & 1023)
| // [____3210]
// [3210__________]
((((int)in.get(52 + inPos)) << 10) & 16383);
out[30 + outPos] =
// [7654____]
// [__________3210]
((((int)in.get(52 + inPos)) >> 4) & 15)
| // [76543210]
// [__10987654____]
((((int)in.get(53 + inPos)) << 4) & 4095)
| // [______10]
// [32____________]
((((int)in.get(54 + inPos)) << 12) & 16383);
out[31 + outPos] =
// [765432__]
// [________543210]
((((int)in.get(54 + inPos)) >> 2) & 63)
| // [76543210]
// [32109876______]
((((int)in.get(55 + inPos)) << 6) & 16383);
}
}
private static final class Packer15 extends BytePacker {
private Packer15() {
super(15);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_______76543210]
((in[ 0 + inPos] & 32767))) & 255);
out[ 1 + outPos] = (byte)((
// [_6543210]
// [4321098________]
((in[ 0 + inPos] & 32767) >>> 8)
| // [7_______]
// [______________0]
((in[ 1 + inPos] & 32767) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [______87654321_]
((in[ 1 + inPos] & 32767) >>> 1)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [432109_________]
((in[ 1 + inPos] & 32767) >>> 9)
| // [76______]
// [_____________10]
((in[ 2 + inPos] & 32767) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [_____98765432__]
((in[ 2 + inPos] & 32767) >>> 2)) & 255);
out[ 5 + outPos] = (byte)((
// [___43210]
// [43210__________]
((in[ 2 + inPos] & 32767) >>> 10)
| // [765_____]
// [____________210]
((in[ 3 + inPos] & 32767) << 5)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____09876543___]
((in[ 3 + inPos] & 32767) >>> 3)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [4321___________]
((in[ 3 + inPos] & 32767) >>> 11)
| // [7654____]
// [___________3210]
((in[ 4 + inPos] & 32767) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [___10987654____]
((in[ 4 + inPos] & 32767) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [_____210]
// [432____________]
((in[ 4 + inPos] & 32767) >>> 12)
| // [76543___]
// [__________43210]
((in[ 5 + inPos] & 32767) << 3)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__21098765_____]
((in[ 5 + inPos] & 32767) >>> 5)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [43_____________]
((in[ 5 + inPos] & 32767) >>> 13)
| // [765432__]
// [_________543210]
((in[ 6 + inPos] & 32767) << 2)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [_32109876______]
((in[ 6 + inPos] & 32767) >>> 6)) & 255);
out[13 + outPos] = (byte)((
// [_______0]
// [4______________]
((in[ 6 + inPos] & 32767) >>> 14)
| // [7654321_]
// [________6543210]
((in[ 7 + inPos] & 32767) << 1)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [43210987_______]
((in[ 7 + inPos] & 32767) >>> 7)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_______76543210]
((in[ 0 + inPos] & 32767))) & 255);
out[ 1 + outPos] = (byte)((
// [_6543210]
// [4321098________]
((in[ 0 + inPos] & 32767) >>> 8)
| // [7_______]
// [______________0]
((in[ 1 + inPos] & 32767) << 7)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [______87654321_]
((in[ 1 + inPos] & 32767) >>> 1)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [432109_________]
((in[ 1 + inPos] & 32767) >>> 9)
| // [76______]
// [_____________10]
((in[ 2 + inPos] & 32767) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [_____98765432__]
((in[ 2 + inPos] & 32767) >>> 2)) & 255);
out[ 5 + outPos] = (byte)((
// [___43210]
// [43210__________]
((in[ 2 + inPos] & 32767) >>> 10)
| // [765_____]
// [____________210]
((in[ 3 + inPos] & 32767) << 5)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____09876543___]
((in[ 3 + inPos] & 32767) >>> 3)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [4321___________]
((in[ 3 + inPos] & 32767) >>> 11)
| // [7654____]
// [___________3210]
((in[ 4 + inPos] & 32767) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [___10987654____]
((in[ 4 + inPos] & 32767) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [_____210]
// [432____________]
((in[ 4 + inPos] & 32767) >>> 12)
| // [76543___]
// [__________43210]
((in[ 5 + inPos] & 32767) << 3)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__21098765_____]
((in[ 5 + inPos] & 32767) >>> 5)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [43_____________]
((in[ 5 + inPos] & 32767) >>> 13)
| // [765432__]
// [_________543210]
((in[ 6 + inPos] & 32767) << 2)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [_32109876______]
((in[ 6 + inPos] & 32767) >>> 6)) & 255);
out[13 + outPos] = (byte)((
// [_______0]
// [4______________]
((in[ 6 + inPos] & 32767) >>> 14)
| // [7654321_]
// [________6543210]
((in[ 7 + inPos] & 32767) << 1)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [43210987_______]
((in[ 7 + inPos] & 32767) >>> 7)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_______76543210]
((in[ 8 + inPos] & 32767))) & 255);
out[16 + outPos] = (byte)((
// [_6543210]
// [4321098________]
((in[ 8 + inPos] & 32767) >>> 8)
| // [7_______]
// [______________0]
((in[ 9 + inPos] & 32767) << 7)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [______87654321_]
((in[ 9 + inPos] & 32767) >>> 1)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [432109_________]
((in[ 9 + inPos] & 32767) >>> 9)
| // [76______]
// [_____________10]
((in[10 + inPos] & 32767) << 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [_____98765432__]
((in[10 + inPos] & 32767) >>> 2)) & 255);
out[20 + outPos] = (byte)((
// [___43210]
// [43210__________]
((in[10 + inPos] & 32767) >>> 10)
| // [765_____]
// [____________210]
((in[11 + inPos] & 32767) << 5)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____09876543___]
((in[11 + inPos] & 32767) >>> 3)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [4321___________]
((in[11 + inPos] & 32767) >>> 11)
| // [7654____]
// [___________3210]
((in[12 + inPos] & 32767) << 4)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [___10987654____]
((in[12 + inPos] & 32767) >>> 4)) & 255);
out[24 + outPos] = (byte)((
// [_____210]
// [432____________]
((in[12 + inPos] & 32767) >>> 12)
| // [76543___]
// [__________43210]
((in[13 + inPos] & 32767) << 3)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [__21098765_____]
((in[13 + inPos] & 32767) >>> 5)) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [43_____________]
((in[13 + inPos] & 32767) >>> 13)
| // [765432__]
// [_________543210]
((in[14 + inPos] & 32767) << 2)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [_32109876______]
((in[14 + inPos] & 32767) >>> 6)) & 255);
out[28 + outPos] = (byte)((
// [_______0]
// [4______________]
((in[14 + inPos] & 32767) >>> 14)
| // [7654321_]
// [________6543210]
((in[15 + inPos] & 32767) << 1)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [43210987_______]
((in[15 + inPos] & 32767) >>> 7)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [_______76543210]
((in[16 + inPos] & 32767))) & 255);
out[31 + outPos] = (byte)((
// [_6543210]
// [4321098________]
((in[16 + inPos] & 32767) >>> 8)
| // [7_______]
// [______________0]
((in[17 + inPos] & 32767) << 7)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [______87654321_]
((in[17 + inPos] & 32767) >>> 1)) & 255);
out[33 + outPos] = (byte)((
// [__543210]
// [432109_________]
((in[17 + inPos] & 32767) >>> 9)
| // [76______]
// [_____________10]
((in[18 + inPos] & 32767) << 6)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [_____98765432__]
((in[18 + inPos] & 32767) >>> 2)) & 255);
out[35 + outPos] = (byte)((
// [___43210]
// [43210__________]
((in[18 + inPos] & 32767) >>> 10)
| // [765_____]
// [____________210]
((in[19 + inPos] & 32767) << 5)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____09876543___]
((in[19 + inPos] & 32767) >>> 3)) & 255);
out[37 + outPos] = (byte)((
// [____3210]
// [4321___________]
((in[19 + inPos] & 32767) >>> 11)
| // [7654____]
// [___________3210]
((in[20 + inPos] & 32767) << 4)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [___10987654____]
((in[20 + inPos] & 32767) >>> 4)) & 255);
out[39 + outPos] = (byte)((
// [_____210]
// [432____________]
((in[20 + inPos] & 32767) >>> 12)
| // [76543___]
// [__________43210]
((in[21 + inPos] & 32767) << 3)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [__21098765_____]
((in[21 + inPos] & 32767) >>> 5)) & 255);
out[41 + outPos] = (byte)((
// [______10]
// [43_____________]
((in[21 + inPos] & 32767) >>> 13)
| // [765432__]
// [_________543210]
((in[22 + inPos] & 32767) << 2)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [_32109876______]
((in[22 + inPos] & 32767) >>> 6)) & 255);
out[43 + outPos] = (byte)((
// [_______0]
// [4______________]
((in[22 + inPos] & 32767) >>> 14)
| // [7654321_]
// [________6543210]
((in[23 + inPos] & 32767) << 1)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [43210987_______]
((in[23 + inPos] & 32767) >>> 7)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [_______76543210]
((in[24 + inPos] & 32767))) & 255);
out[46 + outPos] = (byte)((
// [_6543210]
// [4321098________]
((in[24 + inPos] & 32767) >>> 8)
| // [7_______]
// [______________0]
((in[25 + inPos] & 32767) << 7)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [______87654321_]
((in[25 + inPos] & 32767) >>> 1)) & 255);
out[48 + outPos] = (byte)((
// [__543210]
// [432109_________]
((in[25 + inPos] & 32767) >>> 9)
| // [76______]
// [_____________10]
((in[26 + inPos] & 32767) << 6)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [_____98765432__]
((in[26 + inPos] & 32767) >>> 2)) & 255);
out[50 + outPos] = (byte)((
// [___43210]
// [43210__________]
((in[26 + inPos] & 32767) >>> 10)
| // [765_____]
// [____________210]
((in[27 + inPos] & 32767) << 5)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [____09876543___]
((in[27 + inPos] & 32767) >>> 3)) & 255);
out[52 + outPos] = (byte)((
// [____3210]
// [4321___________]
((in[27 + inPos] & 32767) >>> 11)
| // [7654____]
// [___________3210]
((in[28 + inPos] & 32767) << 4)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [___10987654____]
((in[28 + inPos] & 32767) >>> 4)) & 255);
out[54 + outPos] = (byte)((
// [_____210]
// [432____________]
((in[28 + inPos] & 32767) >>> 12)
| // [76543___]
// [__________43210]
((in[29 + inPos] & 32767) << 3)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [__21098765_____]
((in[29 + inPos] & 32767) >>> 5)) & 255);
out[56 + outPos] = (byte)((
// [______10]
// [43_____________]
((in[29 + inPos] & 32767) >>> 13)
| // [765432__]
// [_________543210]
((in[30 + inPos] & 32767) << 2)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [_32109876______]
((in[30 + inPos] & 32767) >>> 6)) & 255);
out[58 + outPos] = (byte)((
// [_______0]
// [4______________]
((in[30 + inPos] & 32767) >>> 14)
| // [7654321_]
// [________6543210]
((in[31 + inPos] & 32767) << 1)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [43210987_______]
((in[31 + inPos] & 32767) >>> 7)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in[ 1 + inPos]) << 8) & 32767);
out[ 1 + outPos] =
// [7_______]
// [______________0]
((((int)in[ 1 + inPos]) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in[ 2 + inPos]) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in[ 3 + inPos]) << 9) & 32767);
out[ 2 + outPos] =
// [76______]
// [_____________10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in[ 4 + inPos]) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in[ 5 + inPos]) << 10) & 32767);
out[ 3 + outPos] =
// [765_____]
// [____________210]
((((int)in[ 5 + inPos]) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in[ 6 + inPos]) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in[ 7 + inPos]) << 11) & 32767);
out[ 4 + outPos] =
// [7654____]
// [___________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in[ 9 + inPos]) << 12) & 32767);
out[ 5 + outPos] =
// [76543___]
// [__________43210]
((((int)in[ 9 + inPos]) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in[10 + inPos]) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in[11 + inPos]) << 13) & 32767);
out[ 6 + outPos] =
// [765432__]
// [_________543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in[12 + inPos]) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in[13 + inPos]) << 14) & 32767);
out[ 7 + outPos] =
// [7654321_]
// [________6543210]
((((int)in[13 + inPos]) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in[14 + inPos]) << 7) & 32767);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in.get( 1 + inPos)) << 8) & 32767);
out[ 1 + outPos] =
// [7_______]
// [______________0]
((((int)in.get( 1 + inPos)) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in.get( 2 + inPos)) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in.get( 3 + inPos)) << 9) & 32767);
out[ 2 + outPos] =
// [76______]
// [_____________10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in.get( 4 + inPos)) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in.get( 5 + inPos)) << 10) & 32767);
out[ 3 + outPos] =
// [765_____]
// [____________210]
((((int)in.get( 5 + inPos)) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in.get( 6 + inPos)) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in.get( 7 + inPos)) << 11) & 32767);
out[ 4 + outPos] =
// [7654____]
// [___________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in.get( 9 + inPos)) << 12) & 32767);
out[ 5 + outPos] =
// [76543___]
// [__________43210]
((((int)in.get( 9 + inPos)) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in.get(10 + inPos)) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in.get(11 + inPos)) << 13) & 32767);
out[ 6 + outPos] =
// [765432__]
// [_________543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in.get(12 + inPos)) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in.get(13 + inPos)) << 14) & 32767);
out[ 7 + outPos] =
// [7654321_]
// [________6543210]
((((int)in.get(13 + inPos)) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in.get(14 + inPos)) << 7) & 32767);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in[ 1 + inPos]) << 8) & 32767);
out[ 1 + outPos] =
// [7_______]
// [______________0]
((((int)in[ 1 + inPos]) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in[ 2 + inPos]) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in[ 3 + inPos]) << 9) & 32767);
out[ 2 + outPos] =
// [76______]
// [_____________10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in[ 4 + inPos]) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in[ 5 + inPos]) << 10) & 32767);
out[ 3 + outPos] =
// [765_____]
// [____________210]
((((int)in[ 5 + inPos]) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in[ 6 + inPos]) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in[ 7 + inPos]) << 11) & 32767);
out[ 4 + outPos] =
// [7654____]
// [___________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in[ 9 + inPos]) << 12) & 32767);
out[ 5 + outPos] =
// [76543___]
// [__________43210]
((((int)in[ 9 + inPos]) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in[10 + inPos]) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in[11 + inPos]) << 13) & 32767);
out[ 6 + outPos] =
// [765432__]
// [_________543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in[12 + inPos]) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in[13 + inPos]) << 14) & 32767);
out[ 7 + outPos] =
// [7654321_]
// [________6543210]
((((int)in[13 + inPos]) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in[14 + inPos]) << 7) & 32767);
out[ 8 + outPos] =
// [76543210]
// [_______76543210]
((((int)in[15 + inPos]) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in[16 + inPos]) << 8) & 32767);
out[ 9 + outPos] =
// [7_______]
// [______________0]
((((int)in[16 + inPos]) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in[17 + inPos]) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in[18 + inPos]) << 9) & 32767);
out[10 + outPos] =
// [76______]
// [_____________10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in[19 + inPos]) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in[20 + inPos]) << 10) & 32767);
out[11 + outPos] =
// [765_____]
// [____________210]
((((int)in[20 + inPos]) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in[21 + inPos]) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in[22 + inPos]) << 11) & 32767);
out[12 + outPos] =
// [7654____]
// [___________3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in[23 + inPos]) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in[24 + inPos]) << 12) & 32767);
out[13 + outPos] =
// [76543___]
// [__________43210]
((((int)in[24 + inPos]) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in[25 + inPos]) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in[26 + inPos]) << 13) & 32767);
out[14 + outPos] =
// [765432__]
// [_________543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in[27 + inPos]) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in[28 + inPos]) << 14) & 32767);
out[15 + outPos] =
// [7654321_]
// [________6543210]
((((int)in[28 + inPos]) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in[29 + inPos]) << 7) & 32767);
out[16 + outPos] =
// [76543210]
// [_______76543210]
((((int)in[30 + inPos]) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in[31 + inPos]) << 8) & 32767);
out[17 + outPos] =
// [7_______]
// [______________0]
((((int)in[31 + inPos]) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in[32 + inPos]) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in[33 + inPos]) << 9) & 32767);
out[18 + outPos] =
// [76______]
// [_____________10]
((((int)in[33 + inPos]) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in[34 + inPos]) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in[35 + inPos]) << 10) & 32767);
out[19 + outPos] =
// [765_____]
// [____________210]
((((int)in[35 + inPos]) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in[36 + inPos]) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in[37 + inPos]) << 11) & 32767);
out[20 + outPos] =
// [7654____]
// [___________3210]
((((int)in[37 + inPos]) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in[38 + inPos]) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in[39 + inPos]) << 12) & 32767);
out[21 + outPos] =
// [76543___]
// [__________43210]
((((int)in[39 + inPos]) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in[40 + inPos]) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in[41 + inPos]) << 13) & 32767);
out[22 + outPos] =
// [765432__]
// [_________543210]
((((int)in[41 + inPos]) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in[42 + inPos]) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in[43 + inPos]) << 14) & 32767);
out[23 + outPos] =
// [7654321_]
// [________6543210]
((((int)in[43 + inPos]) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in[44 + inPos]) << 7) & 32767);
out[24 + outPos] =
// [76543210]
// [_______76543210]
((((int)in[45 + inPos]) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in[46 + inPos]) << 8) & 32767);
out[25 + outPos] =
// [7_______]
// [______________0]
((((int)in[46 + inPos]) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in[47 + inPos]) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in[48 + inPos]) << 9) & 32767);
out[26 + outPos] =
// [76______]
// [_____________10]
((((int)in[48 + inPos]) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in[49 + inPos]) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in[50 + inPos]) << 10) & 32767);
out[27 + outPos] =
// [765_____]
// [____________210]
((((int)in[50 + inPos]) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in[51 + inPos]) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in[52 + inPos]) << 11) & 32767);
out[28 + outPos] =
// [7654____]
// [___________3210]
((((int)in[52 + inPos]) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in[53 + inPos]) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in[54 + inPos]) << 12) & 32767);
out[29 + outPos] =
// [76543___]
// [__________43210]
((((int)in[54 + inPos]) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in[55 + inPos]) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in[56 + inPos]) << 13) & 32767);
out[30 + outPos] =
// [765432__]
// [_________543210]
((((int)in[56 + inPos]) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in[57 + inPos]) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in[58 + inPos]) << 14) & 32767);
out[31 + outPos] =
// [7654321_]
// [________6543210]
((((int)in[58 + inPos]) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in[59 + inPos]) << 7) & 32767);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in.get( 1 + inPos)) << 8) & 32767);
out[ 1 + outPos] =
// [7_______]
// [______________0]
((((int)in.get( 1 + inPos)) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in.get( 2 + inPos)) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in.get( 3 + inPos)) << 9) & 32767);
out[ 2 + outPos] =
// [76______]
// [_____________10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in.get( 4 + inPos)) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in.get( 5 + inPos)) << 10) & 32767);
out[ 3 + outPos] =
// [765_____]
// [____________210]
((((int)in.get( 5 + inPos)) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in.get( 6 + inPos)) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in.get( 7 + inPos)) << 11) & 32767);
out[ 4 + outPos] =
// [7654____]
// [___________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in.get( 9 + inPos)) << 12) & 32767);
out[ 5 + outPos] =
// [76543___]
// [__________43210]
((((int)in.get( 9 + inPos)) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in.get(10 + inPos)) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in.get(11 + inPos)) << 13) & 32767);
out[ 6 + outPos] =
// [765432__]
// [_________543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in.get(12 + inPos)) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in.get(13 + inPos)) << 14) & 32767);
out[ 7 + outPos] =
// [7654321_]
// [________6543210]
((((int)in.get(13 + inPos)) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in.get(14 + inPos)) << 7) & 32767);
out[ 8 + outPos] =
// [76543210]
// [_______76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in.get(16 + inPos)) << 8) & 32767);
out[ 9 + outPos] =
// [7_______]
// [______________0]
((((int)in.get(16 + inPos)) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in.get(17 + inPos)) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in.get(18 + inPos)) << 9) & 32767);
out[10 + outPos] =
// [76______]
// [_____________10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in.get(19 + inPos)) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in.get(20 + inPos)) << 10) & 32767);
out[11 + outPos] =
// [765_____]
// [____________210]
((((int)in.get(20 + inPos)) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in.get(21 + inPos)) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in.get(22 + inPos)) << 11) & 32767);
out[12 + outPos] =
// [7654____]
// [___________3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in.get(23 + inPos)) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in.get(24 + inPos)) << 12) & 32767);
out[13 + outPos] =
// [76543___]
// [__________43210]
((((int)in.get(24 + inPos)) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in.get(25 + inPos)) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in.get(26 + inPos)) << 13) & 32767);
out[14 + outPos] =
// [765432__]
// [_________543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in.get(27 + inPos)) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in.get(28 + inPos)) << 14) & 32767);
out[15 + outPos] =
// [7654321_]
// [________6543210]
((((int)in.get(28 + inPos)) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in.get(29 + inPos)) << 7) & 32767);
out[16 + outPos] =
// [76543210]
// [_______76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in.get(31 + inPos)) << 8) & 32767);
out[17 + outPos] =
// [7_______]
// [______________0]
((((int)in.get(31 + inPos)) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in.get(32 + inPos)) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in.get(33 + inPos)) << 9) & 32767);
out[18 + outPos] =
// [76______]
// [_____________10]
((((int)in.get(33 + inPos)) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in.get(34 + inPos)) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in.get(35 + inPos)) << 10) & 32767);
out[19 + outPos] =
// [765_____]
// [____________210]
((((int)in.get(35 + inPos)) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in.get(36 + inPos)) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in.get(37 + inPos)) << 11) & 32767);
out[20 + outPos] =
// [7654____]
// [___________3210]
((((int)in.get(37 + inPos)) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in.get(38 + inPos)) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in.get(39 + inPos)) << 12) & 32767);
out[21 + outPos] =
// [76543___]
// [__________43210]
((((int)in.get(39 + inPos)) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in.get(40 + inPos)) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in.get(41 + inPos)) << 13) & 32767);
out[22 + outPos] =
// [765432__]
// [_________543210]
((((int)in.get(41 + inPos)) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in.get(42 + inPos)) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in.get(43 + inPos)) << 14) & 32767);
out[23 + outPos] =
// [7654321_]
// [________6543210]
((((int)in.get(43 + inPos)) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in.get(44 + inPos)) << 7) & 32767);
out[24 + outPos] =
// [76543210]
// [_______76543210]
((((int)in.get(45 + inPos)) ) & 255)
| // [_6543210]
// [4321098________]
((((int)in.get(46 + inPos)) << 8) & 32767);
out[25 + outPos] =
// [7_______]
// [______________0]
((((int)in.get(46 + inPos)) >> 7) & 1)
| // [76543210]
// [______87654321_]
((((int)in.get(47 + inPos)) << 1) & 511)
| // [__543210]
// [432109_________]
((((int)in.get(48 + inPos)) << 9) & 32767);
out[26 + outPos] =
// [76______]
// [_____________10]
((((int)in.get(48 + inPos)) >> 6) & 3)
| // [76543210]
// [_____98765432__]
((((int)in.get(49 + inPos)) << 2) & 1023)
| // [___43210]
// [43210__________]
((((int)in.get(50 + inPos)) << 10) & 32767);
out[27 + outPos] =
// [765_____]
// [____________210]
((((int)in.get(50 + inPos)) >> 5) & 7)
| // [76543210]
// [____09876543___]
((((int)in.get(51 + inPos)) << 3) & 2047)
| // [____3210]
// [4321___________]
((((int)in.get(52 + inPos)) << 11) & 32767);
out[28 + outPos] =
// [7654____]
// [___________3210]
((((int)in.get(52 + inPos)) >> 4) & 15)
| // [76543210]
// [___10987654____]
((((int)in.get(53 + inPos)) << 4) & 4095)
| // [_____210]
// [432____________]
((((int)in.get(54 + inPos)) << 12) & 32767);
out[29 + outPos] =
// [76543___]
// [__________43210]
((((int)in.get(54 + inPos)) >> 3) & 31)
| // [76543210]
// [__21098765_____]
((((int)in.get(55 + inPos)) << 5) & 8191)
| // [______10]
// [43_____________]
((((int)in.get(56 + inPos)) << 13) & 32767);
out[30 + outPos] =
// [765432__]
// [_________543210]
((((int)in.get(56 + inPos)) >> 2) & 63)
| // [76543210]
// [_32109876______]
((((int)in.get(57 + inPos)) << 6) & 16383)
| // [_______0]
// [4______________]
((((int)in.get(58 + inPos)) << 14) & 32767);
out[31 + outPos] =
// [7654321_]
// [________6543210]
((((int)in.get(58 + inPos)) >> 1) & 127)
| // [76543210]
// [43210987_______]
((((int)in.get(59 + inPos)) << 7) & 32767);
}
}
private static final class Packer16 extends BytePacker {
private Packer16() {
super(16);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 0 + inPos] & 65535))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 0 + inPos] & 65535) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 1 + inPos] & 65535))) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 1 + inPos] & 65535) >>> 8)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 2 + inPos] & 65535))) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 2 + inPos] & 65535) >>> 8)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 3 + inPos] & 65535))) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 3 + inPos] & 65535) >>> 8)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 4 + inPos] & 65535))) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 4 + inPos] & 65535) >>> 8)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 5 + inPos] & 65535))) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 5 + inPos] & 65535) >>> 8)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 6 + inPos] & 65535))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 6 + inPos] & 65535) >>> 8)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 7 + inPos] & 65535))) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 7 + inPos] & 65535) >>> 8)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 0 + inPos] & 65535))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 0 + inPos] & 65535) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 1 + inPos] & 65535))) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 1 + inPos] & 65535) >>> 8)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 2 + inPos] & 65535))) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 2 + inPos] & 65535) >>> 8)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 3 + inPos] & 65535))) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 3 + inPos] & 65535) >>> 8)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 4 + inPos] & 65535))) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 4 + inPos] & 65535) >>> 8)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 5 + inPos] & 65535))) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 5 + inPos] & 65535) >>> 8)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 6 + inPos] & 65535))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 6 + inPos] & 65535) >>> 8)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 7 + inPos] & 65535))) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 7 + inPos] & 65535) >>> 8)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 8 + inPos] & 65535))) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 8 + inPos] & 65535) >>> 8)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[ 9 + inPos] & 65535))) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[ 9 + inPos] & 65535) >>> 8)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[10 + inPos] & 65535))) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[10 + inPos] & 65535) >>> 8)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[11 + inPos] & 65535))) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[11 + inPos] & 65535) >>> 8)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[12 + inPos] & 65535))) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[12 + inPos] & 65535) >>> 8)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[13 + inPos] & 65535))) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[13 + inPos] & 65535) >>> 8)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[14 + inPos] & 65535))) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[14 + inPos] & 65535) >>> 8)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[15 + inPos] & 65535))) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[15 + inPos] & 65535) >>> 8)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[16 + inPos] & 65535))) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[16 + inPos] & 65535) >>> 8)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[17 + inPos] & 65535))) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[17 + inPos] & 65535) >>> 8)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[18 + inPos] & 65535))) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[18 + inPos] & 65535) >>> 8)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[19 + inPos] & 65535))) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[19 + inPos] & 65535) >>> 8)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[20 + inPos] & 65535))) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[20 + inPos] & 65535) >>> 8)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[21 + inPos] & 65535))) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[21 + inPos] & 65535) >>> 8)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[22 + inPos] & 65535))) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[22 + inPos] & 65535) >>> 8)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[23 + inPos] & 65535))) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[23 + inPos] & 65535) >>> 8)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[24 + inPos] & 65535))) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[24 + inPos] & 65535) >>> 8)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[25 + inPos] & 65535))) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[25 + inPos] & 65535) >>> 8)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[26 + inPos] & 65535))) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[26 + inPos] & 65535) >>> 8)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[27 + inPos] & 65535))) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[27 + inPos] & 65535) >>> 8)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[28 + inPos] & 65535))) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[28 + inPos] & 65535) >>> 8)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[29 + inPos] & 65535))) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[29 + inPos] & 65535) >>> 8)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[30 + inPos] & 65535))) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[30 + inPos] & 65535) >>> 8)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [________76543210]
((in[31 + inPos] & 65535))) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [54321098________]
((in[31 + inPos] & 65535) >>> 8)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535);
out[ 1 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 2 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 3 + inPos]) << 8) & 65535);
out[ 2 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 4 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 5 + inPos]) << 8) & 65535);
out[ 3 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 6 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 7 + inPos]) << 8) & 65535);
out[ 4 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 8 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 9 + inPos]) << 8) & 65535);
out[ 5 + outPos] =
// [76543210]
// [________76543210]
((((int)in[10 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[11 + inPos]) << 8) & 65535);
out[ 6 + outPos] =
// [76543210]
// [________76543210]
((((int)in[12 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[13 + inPos]) << 8) & 65535);
out[ 7 + outPos] =
// [76543210]
// [________76543210]
((((int)in[14 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[15 + inPos]) << 8) & 65535);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535);
out[ 1 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 2 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 3 + inPos)) << 8) & 65535);
out[ 2 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 4 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 5 + inPos)) << 8) & 65535);
out[ 3 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 6 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 7 + inPos)) << 8) & 65535);
out[ 4 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 8 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 9 + inPos)) << 8) & 65535);
out[ 5 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(10 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(11 + inPos)) << 8) & 65535);
out[ 6 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(13 + inPos)) << 8) & 65535);
out[ 7 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(14 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(15 + inPos)) << 8) & 65535);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535);
out[ 1 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 2 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 3 + inPos]) << 8) & 65535);
out[ 2 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 4 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 5 + inPos]) << 8) & 65535);
out[ 3 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 6 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 7 + inPos]) << 8) & 65535);
out[ 4 + outPos] =
// [76543210]
// [________76543210]
((((int)in[ 8 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[ 9 + inPos]) << 8) & 65535);
out[ 5 + outPos] =
// [76543210]
// [________76543210]
((((int)in[10 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[11 + inPos]) << 8) & 65535);
out[ 6 + outPos] =
// [76543210]
// [________76543210]
((((int)in[12 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[13 + inPos]) << 8) & 65535);
out[ 7 + outPos] =
// [76543210]
// [________76543210]
((((int)in[14 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[15 + inPos]) << 8) & 65535);
out[ 8 + outPos] =
// [76543210]
// [________76543210]
((((int)in[16 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[17 + inPos]) << 8) & 65535);
out[ 9 + outPos] =
// [76543210]
// [________76543210]
((((int)in[18 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[19 + inPos]) << 8) & 65535);
out[10 + outPos] =
// [76543210]
// [________76543210]
((((int)in[20 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[21 + inPos]) << 8) & 65535);
out[11 + outPos] =
// [76543210]
// [________76543210]
((((int)in[22 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[23 + inPos]) << 8) & 65535);
out[12 + outPos] =
// [76543210]
// [________76543210]
((((int)in[24 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[25 + inPos]) << 8) & 65535);
out[13 + outPos] =
// [76543210]
// [________76543210]
((((int)in[26 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[27 + inPos]) << 8) & 65535);
out[14 + outPos] =
// [76543210]
// [________76543210]
((((int)in[28 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[29 + inPos]) << 8) & 65535);
out[15 + outPos] =
// [76543210]
// [________76543210]
((((int)in[30 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[31 + inPos]) << 8) & 65535);
out[16 + outPos] =
// [76543210]
// [________76543210]
((((int)in[32 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[33 + inPos]) << 8) & 65535);
out[17 + outPos] =
// [76543210]
// [________76543210]
((((int)in[34 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[35 + inPos]) << 8) & 65535);
out[18 + outPos] =
// [76543210]
// [________76543210]
((((int)in[36 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[37 + inPos]) << 8) & 65535);
out[19 + outPos] =
// [76543210]
// [________76543210]
((((int)in[38 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[39 + inPos]) << 8) & 65535);
out[20 + outPos] =
// [76543210]
// [________76543210]
((((int)in[40 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[41 + inPos]) << 8) & 65535);
out[21 + outPos] =
// [76543210]
// [________76543210]
((((int)in[42 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[43 + inPos]) << 8) & 65535);
out[22 + outPos] =
// [76543210]
// [________76543210]
((((int)in[44 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[45 + inPos]) << 8) & 65535);
out[23 + outPos] =
// [76543210]
// [________76543210]
((((int)in[46 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[47 + inPos]) << 8) & 65535);
out[24 + outPos] =
// [76543210]
// [________76543210]
((((int)in[48 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[49 + inPos]) << 8) & 65535);
out[25 + outPos] =
// [76543210]
// [________76543210]
((((int)in[50 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[51 + inPos]) << 8) & 65535);
out[26 + outPos] =
// [76543210]
// [________76543210]
((((int)in[52 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[53 + inPos]) << 8) & 65535);
out[27 + outPos] =
// [76543210]
// [________76543210]
((((int)in[54 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[55 + inPos]) << 8) & 65535);
out[28 + outPos] =
// [76543210]
// [________76543210]
((((int)in[56 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[57 + inPos]) << 8) & 65535);
out[29 + outPos] =
// [76543210]
// [________76543210]
((((int)in[58 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[59 + inPos]) << 8) & 65535);
out[30 + outPos] =
// [76543210]
// [________76543210]
((((int)in[60 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[61 + inPos]) << 8) & 65535);
out[31 + outPos] =
// [76543210]
// [________76543210]
((((int)in[62 + inPos]) ) & 255)
| // [76543210]
// [54321098________]
((((int)in[63 + inPos]) << 8) & 65535);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535);
out[ 1 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 2 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 3 + inPos)) << 8) & 65535);
out[ 2 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 4 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 5 + inPos)) << 8) & 65535);
out[ 3 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 6 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 7 + inPos)) << 8) & 65535);
out[ 4 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get( 8 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get( 9 + inPos)) << 8) & 65535);
out[ 5 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(10 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(11 + inPos)) << 8) & 65535);
out[ 6 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(13 + inPos)) << 8) & 65535);
out[ 7 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(14 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(15 + inPos)) << 8) & 65535);
out[ 8 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(16 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(17 + inPos)) << 8) & 65535);
out[ 9 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(18 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(19 + inPos)) << 8) & 65535);
out[10 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(20 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(21 + inPos)) << 8) & 65535);
out[11 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(22 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(23 + inPos)) << 8) & 65535);
out[12 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(24 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(25 + inPos)) << 8) & 65535);
out[13 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(26 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(27 + inPos)) << 8) & 65535);
out[14 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(28 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(29 + inPos)) << 8) & 65535);
out[15 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(31 + inPos)) << 8) & 65535);
out[16 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(32 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(33 + inPos)) << 8) & 65535);
out[17 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(34 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(35 + inPos)) << 8) & 65535);
out[18 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(36 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(37 + inPos)) << 8) & 65535);
out[19 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(38 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(39 + inPos)) << 8) & 65535);
out[20 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(40 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(41 + inPos)) << 8) & 65535);
out[21 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(42 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(43 + inPos)) << 8) & 65535);
out[22 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(44 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(45 + inPos)) << 8) & 65535);
out[23 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(46 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(47 + inPos)) << 8) & 65535);
out[24 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(48 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(49 + inPos)) << 8) & 65535);
out[25 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(50 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(51 + inPos)) << 8) & 65535);
out[26 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(52 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(53 + inPos)) << 8) & 65535);
out[27 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(54 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(55 + inPos)) << 8) & 65535);
out[28 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(56 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(57 + inPos)) << 8) & 65535);
out[29 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(58 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(59 + inPos)) << 8) & 65535);
out[30 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(60 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(61 + inPos)) << 8) & 65535);
out[31 + outPos] =
// [76543210]
// [________76543210]
((((int)in.get(62 + inPos)) ) & 255)
| // [76543210]
// [54321098________]
((((int)in.get(63 + inPos)) << 8) & 65535);
}
}
private static final class Packer17 extends BytePacker {
private Packer17() {
super(17);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_________76543210]
((in[ 0 + inPos] & 131071))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_54321098________]
((in[ 0 + inPos] & 131071) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [_______0]
// [6________________]
((in[ 0 + inPos] & 131071) >>> 16)
| // [7654321_]
// [__________6543210]
((in[ 1 + inPos] & 131071) << 1)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [__43210987_______]
((in[ 1 + inPos] & 131071) >>> 7)) & 255);
out[ 4 + outPos] = (byte)((
// [______10]
// [65_______________]
((in[ 1 + inPos] & 131071) >>> 15)
| // [765432__]
// [___________543210]
((in[ 2 + inPos] & 131071) << 2)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [___32109876______]
((in[ 2 + inPos] & 131071) >>> 6)) & 255);
out[ 6 + outPos] = (byte)((
// [_____210]
// [654______________]
((in[ 2 + inPos] & 131071) >>> 14)
| // [76543___]
// [____________43210]
((in[ 3 + inPos] & 131071) << 3)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [____21098765_____]
((in[ 3 + inPos] & 131071) >>> 5)) & 255);
out[ 8 + outPos] = (byte)((
// [____3210]
// [6543_____________]
((in[ 3 + inPos] & 131071) >>> 13)
| // [7654____]
// [_____________3210]
((in[ 4 + inPos] & 131071) << 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_____10987654____]
((in[ 4 + inPos] & 131071) >>> 4)) & 255);
out[10 + outPos] = (byte)((
// [___43210]
// [65432____________]
((in[ 4 + inPos] & 131071) >>> 12)
| // [765_____]
// [______________210]
((in[ 5 + inPos] & 131071) << 5)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [______09876543___]
((in[ 5 + inPos] & 131071) >>> 3)) & 255);
out[12 + outPos] = (byte)((
// [__543210]
// [654321___________]
((in[ 5 + inPos] & 131071) >>> 11)
| // [76______]
// [_______________10]
((in[ 6 + inPos] & 131071) << 6)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [_______98765432__]
((in[ 6 + inPos] & 131071) >>> 2)) & 255);
out[14 + outPos] = (byte)((
// [_6543210]
// [6543210__________]
((in[ 6 + inPos] & 131071) >>> 10)
| // [7_______]
// [________________0]
((in[ 7 + inPos] & 131071) << 7)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [________87654321_]
((in[ 7 + inPos] & 131071) >>> 1)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [65432109_________]
((in[ 7 + inPos] & 131071) >>> 9)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_________76543210]
((in[ 0 + inPos] & 131071))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_54321098________]
((in[ 0 + inPos] & 131071) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [_______0]
// [6________________]
((in[ 0 + inPos] & 131071) >>> 16)
| // [7654321_]
// [__________6543210]
((in[ 1 + inPos] & 131071) << 1)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [__43210987_______]
((in[ 1 + inPos] & 131071) >>> 7)) & 255);
out[ 4 + outPos] = (byte)((
// [______10]
// [65_______________]
((in[ 1 + inPos] & 131071) >>> 15)
| // [765432__]
// [___________543210]
((in[ 2 + inPos] & 131071) << 2)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [___32109876______]
((in[ 2 + inPos] & 131071) >>> 6)) & 255);
out[ 6 + outPos] = (byte)((
// [_____210]
// [654______________]
((in[ 2 + inPos] & 131071) >>> 14)
| // [76543___]
// [____________43210]
((in[ 3 + inPos] & 131071) << 3)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [____21098765_____]
((in[ 3 + inPos] & 131071) >>> 5)) & 255);
out[ 8 + outPos] = (byte)((
// [____3210]
// [6543_____________]
((in[ 3 + inPos] & 131071) >>> 13)
| // [7654____]
// [_____________3210]
((in[ 4 + inPos] & 131071) << 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_____10987654____]
((in[ 4 + inPos] & 131071) >>> 4)) & 255);
out[10 + outPos] = (byte)((
// [___43210]
// [65432____________]
((in[ 4 + inPos] & 131071) >>> 12)
| // [765_____]
// [______________210]
((in[ 5 + inPos] & 131071) << 5)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [______09876543___]
((in[ 5 + inPos] & 131071) >>> 3)) & 255);
out[12 + outPos] = (byte)((
// [__543210]
// [654321___________]
((in[ 5 + inPos] & 131071) >>> 11)
| // [76______]
// [_______________10]
((in[ 6 + inPos] & 131071) << 6)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [_______98765432__]
((in[ 6 + inPos] & 131071) >>> 2)) & 255);
out[14 + outPos] = (byte)((
// [_6543210]
// [6543210__________]
((in[ 6 + inPos] & 131071) >>> 10)
| // [7_______]
// [________________0]
((in[ 7 + inPos] & 131071) << 7)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [________87654321_]
((in[ 7 + inPos] & 131071) >>> 1)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [65432109_________]
((in[ 7 + inPos] & 131071) >>> 9)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [_________76543210]
((in[ 8 + inPos] & 131071))) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [_54321098________]
((in[ 8 + inPos] & 131071) >>> 8)) & 255);
out[19 + outPos] = (byte)((
// [_______0]
// [6________________]
((in[ 8 + inPos] & 131071) >>> 16)
| // [7654321_]
// [__________6543210]
((in[ 9 + inPos] & 131071) << 1)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [__43210987_______]
((in[ 9 + inPos] & 131071) >>> 7)) & 255);
out[21 + outPos] = (byte)((
// [______10]
// [65_______________]
((in[ 9 + inPos] & 131071) >>> 15)
| // [765432__]
// [___________543210]
((in[10 + inPos] & 131071) << 2)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [___32109876______]
((in[10 + inPos] & 131071) >>> 6)) & 255);
out[23 + outPos] = (byte)((
// [_____210]
// [654______________]
((in[10 + inPos] & 131071) >>> 14)
| // [76543___]
// [____________43210]
((in[11 + inPos] & 131071) << 3)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [____21098765_____]
((in[11 + inPos] & 131071) >>> 5)) & 255);
out[25 + outPos] = (byte)((
// [____3210]
// [6543_____________]
((in[11 + inPos] & 131071) >>> 13)
| // [7654____]
// [_____________3210]
((in[12 + inPos] & 131071) << 4)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [_____10987654____]
((in[12 + inPos] & 131071) >>> 4)) & 255);
out[27 + outPos] = (byte)((
// [___43210]
// [65432____________]
((in[12 + inPos] & 131071) >>> 12)
| // [765_____]
// [______________210]
((in[13 + inPos] & 131071) << 5)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [______09876543___]
((in[13 + inPos] & 131071) >>> 3)) & 255);
out[29 + outPos] = (byte)((
// [__543210]
// [654321___________]
((in[13 + inPos] & 131071) >>> 11)
| // [76______]
// [_______________10]
((in[14 + inPos] & 131071) << 6)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [_______98765432__]
((in[14 + inPos] & 131071) >>> 2)) & 255);
out[31 + outPos] = (byte)((
// [_6543210]
// [6543210__________]
((in[14 + inPos] & 131071) >>> 10)
| // [7_______]
// [________________0]
((in[15 + inPos] & 131071) << 7)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [________87654321_]
((in[15 + inPos] & 131071) >>> 1)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [65432109_________]
((in[15 + inPos] & 131071) >>> 9)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [_________76543210]
((in[16 + inPos] & 131071))) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [_54321098________]
((in[16 + inPos] & 131071) >>> 8)) & 255);
out[36 + outPos] = (byte)((
// [_______0]
// [6________________]
((in[16 + inPos] & 131071) >>> 16)
| // [7654321_]
// [__________6543210]
((in[17 + inPos] & 131071) << 1)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [__43210987_______]
((in[17 + inPos] & 131071) >>> 7)) & 255);
out[38 + outPos] = (byte)((
// [______10]
// [65_______________]
((in[17 + inPos] & 131071) >>> 15)
| // [765432__]
// [___________543210]
((in[18 + inPos] & 131071) << 2)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [___32109876______]
((in[18 + inPos] & 131071) >>> 6)) & 255);
out[40 + outPos] = (byte)((
// [_____210]
// [654______________]
((in[18 + inPos] & 131071) >>> 14)
| // [76543___]
// [____________43210]
((in[19 + inPos] & 131071) << 3)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [____21098765_____]
((in[19 + inPos] & 131071) >>> 5)) & 255);
out[42 + outPos] = (byte)((
// [____3210]
// [6543_____________]
((in[19 + inPos] & 131071) >>> 13)
| // [7654____]
// [_____________3210]
((in[20 + inPos] & 131071) << 4)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [_____10987654____]
((in[20 + inPos] & 131071) >>> 4)) & 255);
out[44 + outPos] = (byte)((
// [___43210]
// [65432____________]
((in[20 + inPos] & 131071) >>> 12)
| // [765_____]
// [______________210]
((in[21 + inPos] & 131071) << 5)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [______09876543___]
((in[21 + inPos] & 131071) >>> 3)) & 255);
out[46 + outPos] = (byte)((
// [__543210]
// [654321___________]
((in[21 + inPos] & 131071) >>> 11)
| // [76______]
// [_______________10]
((in[22 + inPos] & 131071) << 6)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [_______98765432__]
((in[22 + inPos] & 131071) >>> 2)) & 255);
out[48 + outPos] = (byte)((
// [_6543210]
// [6543210__________]
((in[22 + inPos] & 131071) >>> 10)
| // [7_______]
// [________________0]
((in[23 + inPos] & 131071) << 7)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [________87654321_]
((in[23 + inPos] & 131071) >>> 1)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [65432109_________]
((in[23 + inPos] & 131071) >>> 9)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [_________76543210]
((in[24 + inPos] & 131071))) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [_54321098________]
((in[24 + inPos] & 131071) >>> 8)) & 255);
out[53 + outPos] = (byte)((
// [_______0]
// [6________________]
((in[24 + inPos] & 131071) >>> 16)
| // [7654321_]
// [__________6543210]
((in[25 + inPos] & 131071) << 1)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [__43210987_______]
((in[25 + inPos] & 131071) >>> 7)) & 255);
out[55 + outPos] = (byte)((
// [______10]
// [65_______________]
((in[25 + inPos] & 131071) >>> 15)
| // [765432__]
// [___________543210]
((in[26 + inPos] & 131071) << 2)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [___32109876______]
((in[26 + inPos] & 131071) >>> 6)) & 255);
out[57 + outPos] = (byte)((
// [_____210]
// [654______________]
((in[26 + inPos] & 131071) >>> 14)
| // [76543___]
// [____________43210]
((in[27 + inPos] & 131071) << 3)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [____21098765_____]
((in[27 + inPos] & 131071) >>> 5)) & 255);
out[59 + outPos] = (byte)((
// [____3210]
// [6543_____________]
((in[27 + inPos] & 131071) >>> 13)
| // [7654____]
// [_____________3210]
((in[28 + inPos] & 131071) << 4)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [_____10987654____]
((in[28 + inPos] & 131071) >>> 4)) & 255);
out[61 + outPos] = (byte)((
// [___43210]
// [65432____________]
((in[28 + inPos] & 131071) >>> 12)
| // [765_____]
// [______________210]
((in[29 + inPos] & 131071) << 5)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [______09876543___]
((in[29 + inPos] & 131071) >>> 3)) & 255);
out[63 + outPos] = (byte)((
// [__543210]
// [654321___________]
((in[29 + inPos] & 131071) >>> 11)
| // [76______]
// [_______________10]
((in[30 + inPos] & 131071) << 6)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [_______98765432__]
((in[30 + inPos] & 131071) >>> 2)) & 255);
out[65 + outPos] = (byte)((
// [_6543210]
// [6543210__________]
((in[30 + inPos] & 131071) >>> 10)
| // [7_______]
// [________________0]
((in[31 + inPos] & 131071) << 7)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [________87654321_]
((in[31 + inPos] & 131071) >>> 1)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [65432109_________]
((in[31 + inPos] & 131071) >>> 9)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in[ 2 + inPos]) << 16) & 131071);
out[ 1 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in[ 2 + inPos]) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in[ 3 + inPos]) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in[ 4 + inPos]) << 15) & 131071);
out[ 2 + outPos] =
// [765432__]
// [___________543210]
((((int)in[ 4 + inPos]) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in[ 5 + inPos]) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in[ 6 + inPos]) << 14) & 131071);
out[ 3 + outPos] =
// [76543___]
// [____________43210]
((((int)in[ 6 + inPos]) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in[ 7 + inPos]) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in[ 8 + inPos]) << 13) & 131071);
out[ 4 + outPos] =
// [7654____]
// [_____________3210]
((((int)in[ 8 + inPos]) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in[ 9 + inPos]) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in[10 + inPos]) << 12) & 131071);
out[ 5 + outPos] =
// [765_____]
// [______________210]
((((int)in[10 + inPos]) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in[11 + inPos]) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in[12 + inPos]) << 11) & 131071);
out[ 6 + outPos] =
// [76______]
// [_______________10]
((((int)in[12 + inPos]) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in[13 + inPos]) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in[14 + inPos]) << 10) & 131071);
out[ 7 + outPos] =
// [7_______]
// [________________0]
((((int)in[14 + inPos]) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in[15 + inPos]) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in[16 + inPos]) << 9) & 131071);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in.get( 2 + inPos)) << 16) & 131071);
out[ 1 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in.get( 2 + inPos)) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in.get( 3 + inPos)) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in.get( 4 + inPos)) << 15) & 131071);
out[ 2 + outPos] =
// [765432__]
// [___________543210]
((((int)in.get( 4 + inPos)) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in.get( 5 + inPos)) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in.get( 6 + inPos)) << 14) & 131071);
out[ 3 + outPos] =
// [76543___]
// [____________43210]
((((int)in.get( 6 + inPos)) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in.get( 7 + inPos)) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in.get( 8 + inPos)) << 13) & 131071);
out[ 4 + outPos] =
// [7654____]
// [_____________3210]
((((int)in.get( 8 + inPos)) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in.get( 9 + inPos)) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in.get(10 + inPos)) << 12) & 131071);
out[ 5 + outPos] =
// [765_____]
// [______________210]
((((int)in.get(10 + inPos)) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in.get(11 + inPos)) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in.get(12 + inPos)) << 11) & 131071);
out[ 6 + outPos] =
// [76______]
// [_______________10]
((((int)in.get(12 + inPos)) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in.get(13 + inPos)) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in.get(14 + inPos)) << 10) & 131071);
out[ 7 + outPos] =
// [7_______]
// [________________0]
((((int)in.get(14 + inPos)) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in.get(15 + inPos)) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in.get(16 + inPos)) << 9) & 131071);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in[ 2 + inPos]) << 16) & 131071);
out[ 1 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in[ 2 + inPos]) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in[ 3 + inPos]) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in[ 4 + inPos]) << 15) & 131071);
out[ 2 + outPos] =
// [765432__]
// [___________543210]
((((int)in[ 4 + inPos]) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in[ 5 + inPos]) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in[ 6 + inPos]) << 14) & 131071);
out[ 3 + outPos] =
// [76543___]
// [____________43210]
((((int)in[ 6 + inPos]) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in[ 7 + inPos]) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in[ 8 + inPos]) << 13) & 131071);
out[ 4 + outPos] =
// [7654____]
// [_____________3210]
((((int)in[ 8 + inPos]) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in[ 9 + inPos]) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in[10 + inPos]) << 12) & 131071);
out[ 5 + outPos] =
// [765_____]
// [______________210]
((((int)in[10 + inPos]) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in[11 + inPos]) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in[12 + inPos]) << 11) & 131071);
out[ 6 + outPos] =
// [76______]
// [_______________10]
((((int)in[12 + inPos]) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in[13 + inPos]) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in[14 + inPos]) << 10) & 131071);
out[ 7 + outPos] =
// [7_______]
// [________________0]
((((int)in[14 + inPos]) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in[15 + inPos]) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in[16 + inPos]) << 9) & 131071);
out[ 8 + outPos] =
// [76543210]
// [_________76543210]
((((int)in[17 + inPos]) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in[18 + inPos]) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in[19 + inPos]) << 16) & 131071);
out[ 9 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in[19 + inPos]) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in[20 + inPos]) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in[21 + inPos]) << 15) & 131071);
out[10 + outPos] =
// [765432__]
// [___________543210]
((((int)in[21 + inPos]) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in[22 + inPos]) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in[23 + inPos]) << 14) & 131071);
out[11 + outPos] =
// [76543___]
// [____________43210]
((((int)in[23 + inPos]) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in[24 + inPos]) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in[25 + inPos]) << 13) & 131071);
out[12 + outPos] =
// [7654____]
// [_____________3210]
((((int)in[25 + inPos]) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in[26 + inPos]) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in[27 + inPos]) << 12) & 131071);
out[13 + outPos] =
// [765_____]
// [______________210]
((((int)in[27 + inPos]) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in[28 + inPos]) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in[29 + inPos]) << 11) & 131071);
out[14 + outPos] =
// [76______]
// [_______________10]
((((int)in[29 + inPos]) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in[30 + inPos]) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in[31 + inPos]) << 10) & 131071);
out[15 + outPos] =
// [7_______]
// [________________0]
((((int)in[31 + inPos]) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in[32 + inPos]) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in[33 + inPos]) << 9) & 131071);
out[16 + outPos] =
// [76543210]
// [_________76543210]
((((int)in[34 + inPos]) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in[35 + inPos]) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in[36 + inPos]) << 16) & 131071);
out[17 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in[36 + inPos]) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in[37 + inPos]) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in[38 + inPos]) << 15) & 131071);
out[18 + outPos] =
// [765432__]
// [___________543210]
((((int)in[38 + inPos]) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in[39 + inPos]) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in[40 + inPos]) << 14) & 131071);
out[19 + outPos] =
// [76543___]
// [____________43210]
((((int)in[40 + inPos]) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in[41 + inPos]) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in[42 + inPos]) << 13) & 131071);
out[20 + outPos] =
// [7654____]
// [_____________3210]
((((int)in[42 + inPos]) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in[43 + inPos]) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in[44 + inPos]) << 12) & 131071);
out[21 + outPos] =
// [765_____]
// [______________210]
((((int)in[44 + inPos]) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in[45 + inPos]) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in[46 + inPos]) << 11) & 131071);
out[22 + outPos] =
// [76______]
// [_______________10]
((((int)in[46 + inPos]) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in[47 + inPos]) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in[48 + inPos]) << 10) & 131071);
out[23 + outPos] =
// [7_______]
// [________________0]
((((int)in[48 + inPos]) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in[49 + inPos]) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in[50 + inPos]) << 9) & 131071);
out[24 + outPos] =
// [76543210]
// [_________76543210]
((((int)in[51 + inPos]) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in[52 + inPos]) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in[53 + inPos]) << 16) & 131071);
out[25 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in[53 + inPos]) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in[54 + inPos]) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in[55 + inPos]) << 15) & 131071);
out[26 + outPos] =
// [765432__]
// [___________543210]
((((int)in[55 + inPos]) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in[56 + inPos]) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in[57 + inPos]) << 14) & 131071);
out[27 + outPos] =
// [76543___]
// [____________43210]
((((int)in[57 + inPos]) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in[58 + inPos]) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in[59 + inPos]) << 13) & 131071);
out[28 + outPos] =
// [7654____]
// [_____________3210]
((((int)in[59 + inPos]) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in[60 + inPos]) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in[61 + inPos]) << 12) & 131071);
out[29 + outPos] =
// [765_____]
// [______________210]
((((int)in[61 + inPos]) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in[62 + inPos]) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in[63 + inPos]) << 11) & 131071);
out[30 + outPos] =
// [76______]
// [_______________10]
((((int)in[63 + inPos]) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in[64 + inPos]) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in[65 + inPos]) << 10) & 131071);
out[31 + outPos] =
// [7_______]
// [________________0]
((((int)in[65 + inPos]) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in[66 + inPos]) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in[67 + inPos]) << 9) & 131071);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in.get( 2 + inPos)) << 16) & 131071);
out[ 1 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in.get( 2 + inPos)) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in.get( 3 + inPos)) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in.get( 4 + inPos)) << 15) & 131071);
out[ 2 + outPos] =
// [765432__]
// [___________543210]
((((int)in.get( 4 + inPos)) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in.get( 5 + inPos)) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in.get( 6 + inPos)) << 14) & 131071);
out[ 3 + outPos] =
// [76543___]
// [____________43210]
((((int)in.get( 6 + inPos)) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in.get( 7 + inPos)) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in.get( 8 + inPos)) << 13) & 131071);
out[ 4 + outPos] =
// [7654____]
// [_____________3210]
((((int)in.get( 8 + inPos)) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in.get( 9 + inPos)) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in.get(10 + inPos)) << 12) & 131071);
out[ 5 + outPos] =
// [765_____]
// [______________210]
((((int)in.get(10 + inPos)) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in.get(11 + inPos)) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in.get(12 + inPos)) << 11) & 131071);
out[ 6 + outPos] =
// [76______]
// [_______________10]
((((int)in.get(12 + inPos)) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in.get(13 + inPos)) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in.get(14 + inPos)) << 10) & 131071);
out[ 7 + outPos] =
// [7_______]
// [________________0]
((((int)in.get(14 + inPos)) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in.get(15 + inPos)) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in.get(16 + inPos)) << 9) & 131071);
out[ 8 + outPos] =
// [76543210]
// [_________76543210]
((((int)in.get(17 + inPos)) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in.get(18 + inPos)) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in.get(19 + inPos)) << 16) & 131071);
out[ 9 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in.get(19 + inPos)) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in.get(20 + inPos)) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in.get(21 + inPos)) << 15) & 131071);
out[10 + outPos] =
// [765432__]
// [___________543210]
((((int)in.get(21 + inPos)) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in.get(22 + inPos)) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in.get(23 + inPos)) << 14) & 131071);
out[11 + outPos] =
// [76543___]
// [____________43210]
((((int)in.get(23 + inPos)) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in.get(24 + inPos)) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in.get(25 + inPos)) << 13) & 131071);
out[12 + outPos] =
// [7654____]
// [_____________3210]
((((int)in.get(25 + inPos)) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in.get(26 + inPos)) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in.get(27 + inPos)) << 12) & 131071);
out[13 + outPos] =
// [765_____]
// [______________210]
((((int)in.get(27 + inPos)) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in.get(28 + inPos)) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in.get(29 + inPos)) << 11) & 131071);
out[14 + outPos] =
// [76______]
// [_______________10]
((((int)in.get(29 + inPos)) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in.get(30 + inPos)) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in.get(31 + inPos)) << 10) & 131071);
out[15 + outPos] =
// [7_______]
// [________________0]
((((int)in.get(31 + inPos)) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in.get(32 + inPos)) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in.get(33 + inPos)) << 9) & 131071);
out[16 + outPos] =
// [76543210]
// [_________76543210]
((((int)in.get(34 + inPos)) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in.get(35 + inPos)) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in.get(36 + inPos)) << 16) & 131071);
out[17 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in.get(36 + inPos)) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in.get(37 + inPos)) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in.get(38 + inPos)) << 15) & 131071);
out[18 + outPos] =
// [765432__]
// [___________543210]
((((int)in.get(38 + inPos)) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in.get(39 + inPos)) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in.get(40 + inPos)) << 14) & 131071);
out[19 + outPos] =
// [76543___]
// [____________43210]
((((int)in.get(40 + inPos)) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in.get(41 + inPos)) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in.get(42 + inPos)) << 13) & 131071);
out[20 + outPos] =
// [7654____]
// [_____________3210]
((((int)in.get(42 + inPos)) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in.get(43 + inPos)) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in.get(44 + inPos)) << 12) & 131071);
out[21 + outPos] =
// [765_____]
// [______________210]
((((int)in.get(44 + inPos)) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in.get(45 + inPos)) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in.get(46 + inPos)) << 11) & 131071);
out[22 + outPos] =
// [76______]
// [_______________10]
((((int)in.get(46 + inPos)) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in.get(47 + inPos)) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in.get(48 + inPos)) << 10) & 131071);
out[23 + outPos] =
// [7_______]
// [________________0]
((((int)in.get(48 + inPos)) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in.get(49 + inPos)) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in.get(50 + inPos)) << 9) & 131071);
out[24 + outPos] =
// [76543210]
// [_________76543210]
((((int)in.get(51 + inPos)) ) & 255)
| // [76543210]
// [_54321098________]
((((int)in.get(52 + inPos)) << 8) & 65535)
| // [_______0]
// [6________________]
((((int)in.get(53 + inPos)) << 16) & 131071);
out[25 + outPos] =
// [7654321_]
// [__________6543210]
((((int)in.get(53 + inPos)) >> 1) & 127)
| // [76543210]
// [__43210987_______]
((((int)in.get(54 + inPos)) << 7) & 32767)
| // [______10]
// [65_______________]
((((int)in.get(55 + inPos)) << 15) & 131071);
out[26 + outPos] =
// [765432__]
// [___________543210]
((((int)in.get(55 + inPos)) >> 2) & 63)
| // [76543210]
// [___32109876______]
((((int)in.get(56 + inPos)) << 6) & 16383)
| // [_____210]
// [654______________]
((((int)in.get(57 + inPos)) << 14) & 131071);
out[27 + outPos] =
// [76543___]
// [____________43210]
((((int)in.get(57 + inPos)) >> 3) & 31)
| // [76543210]
// [____21098765_____]
((((int)in.get(58 + inPos)) << 5) & 8191)
| // [____3210]
// [6543_____________]
((((int)in.get(59 + inPos)) << 13) & 131071);
out[28 + outPos] =
// [7654____]
// [_____________3210]
((((int)in.get(59 + inPos)) >> 4) & 15)
| // [76543210]
// [_____10987654____]
((((int)in.get(60 + inPos)) << 4) & 4095)
| // [___43210]
// [65432____________]
((((int)in.get(61 + inPos)) << 12) & 131071);
out[29 + outPos] =
// [765_____]
// [______________210]
((((int)in.get(61 + inPos)) >> 5) & 7)
| // [76543210]
// [______09876543___]
((((int)in.get(62 + inPos)) << 3) & 2047)
| // [__543210]
// [654321___________]
((((int)in.get(63 + inPos)) << 11) & 131071);
out[30 + outPos] =
// [76______]
// [_______________10]
((((int)in.get(63 + inPos)) >> 6) & 3)
| // [76543210]
// [_______98765432__]
((((int)in.get(64 + inPos)) << 2) & 1023)
| // [_6543210]
// [6543210__________]
((((int)in.get(65 + inPos)) << 10) & 131071);
out[31 + outPos] =
// [7_______]
// [________________0]
((((int)in.get(65 + inPos)) >> 7) & 1)
| // [76543210]
// [________87654321_]
((((int)in.get(66 + inPos)) << 1) & 511)
| // [76543210]
// [65432109_________]
((((int)in.get(67 + inPos)) << 9) & 131071);
}
}
private static final class Packer18 extends BytePacker {
private Packer18() {
super(18);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[ 0 + inPos] & 262143))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[ 0 + inPos] & 262143) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [76________________]
((in[ 0 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[ 1 + inPos] & 262143) << 2)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[ 1 + inPos] & 262143) >>> 6)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[ 1 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[ 2 + inPos] & 262143) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[ 2 + inPos] & 262143) >>> 4)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[ 2 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[ 3 + inPos] & 262143) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[ 3 + inPos] & 262143) >>> 2)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[ 3 + inPos] & 262143) >>> 10)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[ 4 + inPos] & 262143))) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[ 4 + inPos] & 262143) >>> 8)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [76________________]
((in[ 4 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[ 5 + inPos] & 262143) << 2)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[ 5 + inPos] & 262143) >>> 6)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[ 5 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[ 6 + inPos] & 262143) << 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[ 6 + inPos] & 262143) >>> 4)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[ 6 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[ 7 + inPos] & 262143) << 6)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[ 7 + inPos] & 262143) >>> 2)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[ 7 + inPos] & 262143) >>> 10)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[ 0 + inPos] & 262143))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[ 0 + inPos] & 262143) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [______10]
// [76________________]
((in[ 0 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[ 1 + inPos] & 262143) << 2)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[ 1 + inPos] & 262143) >>> 6)) & 255);
out[ 4 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[ 1 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[ 2 + inPos] & 262143) << 4)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[ 2 + inPos] & 262143) >>> 4)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[ 2 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[ 3 + inPos] & 262143) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[ 3 + inPos] & 262143) >>> 2)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[ 3 + inPos] & 262143) >>> 10)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[ 4 + inPos] & 262143))) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[ 4 + inPos] & 262143) >>> 8)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [76________________]
((in[ 4 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[ 5 + inPos] & 262143) << 2)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[ 5 + inPos] & 262143) >>> 6)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[ 5 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[ 6 + inPos] & 262143) << 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[ 6 + inPos] & 262143) >>> 4)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[ 6 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[ 7 + inPos] & 262143) << 6)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[ 7 + inPos] & 262143) >>> 2)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[ 7 + inPos] & 262143) >>> 10)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[ 8 + inPos] & 262143))) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[ 8 + inPos] & 262143) >>> 8)) & 255);
out[20 + outPos] = (byte)((
// [______10]
// [76________________]
((in[ 8 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[ 9 + inPos] & 262143) << 2)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[ 9 + inPos] & 262143) >>> 6)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[ 9 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[10 + inPos] & 262143) << 4)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[10 + inPos] & 262143) >>> 4)) & 255);
out[24 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[10 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[11 + inPos] & 262143) << 6)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[11 + inPos] & 262143) >>> 2)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[11 + inPos] & 262143) >>> 10)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[12 + inPos] & 262143))) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[12 + inPos] & 262143) >>> 8)) & 255);
out[29 + outPos] = (byte)((
// [______10]
// [76________________]
((in[12 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[13 + inPos] & 262143) << 2)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[13 + inPos] & 262143) >>> 6)) & 255);
out[31 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[13 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[14 + inPos] & 262143) << 4)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[14 + inPos] & 262143) >>> 4)) & 255);
out[33 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[14 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[15 + inPos] & 262143) << 6)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[15 + inPos] & 262143) >>> 2)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[15 + inPos] & 262143) >>> 10)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[16 + inPos] & 262143))) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[16 + inPos] & 262143) >>> 8)) & 255);
out[38 + outPos] = (byte)((
// [______10]
// [76________________]
((in[16 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[17 + inPos] & 262143) << 2)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[17 + inPos] & 262143) >>> 6)) & 255);
out[40 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[17 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[18 + inPos] & 262143) << 4)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[18 + inPos] & 262143) >>> 4)) & 255);
out[42 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[18 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[19 + inPos] & 262143) << 6)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[19 + inPos] & 262143) >>> 2)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[19 + inPos] & 262143) >>> 10)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[20 + inPos] & 262143))) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[20 + inPos] & 262143) >>> 8)) & 255);
out[47 + outPos] = (byte)((
// [______10]
// [76________________]
((in[20 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[21 + inPos] & 262143) << 2)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[21 + inPos] & 262143) >>> 6)) & 255);
out[49 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[21 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[22 + inPos] & 262143) << 4)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[22 + inPos] & 262143) >>> 4)) & 255);
out[51 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[22 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[23 + inPos] & 262143) << 6)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[23 + inPos] & 262143) >>> 2)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[23 + inPos] & 262143) >>> 10)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[24 + inPos] & 262143))) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[24 + inPos] & 262143) >>> 8)) & 255);
out[56 + outPos] = (byte)((
// [______10]
// [76________________]
((in[24 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[25 + inPos] & 262143) << 2)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[25 + inPos] & 262143) >>> 6)) & 255);
out[58 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[25 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[26 + inPos] & 262143) << 4)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[26 + inPos] & 262143) >>> 4)) & 255);
out[60 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[26 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[27 + inPos] & 262143) << 6)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[27 + inPos] & 262143) >>> 2)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[27 + inPos] & 262143) >>> 10)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [__________76543210]
((in[28 + inPos] & 262143))) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [__54321098________]
((in[28 + inPos] & 262143) >>> 8)) & 255);
out[65 + outPos] = (byte)((
// [______10]
// [76________________]
((in[28 + inPos] & 262143) >>> 16)
| // [765432__]
// [____________543210]
((in[29 + inPos] & 262143) << 2)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [____32109876______]
((in[29 + inPos] & 262143) >>> 6)) & 255);
out[67 + outPos] = (byte)((
// [____3210]
// [7654______________]
((in[29 + inPos] & 262143) >>> 14)
| // [7654____]
// [______________3210]
((in[30 + inPos] & 262143) << 4)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [______10987654____]
((in[30 + inPos] & 262143) >>> 4)) & 255);
out[69 + outPos] = (byte)((
// [__543210]
// [765432____________]
((in[30 + inPos] & 262143) >>> 12)
| // [76______]
// [________________10]
((in[31 + inPos] & 262143) << 6)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [________98765432__]
((in[31 + inPos] & 262143) >>> 2)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [76543210__________]
((in[31 + inPos] & 262143) >>> 10)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[ 2 + inPos]) << 16) & 262143);
out[ 1 + outPos] =
// [765432__]
// [____________543210]
((((int)in[ 2 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[ 3 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[ 4 + inPos]) << 14) & 262143);
out[ 2 + outPos] =
// [7654____]
// [______________3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[ 5 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[ 6 + inPos]) << 12) & 262143);
out[ 3 + outPos] =
// [76______]
// [________________10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[ 7 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[ 8 + inPos]) << 10) & 262143);
out[ 4 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[10 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[11 + inPos]) << 16) & 262143);
out[ 5 + outPos] =
// [765432__]
// [____________543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[12 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[13 + inPos]) << 14) & 262143);
out[ 6 + outPos] =
// [7654____]
// [______________3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[14 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[15 + inPos]) << 12) & 262143);
out[ 7 + outPos] =
// [76______]
// [________________10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[16 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[17 + inPos]) << 10) & 262143);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get( 2 + inPos)) << 16) & 262143);
out[ 1 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get( 2 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get( 3 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get( 4 + inPos)) << 14) & 262143);
out[ 2 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get( 5 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get( 6 + inPos)) << 12) & 262143);
out[ 3 + outPos] =
// [76______]
// [________________10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get( 7 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get( 8 + inPos)) << 10) & 262143);
out[ 4 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(10 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(11 + inPos)) << 16) & 262143);
out[ 5 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(12 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(13 + inPos)) << 14) & 262143);
out[ 6 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(14 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(15 + inPos)) << 12) & 262143);
out[ 7 + outPos] =
// [76______]
// [________________10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(16 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(17 + inPos)) << 10) & 262143);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[ 2 + inPos]) << 16) & 262143);
out[ 1 + outPos] =
// [765432__]
// [____________543210]
((((int)in[ 2 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[ 3 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[ 4 + inPos]) << 14) & 262143);
out[ 2 + outPos] =
// [7654____]
// [______________3210]
((((int)in[ 4 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[ 5 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[ 6 + inPos]) << 12) & 262143);
out[ 3 + outPos] =
// [76______]
// [________________10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[ 7 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[ 8 + inPos]) << 10) & 262143);
out[ 4 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[10 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[11 + inPos]) << 16) & 262143);
out[ 5 + outPos] =
// [765432__]
// [____________543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[12 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[13 + inPos]) << 14) & 262143);
out[ 6 + outPos] =
// [7654____]
// [______________3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[14 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[15 + inPos]) << 12) & 262143);
out[ 7 + outPos] =
// [76______]
// [________________10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[16 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[17 + inPos]) << 10) & 262143);
out[ 8 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[18 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[19 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[20 + inPos]) << 16) & 262143);
out[ 9 + outPos] =
// [765432__]
// [____________543210]
((((int)in[20 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[21 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[22 + inPos]) << 14) & 262143);
out[10 + outPos] =
// [7654____]
// [______________3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[23 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[24 + inPos]) << 12) & 262143);
out[11 + outPos] =
// [76______]
// [________________10]
((((int)in[24 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[25 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[26 + inPos]) << 10) & 262143);
out[12 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[27 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[28 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[29 + inPos]) << 16) & 262143);
out[13 + outPos] =
// [765432__]
// [____________543210]
((((int)in[29 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[30 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[31 + inPos]) << 14) & 262143);
out[14 + outPos] =
// [7654____]
// [______________3210]
((((int)in[31 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[32 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[33 + inPos]) << 12) & 262143);
out[15 + outPos] =
// [76______]
// [________________10]
((((int)in[33 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[34 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[35 + inPos]) << 10) & 262143);
out[16 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[36 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[37 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[38 + inPos]) << 16) & 262143);
out[17 + outPos] =
// [765432__]
// [____________543210]
((((int)in[38 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[39 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[40 + inPos]) << 14) & 262143);
out[18 + outPos] =
// [7654____]
// [______________3210]
((((int)in[40 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[41 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[42 + inPos]) << 12) & 262143);
out[19 + outPos] =
// [76______]
// [________________10]
((((int)in[42 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[43 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[44 + inPos]) << 10) & 262143);
out[20 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[45 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[46 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[47 + inPos]) << 16) & 262143);
out[21 + outPos] =
// [765432__]
// [____________543210]
((((int)in[47 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[48 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[49 + inPos]) << 14) & 262143);
out[22 + outPos] =
// [7654____]
// [______________3210]
((((int)in[49 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[50 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[51 + inPos]) << 12) & 262143);
out[23 + outPos] =
// [76______]
// [________________10]
((((int)in[51 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[52 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[53 + inPos]) << 10) & 262143);
out[24 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[54 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[55 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[56 + inPos]) << 16) & 262143);
out[25 + outPos] =
// [765432__]
// [____________543210]
((((int)in[56 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[57 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[58 + inPos]) << 14) & 262143);
out[26 + outPos] =
// [7654____]
// [______________3210]
((((int)in[58 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[59 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[60 + inPos]) << 12) & 262143);
out[27 + outPos] =
// [76______]
// [________________10]
((((int)in[60 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[61 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[62 + inPos]) << 10) & 262143);
out[28 + outPos] =
// [76543210]
// [__________76543210]
((((int)in[63 + inPos]) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in[64 + inPos]) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in[65 + inPos]) << 16) & 262143);
out[29 + outPos] =
// [765432__]
// [____________543210]
((((int)in[65 + inPos]) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in[66 + inPos]) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in[67 + inPos]) << 14) & 262143);
out[30 + outPos] =
// [7654____]
// [______________3210]
((((int)in[67 + inPos]) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in[68 + inPos]) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in[69 + inPos]) << 12) & 262143);
out[31 + outPos] =
// [76______]
// [________________10]
((((int)in[69 + inPos]) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in[70 + inPos]) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in[71 + inPos]) << 10) & 262143);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get( 2 + inPos)) << 16) & 262143);
out[ 1 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get( 2 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get( 3 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get( 4 + inPos)) << 14) & 262143);
out[ 2 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get( 4 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get( 5 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get( 6 + inPos)) << 12) & 262143);
out[ 3 + outPos] =
// [76______]
// [________________10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get( 7 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get( 8 + inPos)) << 10) & 262143);
out[ 4 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(10 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(11 + inPos)) << 16) & 262143);
out[ 5 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(12 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(13 + inPos)) << 14) & 262143);
out[ 6 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(14 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(15 + inPos)) << 12) & 262143);
out[ 7 + outPos] =
// [76______]
// [________________10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(16 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(17 + inPos)) << 10) & 262143);
out[ 8 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get(18 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(19 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(20 + inPos)) << 16) & 262143);
out[ 9 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(20 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(21 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(22 + inPos)) << 14) & 262143);
out[10 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(23 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(24 + inPos)) << 12) & 262143);
out[11 + outPos] =
// [76______]
// [________________10]
((((int)in.get(24 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(25 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(26 + inPos)) << 10) & 262143);
out[12 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get(27 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(28 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(29 + inPos)) << 16) & 262143);
out[13 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(29 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(30 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(31 + inPos)) << 14) & 262143);
out[14 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(31 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(32 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(33 + inPos)) << 12) & 262143);
out[15 + outPos] =
// [76______]
// [________________10]
((((int)in.get(33 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(34 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(35 + inPos)) << 10) & 262143);
out[16 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get(36 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(37 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(38 + inPos)) << 16) & 262143);
out[17 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(38 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(39 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(40 + inPos)) << 14) & 262143);
out[18 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(40 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(41 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(42 + inPos)) << 12) & 262143);
out[19 + outPos] =
// [76______]
// [________________10]
((((int)in.get(42 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(43 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(44 + inPos)) << 10) & 262143);
out[20 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get(45 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(46 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(47 + inPos)) << 16) & 262143);
out[21 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(47 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(48 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(49 + inPos)) << 14) & 262143);
out[22 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(49 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(50 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(51 + inPos)) << 12) & 262143);
out[23 + outPos] =
// [76______]
// [________________10]
((((int)in.get(51 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(52 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(53 + inPos)) << 10) & 262143);
out[24 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get(54 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(55 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(56 + inPos)) << 16) & 262143);
out[25 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(56 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(57 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(58 + inPos)) << 14) & 262143);
out[26 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(58 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(59 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(60 + inPos)) << 12) & 262143);
out[27 + outPos] =
// [76______]
// [________________10]
((((int)in.get(60 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(61 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(62 + inPos)) << 10) & 262143);
out[28 + outPos] =
// [76543210]
// [__________76543210]
((((int)in.get(63 + inPos)) ) & 255)
| // [76543210]
// [__54321098________]
((((int)in.get(64 + inPos)) << 8) & 65535)
| // [______10]
// [76________________]
((((int)in.get(65 + inPos)) << 16) & 262143);
out[29 + outPos] =
// [765432__]
// [____________543210]
((((int)in.get(65 + inPos)) >> 2) & 63)
| // [76543210]
// [____32109876______]
((((int)in.get(66 + inPos)) << 6) & 16383)
| // [____3210]
// [7654______________]
((((int)in.get(67 + inPos)) << 14) & 262143);
out[30 + outPos] =
// [7654____]
// [______________3210]
((((int)in.get(67 + inPos)) >> 4) & 15)
| // [76543210]
// [______10987654____]
((((int)in.get(68 + inPos)) << 4) & 4095)
| // [__543210]
// [765432____________]
((((int)in.get(69 + inPos)) << 12) & 262143);
out[31 + outPos] =
// [76______]
// [________________10]
((((int)in.get(69 + inPos)) >> 6) & 3)
| // [76543210]
// [________98765432__]
((((int)in.get(70 + inPos)) << 2) & 1023)
| // [76543210]
// [76543210__________]
((((int)in.get(71 + inPos)) << 10) & 262143);
}
}
private static final class Packer19 extends BytePacker {
private Packer19() {
super(19);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [___________76543210]
((in[ 0 + inPos] & 524287))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [___54321098________]
((in[ 0 + inPos] & 524287) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [_____210]
// [876________________]
((in[ 0 + inPos] & 524287) >>> 16)
| // [76543___]
// [______________43210]
((in[ 1 + inPos] & 524287) << 3)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [______21098765_____]
((in[ 1 + inPos] & 524287) >>> 5)) & 255);
out[ 4 + outPos] = (byte)((
// [__543210]
// [876543_____________]
((in[ 1 + inPos] & 524287) >>> 13)
| // [76______]
// [_________________10]
((in[ 2 + inPos] & 524287) << 6)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [_________98765432__]
((in[ 2 + inPos] & 524287) >>> 2)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [_76543210__________]
((in[ 2 + inPos] & 524287) >>> 10)) & 255);
out[ 7 + outPos] = (byte)((
// [_______0]
// [8__________________]
((in[ 2 + inPos] & 524287) >>> 18)
| // [7654321_]
// [____________6543210]
((in[ 3 + inPos] & 524287) << 1)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [____43210987_______]
((in[ 3 + inPos] & 524287) >>> 7)) & 255);
out[ 9 + outPos] = (byte)((
// [____3210]
// [8765_______________]
((in[ 3 + inPos] & 524287) >>> 15)
| // [7654____]
// [_______________3210]
((in[ 4 + inPos] & 524287) << 4)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [_______10987654____]
((in[ 4 + inPos] & 524287) >>> 4)) & 255);
out[11 + outPos] = (byte)((
// [_6543210]
// [8765432____________]
((in[ 4 + inPos] & 524287) >>> 12)
| // [7_______]
// [__________________0]
((in[ 5 + inPos] & 524287) << 7)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [__________87654321_]
((in[ 5 + inPos] & 524287) >>> 1)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [__65432109_________]
((in[ 5 + inPos] & 524287) >>> 9)) & 255);
out[14 + outPos] = (byte)((
// [______10]
// [87_________________]
((in[ 5 + inPos] & 524287) >>> 17)
| // [765432__]
// [_____________543210]
((in[ 6 + inPos] & 524287) << 2)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_____32109876______]
((in[ 6 + inPos] & 524287) >>> 6)) & 255);
out[16 + outPos] = (byte)((
// [___43210]
// [87654______________]
((in[ 6 + inPos] & 524287) >>> 14)
| // [765_____]
// [________________210]
((in[ 7 + inPos] & 524287) << 5)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [________09876543___]
((in[ 7 + inPos] & 524287) >>> 3)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [87654321___________]
((in[ 7 + inPos] & 524287) >>> 11)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [___________76543210]
((in[ 0 + inPos] & 524287))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [___54321098________]
((in[ 0 + inPos] & 524287) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [_____210]
// [876________________]
((in[ 0 + inPos] & 524287) >>> 16)
| // [76543___]
// [______________43210]
((in[ 1 + inPos] & 524287) << 3)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [______21098765_____]
((in[ 1 + inPos] & 524287) >>> 5)) & 255);
out[ 4 + outPos] = (byte)((
// [__543210]
// [876543_____________]
((in[ 1 + inPos] & 524287) >>> 13)
| // [76______]
// [_________________10]
((in[ 2 + inPos] & 524287) << 6)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [_________98765432__]
((in[ 2 + inPos] & 524287) >>> 2)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [_76543210__________]
((in[ 2 + inPos] & 524287) >>> 10)) & 255);
out[ 7 + outPos] = (byte)((
// [_______0]
// [8__________________]
((in[ 2 + inPos] & 524287) >>> 18)
| // [7654321_]
// [____________6543210]
((in[ 3 + inPos] & 524287) << 1)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [____43210987_______]
((in[ 3 + inPos] & 524287) >>> 7)) & 255);
out[ 9 + outPos] = (byte)((
// [____3210]
// [8765_______________]
((in[ 3 + inPos] & 524287) >>> 15)
| // [7654____]
// [_______________3210]
((in[ 4 + inPos] & 524287) << 4)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [_______10987654____]
((in[ 4 + inPos] & 524287) >>> 4)) & 255);
out[11 + outPos] = (byte)((
// [_6543210]
// [8765432____________]
((in[ 4 + inPos] & 524287) >>> 12)
| // [7_______]
// [__________________0]
((in[ 5 + inPos] & 524287) << 7)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [__________87654321_]
((in[ 5 + inPos] & 524287) >>> 1)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [__65432109_________]
((in[ 5 + inPos] & 524287) >>> 9)) & 255);
out[14 + outPos] = (byte)((
// [______10]
// [87_________________]
((in[ 5 + inPos] & 524287) >>> 17)
| // [765432__]
// [_____________543210]
((in[ 6 + inPos] & 524287) << 2)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_____32109876______]
((in[ 6 + inPos] & 524287) >>> 6)) & 255);
out[16 + outPos] = (byte)((
// [___43210]
// [87654______________]
((in[ 6 + inPos] & 524287) >>> 14)
| // [765_____]
// [________________210]
((in[ 7 + inPos] & 524287) << 5)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [________09876543___]
((in[ 7 + inPos] & 524287) >>> 3)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [87654321___________]
((in[ 7 + inPos] & 524287) >>> 11)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [___________76543210]
((in[ 8 + inPos] & 524287))) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [___54321098________]
((in[ 8 + inPos] & 524287) >>> 8)) & 255);
out[21 + outPos] = (byte)((
// [_____210]
// [876________________]
((in[ 8 + inPos] & 524287) >>> 16)
| // [76543___]
// [______________43210]
((in[ 9 + inPos] & 524287) << 3)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [______21098765_____]
((in[ 9 + inPos] & 524287) >>> 5)) & 255);
out[23 + outPos] = (byte)((
// [__543210]
// [876543_____________]
((in[ 9 + inPos] & 524287) >>> 13)
| // [76______]
// [_________________10]
((in[10 + inPos] & 524287) << 6)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [_________98765432__]
((in[10 + inPos] & 524287) >>> 2)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [_76543210__________]
((in[10 + inPos] & 524287) >>> 10)) & 255);
out[26 + outPos] = (byte)((
// [_______0]
// [8__________________]
((in[10 + inPos] & 524287) >>> 18)
| // [7654321_]
// [____________6543210]
((in[11 + inPos] & 524287) << 1)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [____43210987_______]
((in[11 + inPos] & 524287) >>> 7)) & 255);
out[28 + outPos] = (byte)((
// [____3210]
// [8765_______________]
((in[11 + inPos] & 524287) >>> 15)
| // [7654____]
// [_______________3210]
((in[12 + inPos] & 524287) << 4)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [_______10987654____]
((in[12 + inPos] & 524287) >>> 4)) & 255);
out[30 + outPos] = (byte)((
// [_6543210]
// [8765432____________]
((in[12 + inPos] & 524287) >>> 12)
| // [7_______]
// [__________________0]
((in[13 + inPos] & 524287) << 7)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [__________87654321_]
((in[13 + inPos] & 524287) >>> 1)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [__65432109_________]
((in[13 + inPos] & 524287) >>> 9)) & 255);
out[33 + outPos] = (byte)((
// [______10]
// [87_________________]
((in[13 + inPos] & 524287) >>> 17)
| // [765432__]
// [_____________543210]
((in[14 + inPos] & 524287) << 2)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [_____32109876______]
((in[14 + inPos] & 524287) >>> 6)) & 255);
out[35 + outPos] = (byte)((
// [___43210]
// [87654______________]
((in[14 + inPos] & 524287) >>> 14)
| // [765_____]
// [________________210]
((in[15 + inPos] & 524287) << 5)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [________09876543___]
((in[15 + inPos] & 524287) >>> 3)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [87654321___________]
((in[15 + inPos] & 524287) >>> 11)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [___________76543210]
((in[16 + inPos] & 524287))) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [___54321098________]
((in[16 + inPos] & 524287) >>> 8)) & 255);
out[40 + outPos] = (byte)((
// [_____210]
// [876________________]
((in[16 + inPos] & 524287) >>> 16)
| // [76543___]
// [______________43210]
((in[17 + inPos] & 524287) << 3)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [______21098765_____]
((in[17 + inPos] & 524287) >>> 5)) & 255);
out[42 + outPos] = (byte)((
// [__543210]
// [876543_____________]
((in[17 + inPos] & 524287) >>> 13)
| // [76______]
// [_________________10]
((in[18 + inPos] & 524287) << 6)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [_________98765432__]
((in[18 + inPos] & 524287) >>> 2)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [_76543210__________]
((in[18 + inPos] & 524287) >>> 10)) & 255);
out[45 + outPos] = (byte)((
// [_______0]
// [8__________________]
((in[18 + inPos] & 524287) >>> 18)
| // [7654321_]
// [____________6543210]
((in[19 + inPos] & 524287) << 1)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [____43210987_______]
((in[19 + inPos] & 524287) >>> 7)) & 255);
out[47 + outPos] = (byte)((
// [____3210]
// [8765_______________]
((in[19 + inPos] & 524287) >>> 15)
| // [7654____]
// [_______________3210]
((in[20 + inPos] & 524287) << 4)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [_______10987654____]
((in[20 + inPos] & 524287) >>> 4)) & 255);
out[49 + outPos] = (byte)((
// [_6543210]
// [8765432____________]
((in[20 + inPos] & 524287) >>> 12)
| // [7_______]
// [__________________0]
((in[21 + inPos] & 524287) << 7)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [__________87654321_]
((in[21 + inPos] & 524287) >>> 1)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [__65432109_________]
((in[21 + inPos] & 524287) >>> 9)) & 255);
out[52 + outPos] = (byte)((
// [______10]
// [87_________________]
((in[21 + inPos] & 524287) >>> 17)
| // [765432__]
// [_____________543210]
((in[22 + inPos] & 524287) << 2)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [_____32109876______]
((in[22 + inPos] & 524287) >>> 6)) & 255);
out[54 + outPos] = (byte)((
// [___43210]
// [87654______________]
((in[22 + inPos] & 524287) >>> 14)
| // [765_____]
// [________________210]
((in[23 + inPos] & 524287) << 5)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [________09876543___]
((in[23 + inPos] & 524287) >>> 3)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [87654321___________]
((in[23 + inPos] & 524287) >>> 11)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [___________76543210]
((in[24 + inPos] & 524287))) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [___54321098________]
((in[24 + inPos] & 524287) >>> 8)) & 255);
out[59 + outPos] = (byte)((
// [_____210]
// [876________________]
((in[24 + inPos] & 524287) >>> 16)
| // [76543___]
// [______________43210]
((in[25 + inPos] & 524287) << 3)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [______21098765_____]
((in[25 + inPos] & 524287) >>> 5)) & 255);
out[61 + outPos] = (byte)((
// [__543210]
// [876543_____________]
((in[25 + inPos] & 524287) >>> 13)
| // [76______]
// [_________________10]
((in[26 + inPos] & 524287) << 6)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [_________98765432__]
((in[26 + inPos] & 524287) >>> 2)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [_76543210__________]
((in[26 + inPos] & 524287) >>> 10)) & 255);
out[64 + outPos] = (byte)((
// [_______0]
// [8__________________]
((in[26 + inPos] & 524287) >>> 18)
| // [7654321_]
// [____________6543210]
((in[27 + inPos] & 524287) << 1)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [____43210987_______]
((in[27 + inPos] & 524287) >>> 7)) & 255);
out[66 + outPos] = (byte)((
// [____3210]
// [8765_______________]
((in[27 + inPos] & 524287) >>> 15)
| // [7654____]
// [_______________3210]
((in[28 + inPos] & 524287) << 4)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [_______10987654____]
((in[28 + inPos] & 524287) >>> 4)) & 255);
out[68 + outPos] = (byte)((
// [_6543210]
// [8765432____________]
((in[28 + inPos] & 524287) >>> 12)
| // [7_______]
// [__________________0]
((in[29 + inPos] & 524287) << 7)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [__________87654321_]
((in[29 + inPos] & 524287) >>> 1)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [__65432109_________]
((in[29 + inPos] & 524287) >>> 9)) & 255);
out[71 + outPos] = (byte)((
// [______10]
// [87_________________]
((in[29 + inPos] & 524287) >>> 17)
| // [765432__]
// [_____________543210]
((in[30 + inPos] & 524287) << 2)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [_____32109876______]
((in[30 + inPos] & 524287) >>> 6)) & 255);
out[73 + outPos] = (byte)((
// [___43210]
// [87654______________]
((in[30 + inPos] & 524287) >>> 14)
| // [765_____]
// [________________210]
((in[31 + inPos] & 524287) << 5)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [________09876543___]
((in[31 + inPos] & 524287) >>> 3)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [87654321___________]
((in[31 + inPos] & 524287) >>> 11)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in[ 2 + inPos]) << 16) & 524287);
out[ 1 + outPos] =
// [76543___]
// [______________43210]
((((int)in[ 2 + inPos]) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in[ 3 + inPos]) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in[ 4 + inPos]) << 13) & 524287);
out[ 2 + outPos] =
// [76______]
// [_________________10]
((((int)in[ 4 + inPos]) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in[ 5 + inPos]) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in[ 6 + inPos]) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in[ 7 + inPos]) << 18) & 524287);
out[ 3 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in[ 7 + inPos]) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in[ 8 + inPos]) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in[ 9 + inPos]) << 15) & 524287);
out[ 4 + outPos] =
// [7654____]
// [_______________3210]
((((int)in[ 9 + inPos]) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in[10 + inPos]) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in[11 + inPos]) << 12) & 524287);
out[ 5 + outPos] =
// [7_______]
// [__________________0]
((((int)in[11 + inPos]) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in[12 + inPos]) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in[13 + inPos]) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in[14 + inPos]) << 17) & 524287);
out[ 6 + outPos] =
// [765432__]
// [_____________543210]
((((int)in[14 + inPos]) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in[15 + inPos]) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in[16 + inPos]) << 14) & 524287);
out[ 7 + outPos] =
// [765_____]
// [________________210]
((((int)in[16 + inPos]) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in[17 + inPos]) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in[18 + inPos]) << 11) & 524287);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in.get( 2 + inPos)) << 16) & 524287);
out[ 1 + outPos] =
// [76543___]
// [______________43210]
((((int)in.get( 2 + inPos)) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in.get( 3 + inPos)) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in.get( 4 + inPos)) << 13) & 524287);
out[ 2 + outPos] =
// [76______]
// [_________________10]
((((int)in.get( 4 + inPos)) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in.get( 5 + inPos)) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in.get( 6 + inPos)) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in.get( 7 + inPos)) << 18) & 524287);
out[ 3 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in.get( 7 + inPos)) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in.get( 8 + inPos)) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in.get( 9 + inPos)) << 15) & 524287);
out[ 4 + outPos] =
// [7654____]
// [_______________3210]
((((int)in.get( 9 + inPos)) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in.get(10 + inPos)) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in.get(11 + inPos)) << 12) & 524287);
out[ 5 + outPos] =
// [7_______]
// [__________________0]
((((int)in.get(11 + inPos)) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in.get(12 + inPos)) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in.get(13 + inPos)) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in.get(14 + inPos)) << 17) & 524287);
out[ 6 + outPos] =
// [765432__]
// [_____________543210]
((((int)in.get(14 + inPos)) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in.get(15 + inPos)) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in.get(16 + inPos)) << 14) & 524287);
out[ 7 + outPos] =
// [765_____]
// [________________210]
((((int)in.get(16 + inPos)) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in.get(17 + inPos)) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in.get(18 + inPos)) << 11) & 524287);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in[ 2 + inPos]) << 16) & 524287);
out[ 1 + outPos] =
// [76543___]
// [______________43210]
((((int)in[ 2 + inPos]) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in[ 3 + inPos]) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in[ 4 + inPos]) << 13) & 524287);
out[ 2 + outPos] =
// [76______]
// [_________________10]
((((int)in[ 4 + inPos]) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in[ 5 + inPos]) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in[ 6 + inPos]) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in[ 7 + inPos]) << 18) & 524287);
out[ 3 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in[ 7 + inPos]) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in[ 8 + inPos]) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in[ 9 + inPos]) << 15) & 524287);
out[ 4 + outPos] =
// [7654____]
// [_______________3210]
((((int)in[ 9 + inPos]) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in[10 + inPos]) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in[11 + inPos]) << 12) & 524287);
out[ 5 + outPos] =
// [7_______]
// [__________________0]
((((int)in[11 + inPos]) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in[12 + inPos]) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in[13 + inPos]) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in[14 + inPos]) << 17) & 524287);
out[ 6 + outPos] =
// [765432__]
// [_____________543210]
((((int)in[14 + inPos]) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in[15 + inPos]) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in[16 + inPos]) << 14) & 524287);
out[ 7 + outPos] =
// [765_____]
// [________________210]
((((int)in[16 + inPos]) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in[17 + inPos]) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in[18 + inPos]) << 11) & 524287);
out[ 8 + outPos] =
// [76543210]
// [___________76543210]
((((int)in[19 + inPos]) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in[20 + inPos]) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in[21 + inPos]) << 16) & 524287);
out[ 9 + outPos] =
// [76543___]
// [______________43210]
((((int)in[21 + inPos]) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in[22 + inPos]) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in[23 + inPos]) << 13) & 524287);
out[10 + outPos] =
// [76______]
// [_________________10]
((((int)in[23 + inPos]) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in[24 + inPos]) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in[25 + inPos]) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in[26 + inPos]) << 18) & 524287);
out[11 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in[26 + inPos]) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in[27 + inPos]) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in[28 + inPos]) << 15) & 524287);
out[12 + outPos] =
// [7654____]
// [_______________3210]
((((int)in[28 + inPos]) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in[29 + inPos]) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in[30 + inPos]) << 12) & 524287);
out[13 + outPos] =
// [7_______]
// [__________________0]
((((int)in[30 + inPos]) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in[31 + inPos]) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in[32 + inPos]) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in[33 + inPos]) << 17) & 524287);
out[14 + outPos] =
// [765432__]
// [_____________543210]
((((int)in[33 + inPos]) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in[34 + inPos]) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in[35 + inPos]) << 14) & 524287);
out[15 + outPos] =
// [765_____]
// [________________210]
((((int)in[35 + inPos]) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in[36 + inPos]) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in[37 + inPos]) << 11) & 524287);
out[16 + outPos] =
// [76543210]
// [___________76543210]
((((int)in[38 + inPos]) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in[39 + inPos]) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in[40 + inPos]) << 16) & 524287);
out[17 + outPos] =
// [76543___]
// [______________43210]
((((int)in[40 + inPos]) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in[41 + inPos]) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in[42 + inPos]) << 13) & 524287);
out[18 + outPos] =
// [76______]
// [_________________10]
((((int)in[42 + inPos]) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in[43 + inPos]) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in[44 + inPos]) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in[45 + inPos]) << 18) & 524287);
out[19 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in[45 + inPos]) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in[46 + inPos]) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in[47 + inPos]) << 15) & 524287);
out[20 + outPos] =
// [7654____]
// [_______________3210]
((((int)in[47 + inPos]) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in[48 + inPos]) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in[49 + inPos]) << 12) & 524287);
out[21 + outPos] =
// [7_______]
// [__________________0]
((((int)in[49 + inPos]) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in[50 + inPos]) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in[51 + inPos]) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in[52 + inPos]) << 17) & 524287);
out[22 + outPos] =
// [765432__]
// [_____________543210]
((((int)in[52 + inPos]) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in[53 + inPos]) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in[54 + inPos]) << 14) & 524287);
out[23 + outPos] =
// [765_____]
// [________________210]
((((int)in[54 + inPos]) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in[55 + inPos]) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in[56 + inPos]) << 11) & 524287);
out[24 + outPos] =
// [76543210]
// [___________76543210]
((((int)in[57 + inPos]) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in[58 + inPos]) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in[59 + inPos]) << 16) & 524287);
out[25 + outPos] =
// [76543___]
// [______________43210]
((((int)in[59 + inPos]) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in[60 + inPos]) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in[61 + inPos]) << 13) & 524287);
out[26 + outPos] =
// [76______]
// [_________________10]
((((int)in[61 + inPos]) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in[62 + inPos]) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in[63 + inPos]) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in[64 + inPos]) << 18) & 524287);
out[27 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in[64 + inPos]) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in[65 + inPos]) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in[66 + inPos]) << 15) & 524287);
out[28 + outPos] =
// [7654____]
// [_______________3210]
((((int)in[66 + inPos]) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in[67 + inPos]) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in[68 + inPos]) << 12) & 524287);
out[29 + outPos] =
// [7_______]
// [__________________0]
((((int)in[68 + inPos]) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in[69 + inPos]) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in[70 + inPos]) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in[71 + inPos]) << 17) & 524287);
out[30 + outPos] =
// [765432__]
// [_____________543210]
((((int)in[71 + inPos]) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in[72 + inPos]) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in[73 + inPos]) << 14) & 524287);
out[31 + outPos] =
// [765_____]
// [________________210]
((((int)in[73 + inPos]) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in[74 + inPos]) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in[75 + inPos]) << 11) & 524287);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in.get( 2 + inPos)) << 16) & 524287);
out[ 1 + outPos] =
// [76543___]
// [______________43210]
((((int)in.get( 2 + inPos)) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in.get( 3 + inPos)) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in.get( 4 + inPos)) << 13) & 524287);
out[ 2 + outPos] =
// [76______]
// [_________________10]
((((int)in.get( 4 + inPos)) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in.get( 5 + inPos)) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in.get( 6 + inPos)) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in.get( 7 + inPos)) << 18) & 524287);
out[ 3 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in.get( 7 + inPos)) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in.get( 8 + inPos)) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in.get( 9 + inPos)) << 15) & 524287);
out[ 4 + outPos] =
// [7654____]
// [_______________3210]
((((int)in.get( 9 + inPos)) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in.get(10 + inPos)) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in.get(11 + inPos)) << 12) & 524287);
out[ 5 + outPos] =
// [7_______]
// [__________________0]
((((int)in.get(11 + inPos)) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in.get(12 + inPos)) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in.get(13 + inPos)) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in.get(14 + inPos)) << 17) & 524287);
out[ 6 + outPos] =
// [765432__]
// [_____________543210]
((((int)in.get(14 + inPos)) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in.get(15 + inPos)) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in.get(16 + inPos)) << 14) & 524287);
out[ 7 + outPos] =
// [765_____]
// [________________210]
((((int)in.get(16 + inPos)) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in.get(17 + inPos)) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in.get(18 + inPos)) << 11) & 524287);
out[ 8 + outPos] =
// [76543210]
// [___________76543210]
((((int)in.get(19 + inPos)) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in.get(20 + inPos)) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in.get(21 + inPos)) << 16) & 524287);
out[ 9 + outPos] =
// [76543___]
// [______________43210]
((((int)in.get(21 + inPos)) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in.get(22 + inPos)) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in.get(23 + inPos)) << 13) & 524287);
out[10 + outPos] =
// [76______]
// [_________________10]
((((int)in.get(23 + inPos)) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in.get(24 + inPos)) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in.get(25 + inPos)) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in.get(26 + inPos)) << 18) & 524287);
out[11 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in.get(26 + inPos)) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in.get(27 + inPos)) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in.get(28 + inPos)) << 15) & 524287);
out[12 + outPos] =
// [7654____]
// [_______________3210]
((((int)in.get(28 + inPos)) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in.get(29 + inPos)) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in.get(30 + inPos)) << 12) & 524287);
out[13 + outPos] =
// [7_______]
// [__________________0]
((((int)in.get(30 + inPos)) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in.get(31 + inPos)) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in.get(32 + inPos)) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in.get(33 + inPos)) << 17) & 524287);
out[14 + outPos] =
// [765432__]
// [_____________543210]
((((int)in.get(33 + inPos)) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in.get(34 + inPos)) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in.get(35 + inPos)) << 14) & 524287);
out[15 + outPos] =
// [765_____]
// [________________210]
((((int)in.get(35 + inPos)) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in.get(36 + inPos)) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in.get(37 + inPos)) << 11) & 524287);
out[16 + outPos] =
// [76543210]
// [___________76543210]
((((int)in.get(38 + inPos)) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in.get(39 + inPos)) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in.get(40 + inPos)) << 16) & 524287);
out[17 + outPos] =
// [76543___]
// [______________43210]
((((int)in.get(40 + inPos)) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in.get(41 + inPos)) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in.get(42 + inPos)) << 13) & 524287);
out[18 + outPos] =
// [76______]
// [_________________10]
((((int)in.get(42 + inPos)) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in.get(43 + inPos)) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in.get(44 + inPos)) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in.get(45 + inPos)) << 18) & 524287);
out[19 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in.get(45 + inPos)) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in.get(46 + inPos)) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in.get(47 + inPos)) << 15) & 524287);
out[20 + outPos] =
// [7654____]
// [_______________3210]
((((int)in.get(47 + inPos)) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in.get(48 + inPos)) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in.get(49 + inPos)) << 12) & 524287);
out[21 + outPos] =
// [7_______]
// [__________________0]
((((int)in.get(49 + inPos)) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in.get(50 + inPos)) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in.get(51 + inPos)) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in.get(52 + inPos)) << 17) & 524287);
out[22 + outPos] =
// [765432__]
// [_____________543210]
((((int)in.get(52 + inPos)) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in.get(53 + inPos)) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in.get(54 + inPos)) << 14) & 524287);
out[23 + outPos] =
// [765_____]
// [________________210]
((((int)in.get(54 + inPos)) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in.get(55 + inPos)) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in.get(56 + inPos)) << 11) & 524287);
out[24 + outPos] =
// [76543210]
// [___________76543210]
((((int)in.get(57 + inPos)) ) & 255)
| // [76543210]
// [___54321098________]
((((int)in.get(58 + inPos)) << 8) & 65535)
| // [_____210]
// [876________________]
((((int)in.get(59 + inPos)) << 16) & 524287);
out[25 + outPos] =
// [76543___]
// [______________43210]
((((int)in.get(59 + inPos)) >> 3) & 31)
| // [76543210]
// [______21098765_____]
((((int)in.get(60 + inPos)) << 5) & 8191)
| // [__543210]
// [876543_____________]
((((int)in.get(61 + inPos)) << 13) & 524287);
out[26 + outPos] =
// [76______]
// [_________________10]
((((int)in.get(61 + inPos)) >> 6) & 3)
| // [76543210]
// [_________98765432__]
((((int)in.get(62 + inPos)) << 2) & 1023)
| // [76543210]
// [_76543210__________]
((((int)in.get(63 + inPos)) << 10) & 262143)
| // [_______0]
// [8__________________]
((((int)in.get(64 + inPos)) << 18) & 524287);
out[27 + outPos] =
// [7654321_]
// [____________6543210]
((((int)in.get(64 + inPos)) >> 1) & 127)
| // [76543210]
// [____43210987_______]
((((int)in.get(65 + inPos)) << 7) & 32767)
| // [____3210]
// [8765_______________]
((((int)in.get(66 + inPos)) << 15) & 524287);
out[28 + outPos] =
// [7654____]
// [_______________3210]
((((int)in.get(66 + inPos)) >> 4) & 15)
| // [76543210]
// [_______10987654____]
((((int)in.get(67 + inPos)) << 4) & 4095)
| // [_6543210]
// [8765432____________]
((((int)in.get(68 + inPos)) << 12) & 524287);
out[29 + outPos] =
// [7_______]
// [__________________0]
((((int)in.get(68 + inPos)) >> 7) & 1)
| // [76543210]
// [__________87654321_]
((((int)in.get(69 + inPos)) << 1) & 511)
| // [76543210]
// [__65432109_________]
((((int)in.get(70 + inPos)) << 9) & 131071)
| // [______10]
// [87_________________]
((((int)in.get(71 + inPos)) << 17) & 524287);
out[30 + outPos] =
// [765432__]
// [_____________543210]
((((int)in.get(71 + inPos)) >> 2) & 63)
| // [76543210]
// [_____32109876______]
((((int)in.get(72 + inPos)) << 6) & 16383)
| // [___43210]
// [87654______________]
((((int)in.get(73 + inPos)) << 14) & 524287);
out[31 + outPos] =
// [765_____]
// [________________210]
((((int)in.get(73 + inPos)) >> 5) & 7)
| // [76543210]
// [________09876543___]
((((int)in.get(74 + inPos)) << 3) & 2047)
| // [76543210]
// [87654321___________]
((((int)in.get(75 + inPos)) << 11) & 524287);
}
}
private static final class Packer20 extends BytePacker {
private Packer20() {
super(20);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 0 + inPos] & 1048575))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 0 + inPos] & 1048575) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 0 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 1 + inPos] & 1048575) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 1 + inPos] & 1048575) >>> 4)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 1 + inPos] & 1048575) >>> 12)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 2 + inPos] & 1048575))) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 2 + inPos] & 1048575) >>> 8)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 2 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 3 + inPos] & 1048575) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 3 + inPos] & 1048575) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 3 + inPos] & 1048575) >>> 12)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 4 + inPos] & 1048575))) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 4 + inPos] & 1048575) >>> 8)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 4 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 5 + inPos] & 1048575) << 4)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 5 + inPos] & 1048575) >>> 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 5 + inPos] & 1048575) >>> 12)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 6 + inPos] & 1048575))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 6 + inPos] & 1048575) >>> 8)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 6 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 7 + inPos] & 1048575) << 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 7 + inPos] & 1048575) >>> 4)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 7 + inPos] & 1048575) >>> 12)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 0 + inPos] & 1048575))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 0 + inPos] & 1048575) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 0 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 1 + inPos] & 1048575) << 4)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 1 + inPos] & 1048575) >>> 4)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 1 + inPos] & 1048575) >>> 12)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 2 + inPos] & 1048575))) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 2 + inPos] & 1048575) >>> 8)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 2 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 3 + inPos] & 1048575) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 3 + inPos] & 1048575) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 3 + inPos] & 1048575) >>> 12)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 4 + inPos] & 1048575))) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 4 + inPos] & 1048575) >>> 8)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 4 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 5 + inPos] & 1048575) << 4)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 5 + inPos] & 1048575) >>> 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 5 + inPos] & 1048575) >>> 12)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 6 + inPos] & 1048575))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 6 + inPos] & 1048575) >>> 8)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 6 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 7 + inPos] & 1048575) << 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 7 + inPos] & 1048575) >>> 4)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 7 + inPos] & 1048575) >>> 12)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[ 8 + inPos] & 1048575))) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[ 8 + inPos] & 1048575) >>> 8)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[ 8 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[ 9 + inPos] & 1048575) << 4)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[ 9 + inPos] & 1048575) >>> 4)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[ 9 + inPos] & 1048575) >>> 12)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[10 + inPos] & 1048575))) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[10 + inPos] & 1048575) >>> 8)) & 255);
out[27 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[10 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[11 + inPos] & 1048575) << 4)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[11 + inPos] & 1048575) >>> 4)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[11 + inPos] & 1048575) >>> 12)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[12 + inPos] & 1048575))) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[12 + inPos] & 1048575) >>> 8)) & 255);
out[32 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[12 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[13 + inPos] & 1048575) << 4)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[13 + inPos] & 1048575) >>> 4)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[13 + inPos] & 1048575) >>> 12)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[14 + inPos] & 1048575))) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[14 + inPos] & 1048575) >>> 8)) & 255);
out[37 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[14 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[15 + inPos] & 1048575) << 4)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[15 + inPos] & 1048575) >>> 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[15 + inPos] & 1048575) >>> 12)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[16 + inPos] & 1048575))) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[16 + inPos] & 1048575) >>> 8)) & 255);
out[42 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[16 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[17 + inPos] & 1048575) << 4)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[17 + inPos] & 1048575) >>> 4)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[17 + inPos] & 1048575) >>> 12)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[18 + inPos] & 1048575))) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[18 + inPos] & 1048575) >>> 8)) & 255);
out[47 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[18 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[19 + inPos] & 1048575) << 4)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[19 + inPos] & 1048575) >>> 4)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[19 + inPos] & 1048575) >>> 12)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[20 + inPos] & 1048575))) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[20 + inPos] & 1048575) >>> 8)) & 255);
out[52 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[20 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[21 + inPos] & 1048575) << 4)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[21 + inPos] & 1048575) >>> 4)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[21 + inPos] & 1048575) >>> 12)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[22 + inPos] & 1048575))) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[22 + inPos] & 1048575) >>> 8)) & 255);
out[57 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[22 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[23 + inPos] & 1048575) << 4)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[23 + inPos] & 1048575) >>> 4)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[23 + inPos] & 1048575) >>> 12)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[24 + inPos] & 1048575))) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[24 + inPos] & 1048575) >>> 8)) & 255);
out[62 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[24 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[25 + inPos] & 1048575) << 4)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[25 + inPos] & 1048575) >>> 4)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[25 + inPos] & 1048575) >>> 12)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[26 + inPos] & 1048575))) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[26 + inPos] & 1048575) >>> 8)) & 255);
out[67 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[26 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[27 + inPos] & 1048575) << 4)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[27 + inPos] & 1048575) >>> 4)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[27 + inPos] & 1048575) >>> 12)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[28 + inPos] & 1048575))) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[28 + inPos] & 1048575) >>> 8)) & 255);
out[72 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[28 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[29 + inPos] & 1048575) << 4)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[29 + inPos] & 1048575) >>> 4)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[29 + inPos] & 1048575) >>> 12)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [____________76543210]
((in[30 + inPos] & 1048575))) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [____54321098________]
((in[30 + inPos] & 1048575) >>> 8)) & 255);
out[77 + outPos] = (byte)((
// [____3210]
// [9876________________]
((in[30 + inPos] & 1048575) >>> 16)
| // [7654____]
// [________________3210]
((in[31 + inPos] & 1048575) << 4)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [________10987654____]
((in[31 + inPos] & 1048575) >>> 4)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [98765432____________]
((in[31 + inPos] & 1048575) >>> 12)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[ 2 + inPos]) << 16) & 1048575);
out[ 1 + outPos] =
// [7654____]
// [________________3210]
((((int)in[ 2 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[ 3 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[ 4 + inPos]) << 12) & 1048575);
out[ 2 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[ 5 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[ 6 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[ 7 + inPos]) << 16) & 1048575);
out[ 3 + outPos] =
// [7654____]
// [________________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[ 9 + inPos]) << 12) & 1048575);
out[ 4 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[10 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[11 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[12 + inPos]) << 16) & 1048575);
out[ 5 + outPos] =
// [7654____]
// [________________3210]
((((int)in[12 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[13 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[14 + inPos]) << 12) & 1048575);
out[ 6 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[15 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[16 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[17 + inPos]) << 16) & 1048575);
out[ 7 + outPos] =
// [7654____]
// [________________3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[18 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[19 + inPos]) << 12) & 1048575);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get( 2 + inPos)) << 16) & 1048575);
out[ 1 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get( 2 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get( 3 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get( 4 + inPos)) << 12) & 1048575);
out[ 2 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get( 5 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get( 6 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get( 7 + inPos)) << 16) & 1048575);
out[ 3 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get( 9 + inPos)) << 12) & 1048575);
out[ 4 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(10 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(11 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(12 + inPos)) << 16) & 1048575);
out[ 5 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(12 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(13 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(14 + inPos)) << 12) & 1048575);
out[ 6 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(16 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(17 + inPos)) << 16) & 1048575);
out[ 7 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(18 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(19 + inPos)) << 12) & 1048575);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[ 2 + inPos]) << 16) & 1048575);
out[ 1 + outPos] =
// [7654____]
// [________________3210]
((((int)in[ 2 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[ 3 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[ 4 + inPos]) << 12) & 1048575);
out[ 2 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[ 5 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[ 6 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[ 7 + inPos]) << 16) & 1048575);
out[ 3 + outPos] =
// [7654____]
// [________________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[ 9 + inPos]) << 12) & 1048575);
out[ 4 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[10 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[11 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[12 + inPos]) << 16) & 1048575);
out[ 5 + outPos] =
// [7654____]
// [________________3210]
((((int)in[12 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[13 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[14 + inPos]) << 12) & 1048575);
out[ 6 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[15 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[16 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[17 + inPos]) << 16) & 1048575);
out[ 7 + outPos] =
// [7654____]
// [________________3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[18 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[19 + inPos]) << 12) & 1048575);
out[ 8 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[20 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[21 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[22 + inPos]) << 16) & 1048575);
out[ 9 + outPos] =
// [7654____]
// [________________3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[23 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[24 + inPos]) << 12) & 1048575);
out[10 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[25 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[26 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[27 + inPos]) << 16) & 1048575);
out[11 + outPos] =
// [7654____]
// [________________3210]
((((int)in[27 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[28 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[29 + inPos]) << 12) & 1048575);
out[12 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[30 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[31 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[32 + inPos]) << 16) & 1048575);
out[13 + outPos] =
// [7654____]
// [________________3210]
((((int)in[32 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[33 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[34 + inPos]) << 12) & 1048575);
out[14 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[35 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[36 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[37 + inPos]) << 16) & 1048575);
out[15 + outPos] =
// [7654____]
// [________________3210]
((((int)in[37 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[38 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[39 + inPos]) << 12) & 1048575);
out[16 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[40 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[41 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[42 + inPos]) << 16) & 1048575);
out[17 + outPos] =
// [7654____]
// [________________3210]
((((int)in[42 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[43 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[44 + inPos]) << 12) & 1048575);
out[18 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[45 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[46 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[47 + inPos]) << 16) & 1048575);
out[19 + outPos] =
// [7654____]
// [________________3210]
((((int)in[47 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[48 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[49 + inPos]) << 12) & 1048575);
out[20 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[50 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[51 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[52 + inPos]) << 16) & 1048575);
out[21 + outPos] =
// [7654____]
// [________________3210]
((((int)in[52 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[53 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[54 + inPos]) << 12) & 1048575);
out[22 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[55 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[56 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[57 + inPos]) << 16) & 1048575);
out[23 + outPos] =
// [7654____]
// [________________3210]
((((int)in[57 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[58 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[59 + inPos]) << 12) & 1048575);
out[24 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[60 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[61 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[62 + inPos]) << 16) & 1048575);
out[25 + outPos] =
// [7654____]
// [________________3210]
((((int)in[62 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[63 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[64 + inPos]) << 12) & 1048575);
out[26 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[65 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[66 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[67 + inPos]) << 16) & 1048575);
out[27 + outPos] =
// [7654____]
// [________________3210]
((((int)in[67 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[68 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[69 + inPos]) << 12) & 1048575);
out[28 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[70 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[71 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[72 + inPos]) << 16) & 1048575);
out[29 + outPos] =
// [7654____]
// [________________3210]
((((int)in[72 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[73 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[74 + inPos]) << 12) & 1048575);
out[30 + outPos] =
// [76543210]
// [____________76543210]
((((int)in[75 + inPos]) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in[76 + inPos]) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in[77 + inPos]) << 16) & 1048575);
out[31 + outPos] =
// [7654____]
// [________________3210]
((((int)in[77 + inPos]) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in[78 + inPos]) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in[79 + inPos]) << 12) & 1048575);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get( 2 + inPos)) << 16) & 1048575);
out[ 1 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get( 2 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get( 3 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get( 4 + inPos)) << 12) & 1048575);
out[ 2 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get( 5 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get( 6 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get( 7 + inPos)) << 16) & 1048575);
out[ 3 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get( 9 + inPos)) << 12) & 1048575);
out[ 4 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(10 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(11 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(12 + inPos)) << 16) & 1048575);
out[ 5 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(12 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(13 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(14 + inPos)) << 12) & 1048575);
out[ 6 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(16 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(17 + inPos)) << 16) & 1048575);
out[ 7 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(18 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(19 + inPos)) << 12) & 1048575);
out[ 8 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(20 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(21 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(22 + inPos)) << 16) & 1048575);
out[ 9 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(23 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(24 + inPos)) << 12) & 1048575);
out[10 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(25 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(26 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(27 + inPos)) << 16) & 1048575);
out[11 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(27 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(28 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(29 + inPos)) << 12) & 1048575);
out[12 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(31 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(32 + inPos)) << 16) & 1048575);
out[13 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(32 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(33 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(34 + inPos)) << 12) & 1048575);
out[14 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(35 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(36 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(37 + inPos)) << 16) & 1048575);
out[15 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(37 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(38 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(39 + inPos)) << 12) & 1048575);
out[16 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(40 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(41 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(42 + inPos)) << 16) & 1048575);
out[17 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(42 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(43 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(44 + inPos)) << 12) & 1048575);
out[18 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(45 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(46 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(47 + inPos)) << 16) & 1048575);
out[19 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(47 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(48 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(49 + inPos)) << 12) & 1048575);
out[20 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(50 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(51 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(52 + inPos)) << 16) & 1048575);
out[21 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(52 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(53 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(54 + inPos)) << 12) & 1048575);
out[22 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(55 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(56 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(57 + inPos)) << 16) & 1048575);
out[23 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(57 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(58 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(59 + inPos)) << 12) & 1048575);
out[24 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(60 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(61 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(62 + inPos)) << 16) & 1048575);
out[25 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(62 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(63 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(64 + inPos)) << 12) & 1048575);
out[26 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(65 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(66 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(67 + inPos)) << 16) & 1048575);
out[27 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(67 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(68 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(69 + inPos)) << 12) & 1048575);
out[28 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(70 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(71 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(72 + inPos)) << 16) & 1048575);
out[29 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(72 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(73 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(74 + inPos)) << 12) & 1048575);
out[30 + outPos] =
// [76543210]
// [____________76543210]
((((int)in.get(75 + inPos)) ) & 255)
| // [76543210]
// [____54321098________]
((((int)in.get(76 + inPos)) << 8) & 65535)
| // [____3210]
// [9876________________]
((((int)in.get(77 + inPos)) << 16) & 1048575);
out[31 + outPos] =
// [7654____]
// [________________3210]
((((int)in.get(77 + inPos)) >> 4) & 15)
| // [76543210]
// [________10987654____]
((((int)in.get(78 + inPos)) << 4) & 4095)
| // [76543210]
// [98765432____________]
((((int)in.get(79 + inPos)) << 12) & 1048575);
}
}
private static final class Packer21 extends BytePacker {
private Packer21() {
super(21);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_____________76543210]
((in[ 0 + inPos] & 2097151))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_____54321098________]
((in[ 0 + inPos] & 2097151) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [___43210]
// [09876________________]
((in[ 0 + inPos] & 2097151) >>> 16)
| // [765_____]
// [__________________210]
((in[ 1 + inPos] & 2097151) << 5)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [__________09876543___]
((in[ 1 + inPos] & 2097151) >>> 3)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__87654321___________]
((in[ 1 + inPos] & 2097151) >>> 11)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [09___________________]
((in[ 1 + inPos] & 2097151) >>> 19)
| // [765432__]
// [_______________543210]
((in[ 2 + inPos] & 2097151) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [_______32109876______]
((in[ 2 + inPos] & 2097151) >>> 6)) & 255);
out[ 7 + outPos] = (byte)((
// [_6543210]
// [0987654______________]
((in[ 2 + inPos] & 2097151) >>> 14)
| // [7_______]
// [____________________0]
((in[ 3 + inPos] & 2097151) << 7)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [____________87654321_]
((in[ 3 + inPos] & 2097151) >>> 1)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____65432109_________]
((in[ 3 + inPos] & 2097151) >>> 9)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [0987_________________]
((in[ 3 + inPos] & 2097151) >>> 17)
| // [7654____]
// [_________________3210]
((in[ 4 + inPos] & 2097151) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [_________10987654____]
((in[ 4 + inPos] & 2097151) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [_98765432____________]
((in[ 4 + inPos] & 2097151) >>> 12)) & 255);
out[13 + outPos] = (byte)((
// [_______0]
// [0____________________]
((in[ 4 + inPos] & 2097151) >>> 20)
| // [7654321_]
// [______________6543210]
((in[ 5 + inPos] & 2097151) << 1)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [______43210987_______]
((in[ 5 + inPos] & 2097151) >>> 7)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [098765_______________]
((in[ 5 + inPos] & 2097151) >>> 15)
| // [76______]
// [___________________10]
((in[ 6 + inPos] & 2097151) << 6)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [___________98765432__]
((in[ 6 + inPos] & 2097151) >>> 2)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [___76543210__________]
((in[ 6 + inPos] & 2097151) >>> 10)) & 255);
out[18 + outPos] = (byte)((
// [_____210]
// [098__________________]
((in[ 6 + inPos] & 2097151) >>> 18)
| // [76543___]
// [________________43210]
((in[ 7 + inPos] & 2097151) << 3)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [________21098765_____]
((in[ 7 + inPos] & 2097151) >>> 5)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [09876543_____________]
((in[ 7 + inPos] & 2097151) >>> 13)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_____________76543210]
((in[ 0 + inPos] & 2097151))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_____54321098________]
((in[ 0 + inPos] & 2097151) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [___43210]
// [09876________________]
((in[ 0 + inPos] & 2097151) >>> 16)
| // [765_____]
// [__________________210]
((in[ 1 + inPos] & 2097151) << 5)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [__________09876543___]
((in[ 1 + inPos] & 2097151) >>> 3)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__87654321___________]
((in[ 1 + inPos] & 2097151) >>> 11)) & 255);
out[ 5 + outPos] = (byte)((
// [______10]
// [09___________________]
((in[ 1 + inPos] & 2097151) >>> 19)
| // [765432__]
// [_______________543210]
((in[ 2 + inPos] & 2097151) << 2)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [_______32109876______]
((in[ 2 + inPos] & 2097151) >>> 6)) & 255);
out[ 7 + outPos] = (byte)((
// [_6543210]
// [0987654______________]
((in[ 2 + inPos] & 2097151) >>> 14)
| // [7_______]
// [____________________0]
((in[ 3 + inPos] & 2097151) << 7)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [____________87654321_]
((in[ 3 + inPos] & 2097151) >>> 1)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____65432109_________]
((in[ 3 + inPos] & 2097151) >>> 9)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [0987_________________]
((in[ 3 + inPos] & 2097151) >>> 17)
| // [7654____]
// [_________________3210]
((in[ 4 + inPos] & 2097151) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [_________10987654____]
((in[ 4 + inPos] & 2097151) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [_98765432____________]
((in[ 4 + inPos] & 2097151) >>> 12)) & 255);
out[13 + outPos] = (byte)((
// [_______0]
// [0____________________]
((in[ 4 + inPos] & 2097151) >>> 20)
| // [7654321_]
// [______________6543210]
((in[ 5 + inPos] & 2097151) << 1)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [______43210987_______]
((in[ 5 + inPos] & 2097151) >>> 7)) & 255);
out[15 + outPos] = (byte)((
// [__543210]
// [098765_______________]
((in[ 5 + inPos] & 2097151) >>> 15)
| // [76______]
// [___________________10]
((in[ 6 + inPos] & 2097151) << 6)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [___________98765432__]
((in[ 6 + inPos] & 2097151) >>> 2)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [___76543210__________]
((in[ 6 + inPos] & 2097151) >>> 10)) & 255);
out[18 + outPos] = (byte)((
// [_____210]
// [098__________________]
((in[ 6 + inPos] & 2097151) >>> 18)
| // [76543___]
// [________________43210]
((in[ 7 + inPos] & 2097151) << 3)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [________21098765_____]
((in[ 7 + inPos] & 2097151) >>> 5)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [09876543_____________]
((in[ 7 + inPos] & 2097151) >>> 13)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [_____________76543210]
((in[ 8 + inPos] & 2097151))) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [_____54321098________]
((in[ 8 + inPos] & 2097151) >>> 8)) & 255);
out[23 + outPos] = (byte)((
// [___43210]
// [09876________________]
((in[ 8 + inPos] & 2097151) >>> 16)
| // [765_____]
// [__________________210]
((in[ 9 + inPos] & 2097151) << 5)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [__________09876543___]
((in[ 9 + inPos] & 2097151) >>> 3)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [__87654321___________]
((in[ 9 + inPos] & 2097151) >>> 11)) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [09___________________]
((in[ 9 + inPos] & 2097151) >>> 19)
| // [765432__]
// [_______________543210]
((in[10 + inPos] & 2097151) << 2)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [_______32109876______]
((in[10 + inPos] & 2097151) >>> 6)) & 255);
out[28 + outPos] = (byte)((
// [_6543210]
// [0987654______________]
((in[10 + inPos] & 2097151) >>> 14)
| // [7_______]
// [____________________0]
((in[11 + inPos] & 2097151) << 7)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [____________87654321_]
((in[11 + inPos] & 2097151) >>> 1)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____65432109_________]
((in[11 + inPos] & 2097151) >>> 9)) & 255);
out[31 + outPos] = (byte)((
// [____3210]
// [0987_________________]
((in[11 + inPos] & 2097151) >>> 17)
| // [7654____]
// [_________________3210]
((in[12 + inPos] & 2097151) << 4)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [_________10987654____]
((in[12 + inPos] & 2097151) >>> 4)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [_98765432____________]
((in[12 + inPos] & 2097151) >>> 12)) & 255);
out[34 + outPos] = (byte)((
// [_______0]
// [0____________________]
((in[12 + inPos] & 2097151) >>> 20)
| // [7654321_]
// [______________6543210]
((in[13 + inPos] & 2097151) << 1)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [______43210987_______]
((in[13 + inPos] & 2097151) >>> 7)) & 255);
out[36 + outPos] = (byte)((
// [__543210]
// [098765_______________]
((in[13 + inPos] & 2097151) >>> 15)
| // [76______]
// [___________________10]
((in[14 + inPos] & 2097151) << 6)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [___________98765432__]
((in[14 + inPos] & 2097151) >>> 2)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [___76543210__________]
((in[14 + inPos] & 2097151) >>> 10)) & 255);
out[39 + outPos] = (byte)((
// [_____210]
// [098__________________]
((in[14 + inPos] & 2097151) >>> 18)
| // [76543___]
// [________________43210]
((in[15 + inPos] & 2097151) << 3)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [________21098765_____]
((in[15 + inPos] & 2097151) >>> 5)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [09876543_____________]
((in[15 + inPos] & 2097151) >>> 13)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [_____________76543210]
((in[16 + inPos] & 2097151))) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [_____54321098________]
((in[16 + inPos] & 2097151) >>> 8)) & 255);
out[44 + outPos] = (byte)((
// [___43210]
// [09876________________]
((in[16 + inPos] & 2097151) >>> 16)
| // [765_____]
// [__________________210]
((in[17 + inPos] & 2097151) << 5)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [__________09876543___]
((in[17 + inPos] & 2097151) >>> 3)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [__87654321___________]
((in[17 + inPos] & 2097151) >>> 11)) & 255);
out[47 + outPos] = (byte)((
// [______10]
// [09___________________]
((in[17 + inPos] & 2097151) >>> 19)
| // [765432__]
// [_______________543210]
((in[18 + inPos] & 2097151) << 2)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [_______32109876______]
((in[18 + inPos] & 2097151) >>> 6)) & 255);
out[49 + outPos] = (byte)((
// [_6543210]
// [0987654______________]
((in[18 + inPos] & 2097151) >>> 14)
| // [7_______]
// [____________________0]
((in[19 + inPos] & 2097151) << 7)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [____________87654321_]
((in[19 + inPos] & 2097151) >>> 1)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [____65432109_________]
((in[19 + inPos] & 2097151) >>> 9)) & 255);
out[52 + outPos] = (byte)((
// [____3210]
// [0987_________________]
((in[19 + inPos] & 2097151) >>> 17)
| // [7654____]
// [_________________3210]
((in[20 + inPos] & 2097151) << 4)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [_________10987654____]
((in[20 + inPos] & 2097151) >>> 4)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [_98765432____________]
((in[20 + inPos] & 2097151) >>> 12)) & 255);
out[55 + outPos] = (byte)((
// [_______0]
// [0____________________]
((in[20 + inPos] & 2097151) >>> 20)
| // [7654321_]
// [______________6543210]
((in[21 + inPos] & 2097151) << 1)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [______43210987_______]
((in[21 + inPos] & 2097151) >>> 7)) & 255);
out[57 + outPos] = (byte)((
// [__543210]
// [098765_______________]
((in[21 + inPos] & 2097151) >>> 15)
| // [76______]
// [___________________10]
((in[22 + inPos] & 2097151) << 6)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [___________98765432__]
((in[22 + inPos] & 2097151) >>> 2)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [___76543210__________]
((in[22 + inPos] & 2097151) >>> 10)) & 255);
out[60 + outPos] = (byte)((
// [_____210]
// [098__________________]
((in[22 + inPos] & 2097151) >>> 18)
| // [76543___]
// [________________43210]
((in[23 + inPos] & 2097151) << 3)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [________21098765_____]
((in[23 + inPos] & 2097151) >>> 5)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [09876543_____________]
((in[23 + inPos] & 2097151) >>> 13)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [_____________76543210]
((in[24 + inPos] & 2097151))) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [_____54321098________]
((in[24 + inPos] & 2097151) >>> 8)) & 255);
out[65 + outPos] = (byte)((
// [___43210]
// [09876________________]
((in[24 + inPos] & 2097151) >>> 16)
| // [765_____]
// [__________________210]
((in[25 + inPos] & 2097151) << 5)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [__________09876543___]
((in[25 + inPos] & 2097151) >>> 3)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [__87654321___________]
((in[25 + inPos] & 2097151) >>> 11)) & 255);
out[68 + outPos] = (byte)((
// [______10]
// [09___________________]
((in[25 + inPos] & 2097151) >>> 19)
| // [765432__]
// [_______________543210]
((in[26 + inPos] & 2097151) << 2)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [_______32109876______]
((in[26 + inPos] & 2097151) >>> 6)) & 255);
out[70 + outPos] = (byte)((
// [_6543210]
// [0987654______________]
((in[26 + inPos] & 2097151) >>> 14)
| // [7_______]
// [____________________0]
((in[27 + inPos] & 2097151) << 7)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [____________87654321_]
((in[27 + inPos] & 2097151) >>> 1)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [____65432109_________]
((in[27 + inPos] & 2097151) >>> 9)) & 255);
out[73 + outPos] = (byte)((
// [____3210]
// [0987_________________]
((in[27 + inPos] & 2097151) >>> 17)
| // [7654____]
// [_________________3210]
((in[28 + inPos] & 2097151) << 4)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [_________10987654____]
((in[28 + inPos] & 2097151) >>> 4)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [_98765432____________]
((in[28 + inPos] & 2097151) >>> 12)) & 255);
out[76 + outPos] = (byte)((
// [_______0]
// [0____________________]
((in[28 + inPos] & 2097151) >>> 20)
| // [7654321_]
// [______________6543210]
((in[29 + inPos] & 2097151) << 1)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [______43210987_______]
((in[29 + inPos] & 2097151) >>> 7)) & 255);
out[78 + outPos] = (byte)((
// [__543210]
// [098765_______________]
((in[29 + inPos] & 2097151) >>> 15)
| // [76______]
// [___________________10]
((in[30 + inPos] & 2097151) << 6)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [___________98765432__]
((in[30 + inPos] & 2097151) >>> 2)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [___76543210__________]
((in[30 + inPos] & 2097151) >>> 10)) & 255);
out[81 + outPos] = (byte)((
// [_____210]
// [098__________________]
((in[30 + inPos] & 2097151) >>> 18)
| // [76543___]
// [________________43210]
((in[31 + inPos] & 2097151) << 3)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [________21098765_____]
((in[31 + inPos] & 2097151) >>> 5)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [09876543_____________]
((in[31 + inPos] & 2097151) >>> 13)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in[ 2 + inPos]) << 16) & 2097151);
out[ 1 + outPos] =
// [765_____]
// [__________________210]
((((int)in[ 2 + inPos]) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in[ 3 + inPos]) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in[ 4 + inPos]) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in[ 5 + inPos]) << 19) & 2097151);
out[ 2 + outPos] =
// [765432__]
// [_______________543210]
((((int)in[ 5 + inPos]) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in[ 6 + inPos]) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in[ 7 + inPos]) << 14) & 2097151);
out[ 3 + outPos] =
// [7_______]
// [____________________0]
((((int)in[ 7 + inPos]) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in[ 8 + inPos]) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in[ 9 + inPos]) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in[10 + inPos]) << 17) & 2097151);
out[ 4 + outPos] =
// [7654____]
// [_________________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in[11 + inPos]) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in[12 + inPos]) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in[13 + inPos]) << 20) & 2097151);
out[ 5 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in[13 + inPos]) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in[14 + inPos]) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in[15 + inPos]) << 15) & 2097151);
out[ 6 + outPos] =
// [76______]
// [___________________10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in[16 + inPos]) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in[17 + inPos]) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in[18 + inPos]) << 18) & 2097151);
out[ 7 + outPos] =
// [76543___]
// [________________43210]
((((int)in[18 + inPos]) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in[19 + inPos]) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in[20 + inPos]) << 13) & 2097151);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in.get( 2 + inPos)) << 16) & 2097151);
out[ 1 + outPos] =
// [765_____]
// [__________________210]
((((int)in.get( 2 + inPos)) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in.get( 3 + inPos)) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in.get( 4 + inPos)) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in.get( 5 + inPos)) << 19) & 2097151);
out[ 2 + outPos] =
// [765432__]
// [_______________543210]
((((int)in.get( 5 + inPos)) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in.get( 6 + inPos)) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in.get( 7 + inPos)) << 14) & 2097151);
out[ 3 + outPos] =
// [7_______]
// [____________________0]
((((int)in.get( 7 + inPos)) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in.get( 8 + inPos)) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in.get( 9 + inPos)) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in.get(10 + inPos)) << 17) & 2097151);
out[ 4 + outPos] =
// [7654____]
// [_________________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in.get(12 + inPos)) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in.get(13 + inPos)) << 20) & 2097151);
out[ 5 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in.get(13 + inPos)) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in.get(14 + inPos)) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in.get(15 + inPos)) << 15) & 2097151);
out[ 6 + outPos] =
// [76______]
// [___________________10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in.get(16 + inPos)) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in.get(17 + inPos)) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in.get(18 + inPos)) << 18) & 2097151);
out[ 7 + outPos] =
// [76543___]
// [________________43210]
((((int)in.get(18 + inPos)) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in.get(19 + inPos)) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in.get(20 + inPos)) << 13) & 2097151);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in[ 2 + inPos]) << 16) & 2097151);
out[ 1 + outPos] =
// [765_____]
// [__________________210]
((((int)in[ 2 + inPos]) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in[ 3 + inPos]) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in[ 4 + inPos]) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in[ 5 + inPos]) << 19) & 2097151);
out[ 2 + outPos] =
// [765432__]
// [_______________543210]
((((int)in[ 5 + inPos]) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in[ 6 + inPos]) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in[ 7 + inPos]) << 14) & 2097151);
out[ 3 + outPos] =
// [7_______]
// [____________________0]
((((int)in[ 7 + inPos]) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in[ 8 + inPos]) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in[ 9 + inPos]) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in[10 + inPos]) << 17) & 2097151);
out[ 4 + outPos] =
// [7654____]
// [_________________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in[11 + inPos]) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in[12 + inPos]) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in[13 + inPos]) << 20) & 2097151);
out[ 5 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in[13 + inPos]) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in[14 + inPos]) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in[15 + inPos]) << 15) & 2097151);
out[ 6 + outPos] =
// [76______]
// [___________________10]
((((int)in[15 + inPos]) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in[16 + inPos]) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in[17 + inPos]) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in[18 + inPos]) << 18) & 2097151);
out[ 7 + outPos] =
// [76543___]
// [________________43210]
((((int)in[18 + inPos]) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in[19 + inPos]) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in[20 + inPos]) << 13) & 2097151);
out[ 8 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in[21 + inPos]) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in[22 + inPos]) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in[23 + inPos]) << 16) & 2097151);
out[ 9 + outPos] =
// [765_____]
// [__________________210]
((((int)in[23 + inPos]) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in[24 + inPos]) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in[25 + inPos]) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in[26 + inPos]) << 19) & 2097151);
out[10 + outPos] =
// [765432__]
// [_______________543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in[27 + inPos]) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in[28 + inPos]) << 14) & 2097151);
out[11 + outPos] =
// [7_______]
// [____________________0]
((((int)in[28 + inPos]) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in[29 + inPos]) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in[30 + inPos]) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in[31 + inPos]) << 17) & 2097151);
out[12 + outPos] =
// [7654____]
// [_________________3210]
((((int)in[31 + inPos]) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in[32 + inPos]) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in[33 + inPos]) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in[34 + inPos]) << 20) & 2097151);
out[13 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in[34 + inPos]) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in[35 + inPos]) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in[36 + inPos]) << 15) & 2097151);
out[14 + outPos] =
// [76______]
// [___________________10]
((((int)in[36 + inPos]) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in[37 + inPos]) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in[38 + inPos]) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in[39 + inPos]) << 18) & 2097151);
out[15 + outPos] =
// [76543___]
// [________________43210]
((((int)in[39 + inPos]) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in[40 + inPos]) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in[41 + inPos]) << 13) & 2097151);
out[16 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in[42 + inPos]) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in[43 + inPos]) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in[44 + inPos]) << 16) & 2097151);
out[17 + outPos] =
// [765_____]
// [__________________210]
((((int)in[44 + inPos]) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in[45 + inPos]) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in[46 + inPos]) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in[47 + inPos]) << 19) & 2097151);
out[18 + outPos] =
// [765432__]
// [_______________543210]
((((int)in[47 + inPos]) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in[48 + inPos]) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in[49 + inPos]) << 14) & 2097151);
out[19 + outPos] =
// [7_______]
// [____________________0]
((((int)in[49 + inPos]) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in[50 + inPos]) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in[51 + inPos]) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in[52 + inPos]) << 17) & 2097151);
out[20 + outPos] =
// [7654____]
// [_________________3210]
((((int)in[52 + inPos]) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in[53 + inPos]) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in[54 + inPos]) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in[55 + inPos]) << 20) & 2097151);
out[21 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in[55 + inPos]) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in[56 + inPos]) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in[57 + inPos]) << 15) & 2097151);
out[22 + outPos] =
// [76______]
// [___________________10]
((((int)in[57 + inPos]) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in[58 + inPos]) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in[59 + inPos]) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in[60 + inPos]) << 18) & 2097151);
out[23 + outPos] =
// [76543___]
// [________________43210]
((((int)in[60 + inPos]) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in[61 + inPos]) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in[62 + inPos]) << 13) & 2097151);
out[24 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in[63 + inPos]) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in[64 + inPos]) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in[65 + inPos]) << 16) & 2097151);
out[25 + outPos] =
// [765_____]
// [__________________210]
((((int)in[65 + inPos]) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in[66 + inPos]) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in[67 + inPos]) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in[68 + inPos]) << 19) & 2097151);
out[26 + outPos] =
// [765432__]
// [_______________543210]
((((int)in[68 + inPos]) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in[69 + inPos]) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in[70 + inPos]) << 14) & 2097151);
out[27 + outPos] =
// [7_______]
// [____________________0]
((((int)in[70 + inPos]) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in[71 + inPos]) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in[72 + inPos]) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in[73 + inPos]) << 17) & 2097151);
out[28 + outPos] =
// [7654____]
// [_________________3210]
((((int)in[73 + inPos]) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in[74 + inPos]) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in[75 + inPos]) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in[76 + inPos]) << 20) & 2097151);
out[29 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in[76 + inPos]) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in[77 + inPos]) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in[78 + inPos]) << 15) & 2097151);
out[30 + outPos] =
// [76______]
// [___________________10]
((((int)in[78 + inPos]) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in[79 + inPos]) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in[80 + inPos]) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in[81 + inPos]) << 18) & 2097151);
out[31 + outPos] =
// [76543___]
// [________________43210]
((((int)in[81 + inPos]) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in[82 + inPos]) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in[83 + inPos]) << 13) & 2097151);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in.get( 2 + inPos)) << 16) & 2097151);
out[ 1 + outPos] =
// [765_____]
// [__________________210]
((((int)in.get( 2 + inPos)) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in.get( 3 + inPos)) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in.get( 4 + inPos)) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in.get( 5 + inPos)) << 19) & 2097151);
out[ 2 + outPos] =
// [765432__]
// [_______________543210]
((((int)in.get( 5 + inPos)) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in.get( 6 + inPos)) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in.get( 7 + inPos)) << 14) & 2097151);
out[ 3 + outPos] =
// [7_______]
// [____________________0]
((((int)in.get( 7 + inPos)) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in.get( 8 + inPos)) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in.get( 9 + inPos)) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in.get(10 + inPos)) << 17) & 2097151);
out[ 4 + outPos] =
// [7654____]
// [_________________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in.get(12 + inPos)) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in.get(13 + inPos)) << 20) & 2097151);
out[ 5 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in.get(13 + inPos)) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in.get(14 + inPos)) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in.get(15 + inPos)) << 15) & 2097151);
out[ 6 + outPos] =
// [76______]
// [___________________10]
((((int)in.get(15 + inPos)) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in.get(16 + inPos)) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in.get(17 + inPos)) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in.get(18 + inPos)) << 18) & 2097151);
out[ 7 + outPos] =
// [76543___]
// [________________43210]
((((int)in.get(18 + inPos)) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in.get(19 + inPos)) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in.get(20 + inPos)) << 13) & 2097151);
out[ 8 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in.get(22 + inPos)) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in.get(23 + inPos)) << 16) & 2097151);
out[ 9 + outPos] =
// [765_____]
// [__________________210]
((((int)in.get(23 + inPos)) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in.get(24 + inPos)) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in.get(25 + inPos)) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in.get(26 + inPos)) << 19) & 2097151);
out[10 + outPos] =
// [765432__]
// [_______________543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in.get(27 + inPos)) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in.get(28 + inPos)) << 14) & 2097151);
out[11 + outPos] =
// [7_______]
// [____________________0]
((((int)in.get(28 + inPos)) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in.get(29 + inPos)) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in.get(30 + inPos)) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in.get(31 + inPos)) << 17) & 2097151);
out[12 + outPos] =
// [7654____]
// [_________________3210]
((((int)in.get(31 + inPos)) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in.get(32 + inPos)) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in.get(33 + inPos)) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in.get(34 + inPos)) << 20) & 2097151);
out[13 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in.get(34 + inPos)) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in.get(35 + inPos)) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in.get(36 + inPos)) << 15) & 2097151);
out[14 + outPos] =
// [76______]
// [___________________10]
((((int)in.get(36 + inPos)) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in.get(37 + inPos)) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in.get(38 + inPos)) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in.get(39 + inPos)) << 18) & 2097151);
out[15 + outPos] =
// [76543___]
// [________________43210]
((((int)in.get(39 + inPos)) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in.get(40 + inPos)) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in.get(41 + inPos)) << 13) & 2097151);
out[16 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in.get(42 + inPos)) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in.get(43 + inPos)) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in.get(44 + inPos)) << 16) & 2097151);
out[17 + outPos] =
// [765_____]
// [__________________210]
((((int)in.get(44 + inPos)) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in.get(45 + inPos)) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in.get(46 + inPos)) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in.get(47 + inPos)) << 19) & 2097151);
out[18 + outPos] =
// [765432__]
// [_______________543210]
((((int)in.get(47 + inPos)) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in.get(48 + inPos)) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in.get(49 + inPos)) << 14) & 2097151);
out[19 + outPos] =
// [7_______]
// [____________________0]
((((int)in.get(49 + inPos)) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in.get(50 + inPos)) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in.get(51 + inPos)) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in.get(52 + inPos)) << 17) & 2097151);
out[20 + outPos] =
// [7654____]
// [_________________3210]
((((int)in.get(52 + inPos)) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in.get(53 + inPos)) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in.get(54 + inPos)) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in.get(55 + inPos)) << 20) & 2097151);
out[21 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in.get(55 + inPos)) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in.get(56 + inPos)) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in.get(57 + inPos)) << 15) & 2097151);
out[22 + outPos] =
// [76______]
// [___________________10]
((((int)in.get(57 + inPos)) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in.get(58 + inPos)) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in.get(59 + inPos)) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in.get(60 + inPos)) << 18) & 2097151);
out[23 + outPos] =
// [76543___]
// [________________43210]
((((int)in.get(60 + inPos)) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in.get(61 + inPos)) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in.get(62 + inPos)) << 13) & 2097151);
out[24 + outPos] =
// [76543210]
// [_____________76543210]
((((int)in.get(63 + inPos)) ) & 255)
| // [76543210]
// [_____54321098________]
((((int)in.get(64 + inPos)) << 8) & 65535)
| // [___43210]
// [09876________________]
((((int)in.get(65 + inPos)) << 16) & 2097151);
out[25 + outPos] =
// [765_____]
// [__________________210]
((((int)in.get(65 + inPos)) >> 5) & 7)
| // [76543210]
// [__________09876543___]
((((int)in.get(66 + inPos)) << 3) & 2047)
| // [76543210]
// [__87654321___________]
((((int)in.get(67 + inPos)) << 11) & 524287)
| // [______10]
// [09___________________]
((((int)in.get(68 + inPos)) << 19) & 2097151);
out[26 + outPos] =
// [765432__]
// [_______________543210]
((((int)in.get(68 + inPos)) >> 2) & 63)
| // [76543210]
// [_______32109876______]
((((int)in.get(69 + inPos)) << 6) & 16383)
| // [_6543210]
// [0987654______________]
((((int)in.get(70 + inPos)) << 14) & 2097151);
out[27 + outPos] =
// [7_______]
// [____________________0]
((((int)in.get(70 + inPos)) >> 7) & 1)
| // [76543210]
// [____________87654321_]
((((int)in.get(71 + inPos)) << 1) & 511)
| // [76543210]
// [____65432109_________]
((((int)in.get(72 + inPos)) << 9) & 131071)
| // [____3210]
// [0987_________________]
((((int)in.get(73 + inPos)) << 17) & 2097151);
out[28 + outPos] =
// [7654____]
// [_________________3210]
((((int)in.get(73 + inPos)) >> 4) & 15)
| // [76543210]
// [_________10987654____]
((((int)in.get(74 + inPos)) << 4) & 4095)
| // [76543210]
// [_98765432____________]
((((int)in.get(75 + inPos)) << 12) & 1048575)
| // [_______0]
// [0____________________]
((((int)in.get(76 + inPos)) << 20) & 2097151);
out[29 + outPos] =
// [7654321_]
// [______________6543210]
((((int)in.get(76 + inPos)) >> 1) & 127)
| // [76543210]
// [______43210987_______]
((((int)in.get(77 + inPos)) << 7) & 32767)
| // [__543210]
// [098765_______________]
((((int)in.get(78 + inPos)) << 15) & 2097151);
out[30 + outPos] =
// [76______]
// [___________________10]
((((int)in.get(78 + inPos)) >> 6) & 3)
| // [76543210]
// [___________98765432__]
((((int)in.get(79 + inPos)) << 2) & 1023)
| // [76543210]
// [___76543210__________]
((((int)in.get(80 + inPos)) << 10) & 262143)
| // [_____210]
// [098__________________]
((((int)in.get(81 + inPos)) << 18) & 2097151);
out[31 + outPos] =
// [76543___]
// [________________43210]
((((int)in.get(81 + inPos)) >> 3) & 31)
| // [76543210]
// [________21098765_____]
((((int)in.get(82 + inPos)) << 5) & 8191)
| // [76543210]
// [09876543_____________]
((((int)in.get(83 + inPos)) << 13) & 2097151);
}
}
private static final class Packer22 extends BytePacker {
private Packer22() {
super(22);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[ 0 + inPos] & 4194303))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[ 0 + inPos] & 4194303) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[ 0 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[ 1 + inPos] & 4194303) << 6)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[ 1 + inPos] & 4194303) >>> 2)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[ 1 + inPos] & 4194303) >>> 10)) & 255);
out[ 5 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[ 1 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[ 2 + inPos] & 4194303) << 4)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[ 2 + inPos] & 4194303) >>> 4)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[ 2 + inPos] & 4194303) >>> 12)) & 255);
out[ 8 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[ 2 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[ 3 + inPos] & 4194303) << 2)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[ 3 + inPos] & 4194303) >>> 6)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[ 3 + inPos] & 4194303) >>> 14)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[ 4 + inPos] & 4194303))) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[ 4 + inPos] & 4194303) >>> 8)) & 255);
out[13 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[ 4 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[ 5 + inPos] & 4194303) << 6)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[ 5 + inPos] & 4194303) >>> 2)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[ 5 + inPos] & 4194303) >>> 10)) & 255);
out[16 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[ 5 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[ 6 + inPos] & 4194303) << 4)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[ 6 + inPos] & 4194303) >>> 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[ 6 + inPos] & 4194303) >>> 12)) & 255);
out[19 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[ 6 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[ 7 + inPos] & 4194303) << 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[ 7 + inPos] & 4194303) >>> 6)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[ 7 + inPos] & 4194303) >>> 14)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[ 0 + inPos] & 4194303))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[ 0 + inPos] & 4194303) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[ 0 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[ 1 + inPos] & 4194303) << 6)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[ 1 + inPos] & 4194303) >>> 2)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[ 1 + inPos] & 4194303) >>> 10)) & 255);
out[ 5 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[ 1 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[ 2 + inPos] & 4194303) << 4)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[ 2 + inPos] & 4194303) >>> 4)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[ 2 + inPos] & 4194303) >>> 12)) & 255);
out[ 8 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[ 2 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[ 3 + inPos] & 4194303) << 2)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[ 3 + inPos] & 4194303) >>> 6)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[ 3 + inPos] & 4194303) >>> 14)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[ 4 + inPos] & 4194303))) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[ 4 + inPos] & 4194303) >>> 8)) & 255);
out[13 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[ 4 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[ 5 + inPos] & 4194303) << 6)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[ 5 + inPos] & 4194303) >>> 2)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[ 5 + inPos] & 4194303) >>> 10)) & 255);
out[16 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[ 5 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[ 6 + inPos] & 4194303) << 4)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[ 6 + inPos] & 4194303) >>> 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[ 6 + inPos] & 4194303) >>> 12)) & 255);
out[19 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[ 6 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[ 7 + inPos] & 4194303) << 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[ 7 + inPos] & 4194303) >>> 6)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[ 7 + inPos] & 4194303) >>> 14)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[ 8 + inPos] & 4194303))) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[ 8 + inPos] & 4194303) >>> 8)) & 255);
out[24 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[ 8 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[ 9 + inPos] & 4194303) << 6)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[ 9 + inPos] & 4194303) >>> 2)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[ 9 + inPos] & 4194303) >>> 10)) & 255);
out[27 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[ 9 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[10 + inPos] & 4194303) << 4)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[10 + inPos] & 4194303) >>> 4)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[10 + inPos] & 4194303) >>> 12)) & 255);
out[30 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[10 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[11 + inPos] & 4194303) << 2)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[11 + inPos] & 4194303) >>> 6)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[11 + inPos] & 4194303) >>> 14)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[12 + inPos] & 4194303))) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[12 + inPos] & 4194303) >>> 8)) & 255);
out[35 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[12 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[13 + inPos] & 4194303) << 6)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[13 + inPos] & 4194303) >>> 2)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[13 + inPos] & 4194303) >>> 10)) & 255);
out[38 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[13 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[14 + inPos] & 4194303) << 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[14 + inPos] & 4194303) >>> 4)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[14 + inPos] & 4194303) >>> 12)) & 255);
out[41 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[14 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[15 + inPos] & 4194303) << 2)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[15 + inPos] & 4194303) >>> 6)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[15 + inPos] & 4194303) >>> 14)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[16 + inPos] & 4194303))) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[16 + inPos] & 4194303) >>> 8)) & 255);
out[46 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[16 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[17 + inPos] & 4194303) << 6)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[17 + inPos] & 4194303) >>> 2)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[17 + inPos] & 4194303) >>> 10)) & 255);
out[49 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[17 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[18 + inPos] & 4194303) << 4)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[18 + inPos] & 4194303) >>> 4)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[18 + inPos] & 4194303) >>> 12)) & 255);
out[52 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[18 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[19 + inPos] & 4194303) << 2)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[19 + inPos] & 4194303) >>> 6)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[19 + inPos] & 4194303) >>> 14)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[20 + inPos] & 4194303))) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[20 + inPos] & 4194303) >>> 8)) & 255);
out[57 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[20 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[21 + inPos] & 4194303) << 6)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[21 + inPos] & 4194303) >>> 2)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[21 + inPos] & 4194303) >>> 10)) & 255);
out[60 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[21 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[22 + inPos] & 4194303) << 4)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[22 + inPos] & 4194303) >>> 4)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[22 + inPos] & 4194303) >>> 12)) & 255);
out[63 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[22 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[23 + inPos] & 4194303) << 2)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[23 + inPos] & 4194303) >>> 6)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[23 + inPos] & 4194303) >>> 14)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[24 + inPos] & 4194303))) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[24 + inPos] & 4194303) >>> 8)) & 255);
out[68 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[24 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[25 + inPos] & 4194303) << 6)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[25 + inPos] & 4194303) >>> 2)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[25 + inPos] & 4194303) >>> 10)) & 255);
out[71 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[25 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[26 + inPos] & 4194303) << 4)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[26 + inPos] & 4194303) >>> 4)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[26 + inPos] & 4194303) >>> 12)) & 255);
out[74 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[26 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[27 + inPos] & 4194303) << 2)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[27 + inPos] & 4194303) >>> 6)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[27 + inPos] & 4194303) >>> 14)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [______________76543210]
((in[28 + inPos] & 4194303))) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [______54321098________]
((in[28 + inPos] & 4194303) >>> 8)) & 255);
out[79 + outPos] = (byte)((
// [__543210]
// [109876________________]
((in[28 + inPos] & 4194303) >>> 16)
| // [76______]
// [____________________10]
((in[29 + inPos] & 4194303) << 6)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [____________98765432__]
((in[29 + inPos] & 4194303) >>> 2)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [____76543210__________]
((in[29 + inPos] & 4194303) >>> 10)) & 255);
out[82 + outPos] = (byte)((
// [____3210]
// [1098__________________]
((in[29 + inPos] & 4194303) >>> 18)
| // [7654____]
// [__________________3210]
((in[30 + inPos] & 4194303) << 4)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [__________10987654____]
((in[30 + inPos] & 4194303) >>> 4)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [__98765432____________]
((in[30 + inPos] & 4194303) >>> 12)) & 255);
out[85 + outPos] = (byte)((
// [______10]
// [10____________________]
((in[30 + inPos] & 4194303) >>> 20)
| // [765432__]
// [________________543210]
((in[31 + inPos] & 4194303) << 2)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [________32109876______]
((in[31 + inPos] & 4194303) >>> 6)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [10987654______________]
((in[31 + inPos] & 4194303) >>> 14)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[ 2 + inPos]) << 16) & 4194303);
out[ 1 + outPos] =
// [76______]
// [____________________10]
((((int)in[ 2 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[ 3 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[ 4 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[ 5 + inPos]) << 18) & 4194303);
out[ 2 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[ 5 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[ 6 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[ 7 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[ 8 + inPos]) << 20) & 4194303);
out[ 3 + outPos] =
// [765432__]
// [________________543210]
((((int)in[ 8 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[ 9 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[10 + inPos]) << 14) & 4194303);
out[ 4 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[11 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[12 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[13 + inPos]) << 16) & 4194303);
out[ 5 + outPos] =
// [76______]
// [____________________10]
((((int)in[13 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[14 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[15 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[16 + inPos]) << 18) & 4194303);
out[ 6 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[16 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[17 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[18 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[19 + inPos]) << 20) & 4194303);
out[ 7 + outPos] =
// [765432__]
// [________________543210]
((((int)in[19 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[20 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[21 + inPos]) << 14) & 4194303);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get( 2 + inPos)) << 16) & 4194303);
out[ 1 + outPos] =
// [76______]
// [____________________10]
((((int)in.get( 2 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get( 3 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get( 4 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get( 5 + inPos)) << 18) & 4194303);
out[ 2 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get( 5 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get( 6 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get( 7 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get( 8 + inPos)) << 20) & 4194303);
out[ 3 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get( 8 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get( 9 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(10 + inPos)) << 14) & 4194303);
out[ 4 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(11 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(12 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(13 + inPos)) << 16) & 4194303);
out[ 5 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(13 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(14 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(15 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(16 + inPos)) << 18) & 4194303);
out[ 6 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(16 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(17 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(18 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(19 + inPos)) << 20) & 4194303);
out[ 7 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(19 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(20 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(21 + inPos)) << 14) & 4194303);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[ 2 + inPos]) << 16) & 4194303);
out[ 1 + outPos] =
// [76______]
// [____________________10]
((((int)in[ 2 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[ 3 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[ 4 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[ 5 + inPos]) << 18) & 4194303);
out[ 2 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[ 5 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[ 6 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[ 7 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[ 8 + inPos]) << 20) & 4194303);
out[ 3 + outPos] =
// [765432__]
// [________________543210]
((((int)in[ 8 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[ 9 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[10 + inPos]) << 14) & 4194303);
out[ 4 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[11 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[12 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[13 + inPos]) << 16) & 4194303);
out[ 5 + outPos] =
// [76______]
// [____________________10]
((((int)in[13 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[14 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[15 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[16 + inPos]) << 18) & 4194303);
out[ 6 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[16 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[17 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[18 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[19 + inPos]) << 20) & 4194303);
out[ 7 + outPos] =
// [765432__]
// [________________543210]
((((int)in[19 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[20 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[21 + inPos]) << 14) & 4194303);
out[ 8 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[22 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[23 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[24 + inPos]) << 16) & 4194303);
out[ 9 + outPos] =
// [76______]
// [____________________10]
((((int)in[24 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[25 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[26 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[27 + inPos]) << 18) & 4194303);
out[10 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[27 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[28 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[29 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[30 + inPos]) << 20) & 4194303);
out[11 + outPos] =
// [765432__]
// [________________543210]
((((int)in[30 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[31 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[32 + inPos]) << 14) & 4194303);
out[12 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[33 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[34 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[35 + inPos]) << 16) & 4194303);
out[13 + outPos] =
// [76______]
// [____________________10]
((((int)in[35 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[36 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[37 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[38 + inPos]) << 18) & 4194303);
out[14 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[38 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[39 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[40 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[41 + inPos]) << 20) & 4194303);
out[15 + outPos] =
// [765432__]
// [________________543210]
((((int)in[41 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[42 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[43 + inPos]) << 14) & 4194303);
out[16 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[44 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[45 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[46 + inPos]) << 16) & 4194303);
out[17 + outPos] =
// [76______]
// [____________________10]
((((int)in[46 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[47 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[48 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[49 + inPos]) << 18) & 4194303);
out[18 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[49 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[50 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[51 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[52 + inPos]) << 20) & 4194303);
out[19 + outPos] =
// [765432__]
// [________________543210]
((((int)in[52 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[53 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[54 + inPos]) << 14) & 4194303);
out[20 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[55 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[56 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[57 + inPos]) << 16) & 4194303);
out[21 + outPos] =
// [76______]
// [____________________10]
((((int)in[57 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[58 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[59 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[60 + inPos]) << 18) & 4194303);
out[22 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[60 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[61 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[62 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[63 + inPos]) << 20) & 4194303);
out[23 + outPos] =
// [765432__]
// [________________543210]
((((int)in[63 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[64 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[65 + inPos]) << 14) & 4194303);
out[24 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[66 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[67 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[68 + inPos]) << 16) & 4194303);
out[25 + outPos] =
// [76______]
// [____________________10]
((((int)in[68 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[69 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[70 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[71 + inPos]) << 18) & 4194303);
out[26 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[71 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[72 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[73 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[74 + inPos]) << 20) & 4194303);
out[27 + outPos] =
// [765432__]
// [________________543210]
((((int)in[74 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[75 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[76 + inPos]) << 14) & 4194303);
out[28 + outPos] =
// [76543210]
// [______________76543210]
((((int)in[77 + inPos]) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in[78 + inPos]) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in[79 + inPos]) << 16) & 4194303);
out[29 + outPos] =
// [76______]
// [____________________10]
((((int)in[79 + inPos]) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in[80 + inPos]) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in[81 + inPos]) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in[82 + inPos]) << 18) & 4194303);
out[30 + outPos] =
// [7654____]
// [__________________3210]
((((int)in[82 + inPos]) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in[83 + inPos]) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in[84 + inPos]) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in[85 + inPos]) << 20) & 4194303);
out[31 + outPos] =
// [765432__]
// [________________543210]
((((int)in[85 + inPos]) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in[86 + inPos]) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in[87 + inPos]) << 14) & 4194303);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get( 2 + inPos)) << 16) & 4194303);
out[ 1 + outPos] =
// [76______]
// [____________________10]
((((int)in.get( 2 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get( 3 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get( 4 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get( 5 + inPos)) << 18) & 4194303);
out[ 2 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get( 5 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get( 6 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get( 7 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get( 8 + inPos)) << 20) & 4194303);
out[ 3 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get( 8 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get( 9 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(10 + inPos)) << 14) & 4194303);
out[ 4 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(11 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(12 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(13 + inPos)) << 16) & 4194303);
out[ 5 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(13 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(14 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(15 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(16 + inPos)) << 18) & 4194303);
out[ 6 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(16 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(17 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(18 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(19 + inPos)) << 20) & 4194303);
out[ 7 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(19 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(20 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(21 + inPos)) << 14) & 4194303);
out[ 8 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(22 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(23 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(24 + inPos)) << 16) & 4194303);
out[ 9 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(24 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(25 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(26 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(27 + inPos)) << 18) & 4194303);
out[10 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(27 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(28 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(29 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(30 + inPos)) << 20) & 4194303);
out[11 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(30 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(31 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(32 + inPos)) << 14) & 4194303);
out[12 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(33 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(34 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(35 + inPos)) << 16) & 4194303);
out[13 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(35 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(36 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(37 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(38 + inPos)) << 18) & 4194303);
out[14 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(38 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(39 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(40 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(41 + inPos)) << 20) & 4194303);
out[15 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(41 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(42 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(43 + inPos)) << 14) & 4194303);
out[16 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(44 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(45 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(46 + inPos)) << 16) & 4194303);
out[17 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(46 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(47 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(48 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(49 + inPos)) << 18) & 4194303);
out[18 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(49 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(50 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(51 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(52 + inPos)) << 20) & 4194303);
out[19 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(52 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(53 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(54 + inPos)) << 14) & 4194303);
out[20 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(55 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(56 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(57 + inPos)) << 16) & 4194303);
out[21 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(57 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(58 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(59 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(60 + inPos)) << 18) & 4194303);
out[22 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(60 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(61 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(62 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(63 + inPos)) << 20) & 4194303);
out[23 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(63 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(64 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(65 + inPos)) << 14) & 4194303);
out[24 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(66 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(67 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(68 + inPos)) << 16) & 4194303);
out[25 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(68 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(69 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(70 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(71 + inPos)) << 18) & 4194303);
out[26 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(71 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(72 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(73 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(74 + inPos)) << 20) & 4194303);
out[27 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(74 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(75 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(76 + inPos)) << 14) & 4194303);
out[28 + outPos] =
// [76543210]
// [______________76543210]
((((int)in.get(77 + inPos)) ) & 255)
| // [76543210]
// [______54321098________]
((((int)in.get(78 + inPos)) << 8) & 65535)
| // [__543210]
// [109876________________]
((((int)in.get(79 + inPos)) << 16) & 4194303);
out[29 + outPos] =
// [76______]
// [____________________10]
((((int)in.get(79 + inPos)) >> 6) & 3)
| // [76543210]
// [____________98765432__]
((((int)in.get(80 + inPos)) << 2) & 1023)
| // [76543210]
// [____76543210__________]
((((int)in.get(81 + inPos)) << 10) & 262143)
| // [____3210]
// [1098__________________]
((((int)in.get(82 + inPos)) << 18) & 4194303);
out[30 + outPos] =
// [7654____]
// [__________________3210]
((((int)in.get(82 + inPos)) >> 4) & 15)
| // [76543210]
// [__________10987654____]
((((int)in.get(83 + inPos)) << 4) & 4095)
| // [76543210]
// [__98765432____________]
((((int)in.get(84 + inPos)) << 12) & 1048575)
| // [______10]
// [10____________________]
((((int)in.get(85 + inPos)) << 20) & 4194303);
out[31 + outPos] =
// [765432__]
// [________________543210]
((((int)in.get(85 + inPos)) >> 2) & 63)
| // [76543210]
// [________32109876______]
((((int)in.get(86 + inPos)) << 6) & 16383)
| // [76543210]
// [10987654______________]
((((int)in.get(87 + inPos)) << 14) & 4194303);
}
}
private static final class Packer23 extends BytePacker {
private Packer23() {
super(23);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_______________76543210]
((in[ 0 + inPos] & 8388607))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_______54321098________]
((in[ 0 + inPos] & 8388607) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [_6543210]
// [2109876________________]
((in[ 0 + inPos] & 8388607) >>> 16)
| // [7_______]
// [______________________0]
((in[ 1 + inPos] & 8388607) << 7)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [______________87654321_]
((in[ 1 + inPos] & 8388607) >>> 1)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [______65432109_________]
((in[ 1 + inPos] & 8388607) >>> 9)) & 255);
out[ 5 + outPos] = (byte)((
// [__543210]
// [210987_________________]
((in[ 1 + inPos] & 8388607) >>> 17)
| // [76______]
// [_____________________10]
((in[ 2 + inPos] & 8388607) << 6)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [_____________98765432__]
((in[ 2 + inPos] & 8388607) >>> 2)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [_____76543210__________]
((in[ 2 + inPos] & 8388607) >>> 10)) & 255);
out[ 8 + outPos] = (byte)((
// [___43210]
// [21098__________________]
((in[ 2 + inPos] & 8388607) >>> 18)
| // [765_____]
// [____________________210]
((in[ 3 + inPos] & 8388607) << 5)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____________09876543___]
((in[ 3 + inPos] & 8388607) >>> 3)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [____87654321___________]
((in[ 3 + inPos] & 8388607) >>> 11)) & 255);
out[11 + outPos] = (byte)((
// [____3210]
// [2109___________________]
((in[ 3 + inPos] & 8388607) >>> 19)
| // [7654____]
// [___________________3210]
((in[ 4 + inPos] & 8388607) << 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [___________10987654____]
((in[ 4 + inPos] & 8388607) >>> 4)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [___98765432____________]
((in[ 4 + inPos] & 8388607) >>> 12)) & 255);
out[14 + outPos] = (byte)((
// [_____210]
// [210____________________]
((in[ 4 + inPos] & 8388607) >>> 20)
| // [76543___]
// [__________________43210]
((in[ 5 + inPos] & 8388607) << 3)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [__________21098765_____]
((in[ 5 + inPos] & 8388607) >>> 5)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [__09876543_____________]
((in[ 5 + inPos] & 8388607) >>> 13)) & 255);
out[17 + outPos] = (byte)((
// [______10]
// [21_____________________]
((in[ 5 + inPos] & 8388607) >>> 21)
| // [765432__]
// [_________________543210]
((in[ 6 + inPos] & 8388607) << 2)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [_________32109876______]
((in[ 6 + inPos] & 8388607) >>> 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [_10987654______________]
((in[ 6 + inPos] & 8388607) >>> 14)) & 255);
out[20 + outPos] = (byte)((
// [_______0]
// [2______________________]
((in[ 6 + inPos] & 8388607) >>> 22)
| // [7654321_]
// [________________6543210]
((in[ 7 + inPos] & 8388607) << 1)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [________43210987_______]
((in[ 7 + inPos] & 8388607) >>> 7)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [21098765_______________]
((in[ 7 + inPos] & 8388607) >>> 15)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_______________76543210]
((in[ 0 + inPos] & 8388607))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_______54321098________]
((in[ 0 + inPos] & 8388607) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [_6543210]
// [2109876________________]
((in[ 0 + inPos] & 8388607) >>> 16)
| // [7_______]
// [______________________0]
((in[ 1 + inPos] & 8388607) << 7)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [______________87654321_]
((in[ 1 + inPos] & 8388607) >>> 1)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [______65432109_________]
((in[ 1 + inPos] & 8388607) >>> 9)) & 255);
out[ 5 + outPos] = (byte)((
// [__543210]
// [210987_________________]
((in[ 1 + inPos] & 8388607) >>> 17)
| // [76______]
// [_____________________10]
((in[ 2 + inPos] & 8388607) << 6)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [_____________98765432__]
((in[ 2 + inPos] & 8388607) >>> 2)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [_____76543210__________]
((in[ 2 + inPos] & 8388607) >>> 10)) & 255);
out[ 8 + outPos] = (byte)((
// [___43210]
// [21098__________________]
((in[ 2 + inPos] & 8388607) >>> 18)
| // [765_____]
// [____________________210]
((in[ 3 + inPos] & 8388607) << 5)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____________09876543___]
((in[ 3 + inPos] & 8388607) >>> 3)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [____87654321___________]
((in[ 3 + inPos] & 8388607) >>> 11)) & 255);
out[11 + outPos] = (byte)((
// [____3210]
// [2109___________________]
((in[ 3 + inPos] & 8388607) >>> 19)
| // [7654____]
// [___________________3210]
((in[ 4 + inPos] & 8388607) << 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [___________10987654____]
((in[ 4 + inPos] & 8388607) >>> 4)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [___98765432____________]
((in[ 4 + inPos] & 8388607) >>> 12)) & 255);
out[14 + outPos] = (byte)((
// [_____210]
// [210____________________]
((in[ 4 + inPos] & 8388607) >>> 20)
| // [76543___]
// [__________________43210]
((in[ 5 + inPos] & 8388607) << 3)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [__________21098765_____]
((in[ 5 + inPos] & 8388607) >>> 5)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [__09876543_____________]
((in[ 5 + inPos] & 8388607) >>> 13)) & 255);
out[17 + outPos] = (byte)((
// [______10]
// [21_____________________]
((in[ 5 + inPos] & 8388607) >>> 21)
| // [765432__]
// [_________________543210]
((in[ 6 + inPos] & 8388607) << 2)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [_________32109876______]
((in[ 6 + inPos] & 8388607) >>> 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [_10987654______________]
((in[ 6 + inPos] & 8388607) >>> 14)) & 255);
out[20 + outPos] = (byte)((
// [_______0]
// [2______________________]
((in[ 6 + inPos] & 8388607) >>> 22)
| // [7654321_]
// [________________6543210]
((in[ 7 + inPos] & 8388607) << 1)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [________43210987_______]
((in[ 7 + inPos] & 8388607) >>> 7)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [21098765_______________]
((in[ 7 + inPos] & 8388607) >>> 15)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [_______________76543210]
((in[ 8 + inPos] & 8388607))) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [_______54321098________]
((in[ 8 + inPos] & 8388607) >>> 8)) & 255);
out[25 + outPos] = (byte)((
// [_6543210]
// [2109876________________]
((in[ 8 + inPos] & 8388607) >>> 16)
| // [7_______]
// [______________________0]
((in[ 9 + inPos] & 8388607) << 7)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [______________87654321_]
((in[ 9 + inPos] & 8388607) >>> 1)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [______65432109_________]
((in[ 9 + inPos] & 8388607) >>> 9)) & 255);
out[28 + outPos] = (byte)((
// [__543210]
// [210987_________________]
((in[ 9 + inPos] & 8388607) >>> 17)
| // [76______]
// [_____________________10]
((in[10 + inPos] & 8388607) << 6)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [_____________98765432__]
((in[10 + inPos] & 8388607) >>> 2)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [_____76543210__________]
((in[10 + inPos] & 8388607) >>> 10)) & 255);
out[31 + outPos] = (byte)((
// [___43210]
// [21098__________________]
((in[10 + inPos] & 8388607) >>> 18)
| // [765_____]
// [____________________210]
((in[11 + inPos] & 8388607) << 5)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [____________09876543___]
((in[11 + inPos] & 8388607) >>> 3)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [____87654321___________]
((in[11 + inPos] & 8388607) >>> 11)) & 255);
out[34 + outPos] = (byte)((
// [____3210]
// [2109___________________]
((in[11 + inPos] & 8388607) >>> 19)
| // [7654____]
// [___________________3210]
((in[12 + inPos] & 8388607) << 4)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [___________10987654____]
((in[12 + inPos] & 8388607) >>> 4)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [___98765432____________]
((in[12 + inPos] & 8388607) >>> 12)) & 255);
out[37 + outPos] = (byte)((
// [_____210]
// [210____________________]
((in[12 + inPos] & 8388607) >>> 20)
| // [76543___]
// [__________________43210]
((in[13 + inPos] & 8388607) << 3)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [__________21098765_____]
((in[13 + inPos] & 8388607) >>> 5)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [__09876543_____________]
((in[13 + inPos] & 8388607) >>> 13)) & 255);
out[40 + outPos] = (byte)((
// [______10]
// [21_____________________]
((in[13 + inPos] & 8388607) >>> 21)
| // [765432__]
// [_________________543210]
((in[14 + inPos] & 8388607) << 2)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [_________32109876______]
((in[14 + inPos] & 8388607) >>> 6)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [_10987654______________]
((in[14 + inPos] & 8388607) >>> 14)) & 255);
out[43 + outPos] = (byte)((
// [_______0]
// [2______________________]
((in[14 + inPos] & 8388607) >>> 22)
| // [7654321_]
// [________________6543210]
((in[15 + inPos] & 8388607) << 1)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [________43210987_______]
((in[15 + inPos] & 8388607) >>> 7)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [21098765_______________]
((in[15 + inPos] & 8388607) >>> 15)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [_______________76543210]
((in[16 + inPos] & 8388607))) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [_______54321098________]
((in[16 + inPos] & 8388607) >>> 8)) & 255);
out[48 + outPos] = (byte)((
// [_6543210]
// [2109876________________]
((in[16 + inPos] & 8388607) >>> 16)
| // [7_______]
// [______________________0]
((in[17 + inPos] & 8388607) << 7)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [______________87654321_]
((in[17 + inPos] & 8388607) >>> 1)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [______65432109_________]
((in[17 + inPos] & 8388607) >>> 9)) & 255);
out[51 + outPos] = (byte)((
// [__543210]
// [210987_________________]
((in[17 + inPos] & 8388607) >>> 17)
| // [76______]
// [_____________________10]
((in[18 + inPos] & 8388607) << 6)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [_____________98765432__]
((in[18 + inPos] & 8388607) >>> 2)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [_____76543210__________]
((in[18 + inPos] & 8388607) >>> 10)) & 255);
out[54 + outPos] = (byte)((
// [___43210]
// [21098__________________]
((in[18 + inPos] & 8388607) >>> 18)
| // [765_____]
// [____________________210]
((in[19 + inPos] & 8388607) << 5)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [____________09876543___]
((in[19 + inPos] & 8388607) >>> 3)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [____87654321___________]
((in[19 + inPos] & 8388607) >>> 11)) & 255);
out[57 + outPos] = (byte)((
// [____3210]
// [2109___________________]
((in[19 + inPos] & 8388607) >>> 19)
| // [7654____]
// [___________________3210]
((in[20 + inPos] & 8388607) << 4)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [___________10987654____]
((in[20 + inPos] & 8388607) >>> 4)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [___98765432____________]
((in[20 + inPos] & 8388607) >>> 12)) & 255);
out[60 + outPos] = (byte)((
// [_____210]
// [210____________________]
((in[20 + inPos] & 8388607) >>> 20)
| // [76543___]
// [__________________43210]
((in[21 + inPos] & 8388607) << 3)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [__________21098765_____]
((in[21 + inPos] & 8388607) >>> 5)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [__09876543_____________]
((in[21 + inPos] & 8388607) >>> 13)) & 255);
out[63 + outPos] = (byte)((
// [______10]
// [21_____________________]
((in[21 + inPos] & 8388607) >>> 21)
| // [765432__]
// [_________________543210]
((in[22 + inPos] & 8388607) << 2)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [_________32109876______]
((in[22 + inPos] & 8388607) >>> 6)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [_10987654______________]
((in[22 + inPos] & 8388607) >>> 14)) & 255);
out[66 + outPos] = (byte)((
// [_______0]
// [2______________________]
((in[22 + inPos] & 8388607) >>> 22)
| // [7654321_]
// [________________6543210]
((in[23 + inPos] & 8388607) << 1)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [________43210987_______]
((in[23 + inPos] & 8388607) >>> 7)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [21098765_______________]
((in[23 + inPos] & 8388607) >>> 15)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [_______________76543210]
((in[24 + inPos] & 8388607))) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [_______54321098________]
((in[24 + inPos] & 8388607) >>> 8)) & 255);
out[71 + outPos] = (byte)((
// [_6543210]
// [2109876________________]
((in[24 + inPos] & 8388607) >>> 16)
| // [7_______]
// [______________________0]
((in[25 + inPos] & 8388607) << 7)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [______________87654321_]
((in[25 + inPos] & 8388607) >>> 1)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [______65432109_________]
((in[25 + inPos] & 8388607) >>> 9)) & 255);
out[74 + outPos] = (byte)((
// [__543210]
// [210987_________________]
((in[25 + inPos] & 8388607) >>> 17)
| // [76______]
// [_____________________10]
((in[26 + inPos] & 8388607) << 6)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [_____________98765432__]
((in[26 + inPos] & 8388607) >>> 2)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [_____76543210__________]
((in[26 + inPos] & 8388607) >>> 10)) & 255);
out[77 + outPos] = (byte)((
// [___43210]
// [21098__________________]
((in[26 + inPos] & 8388607) >>> 18)
| // [765_____]
// [____________________210]
((in[27 + inPos] & 8388607) << 5)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [____________09876543___]
((in[27 + inPos] & 8388607) >>> 3)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [____87654321___________]
((in[27 + inPos] & 8388607) >>> 11)) & 255);
out[80 + outPos] = (byte)((
// [____3210]
// [2109___________________]
((in[27 + inPos] & 8388607) >>> 19)
| // [7654____]
// [___________________3210]
((in[28 + inPos] & 8388607) << 4)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [___________10987654____]
((in[28 + inPos] & 8388607) >>> 4)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [___98765432____________]
((in[28 + inPos] & 8388607) >>> 12)) & 255);
out[83 + outPos] = (byte)((
// [_____210]
// [210____________________]
((in[28 + inPos] & 8388607) >>> 20)
| // [76543___]
// [__________________43210]
((in[29 + inPos] & 8388607) << 3)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [__________21098765_____]
((in[29 + inPos] & 8388607) >>> 5)) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [__09876543_____________]
((in[29 + inPos] & 8388607) >>> 13)) & 255);
out[86 + outPos] = (byte)((
// [______10]
// [21_____________________]
((in[29 + inPos] & 8388607) >>> 21)
| // [765432__]
// [_________________543210]
((in[30 + inPos] & 8388607) << 2)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [_________32109876______]
((in[30 + inPos] & 8388607) >>> 6)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [_10987654______________]
((in[30 + inPos] & 8388607) >>> 14)) & 255);
out[89 + outPos] = (byte)((
// [_______0]
// [2______________________]
((in[30 + inPos] & 8388607) >>> 22)
| // [7654321_]
// [________________6543210]
((in[31 + inPos] & 8388607) << 1)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [________43210987_______]
((in[31 + inPos] & 8388607) >>> 7)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [21098765_______________]
((in[31 + inPos] & 8388607) >>> 15)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in[ 2 + inPos]) << 16) & 8388607);
out[ 1 + outPos] =
// [7_______]
// [______________________0]
((((int)in[ 2 + inPos]) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in[ 3 + inPos]) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in[ 4 + inPos]) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in[ 5 + inPos]) << 17) & 8388607);
out[ 2 + outPos] =
// [76______]
// [_____________________10]
((((int)in[ 5 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in[ 6 + inPos]) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in[ 7 + inPos]) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in[ 8 + inPos]) << 18) & 8388607);
out[ 3 + outPos] =
// [765_____]
// [____________________210]
((((int)in[ 8 + inPos]) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in[ 9 + inPos]) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in[10 + inPos]) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in[11 + inPos]) << 19) & 8388607);
out[ 4 + outPos] =
// [7654____]
// [___________________3210]
((((int)in[11 + inPos]) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in[12 + inPos]) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in[13 + inPos]) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in[14 + inPos]) << 20) & 8388607);
out[ 5 + outPos] =
// [76543___]
// [__________________43210]
((((int)in[14 + inPos]) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in[15 + inPos]) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in[16 + inPos]) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in[17 + inPos]) << 21) & 8388607);
out[ 6 + outPos] =
// [765432__]
// [_________________543210]
((((int)in[17 + inPos]) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in[18 + inPos]) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in[19 + inPos]) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in[20 + inPos]) << 22) & 8388607);
out[ 7 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in[20 + inPos]) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in[21 + inPos]) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in[22 + inPos]) << 15) & 8388607);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in.get( 2 + inPos)) << 16) & 8388607);
out[ 1 + outPos] =
// [7_______]
// [______________________0]
((((int)in.get( 2 + inPos)) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in.get( 3 + inPos)) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in.get( 4 + inPos)) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in.get( 5 + inPos)) << 17) & 8388607);
out[ 2 + outPos] =
// [76______]
// [_____________________10]
((((int)in.get( 5 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in.get( 6 + inPos)) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in.get( 7 + inPos)) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in.get( 8 + inPos)) << 18) & 8388607);
out[ 3 + outPos] =
// [765_____]
// [____________________210]
((((int)in.get( 8 + inPos)) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in.get( 9 + inPos)) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in.get(10 + inPos)) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in.get(11 + inPos)) << 19) & 8388607);
out[ 4 + outPos] =
// [7654____]
// [___________________3210]
((((int)in.get(11 + inPos)) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in.get(12 + inPos)) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in.get(13 + inPos)) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in.get(14 + inPos)) << 20) & 8388607);
out[ 5 + outPos] =
// [76543___]
// [__________________43210]
((((int)in.get(14 + inPos)) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in.get(15 + inPos)) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in.get(16 + inPos)) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in.get(17 + inPos)) << 21) & 8388607);
out[ 6 + outPos] =
// [765432__]
// [_________________543210]
((((int)in.get(17 + inPos)) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in.get(18 + inPos)) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in.get(19 + inPos)) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in.get(20 + inPos)) << 22) & 8388607);
out[ 7 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in.get(20 + inPos)) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in.get(21 + inPos)) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in.get(22 + inPos)) << 15) & 8388607);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in[ 2 + inPos]) << 16) & 8388607);
out[ 1 + outPos] =
// [7_______]
// [______________________0]
((((int)in[ 2 + inPos]) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in[ 3 + inPos]) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in[ 4 + inPos]) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in[ 5 + inPos]) << 17) & 8388607);
out[ 2 + outPos] =
// [76______]
// [_____________________10]
((((int)in[ 5 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in[ 6 + inPos]) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in[ 7 + inPos]) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in[ 8 + inPos]) << 18) & 8388607);
out[ 3 + outPos] =
// [765_____]
// [____________________210]
((((int)in[ 8 + inPos]) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in[ 9 + inPos]) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in[10 + inPos]) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in[11 + inPos]) << 19) & 8388607);
out[ 4 + outPos] =
// [7654____]
// [___________________3210]
((((int)in[11 + inPos]) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in[12 + inPos]) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in[13 + inPos]) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in[14 + inPos]) << 20) & 8388607);
out[ 5 + outPos] =
// [76543___]
// [__________________43210]
((((int)in[14 + inPos]) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in[15 + inPos]) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in[16 + inPos]) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in[17 + inPos]) << 21) & 8388607);
out[ 6 + outPos] =
// [765432__]
// [_________________543210]
((((int)in[17 + inPos]) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in[18 + inPos]) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in[19 + inPos]) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in[20 + inPos]) << 22) & 8388607);
out[ 7 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in[20 + inPos]) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in[21 + inPos]) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in[22 + inPos]) << 15) & 8388607);
out[ 8 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in[23 + inPos]) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in[24 + inPos]) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in[25 + inPos]) << 16) & 8388607);
out[ 9 + outPos] =
// [7_______]
// [______________________0]
((((int)in[25 + inPos]) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in[26 + inPos]) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in[27 + inPos]) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in[28 + inPos]) << 17) & 8388607);
out[10 + outPos] =
// [76______]
// [_____________________10]
((((int)in[28 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in[29 + inPos]) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in[30 + inPos]) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in[31 + inPos]) << 18) & 8388607);
out[11 + outPos] =
// [765_____]
// [____________________210]
((((int)in[31 + inPos]) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in[32 + inPos]) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in[33 + inPos]) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in[34 + inPos]) << 19) & 8388607);
out[12 + outPos] =
// [7654____]
// [___________________3210]
((((int)in[34 + inPos]) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in[35 + inPos]) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in[36 + inPos]) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in[37 + inPos]) << 20) & 8388607);
out[13 + outPos] =
// [76543___]
// [__________________43210]
((((int)in[37 + inPos]) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in[38 + inPos]) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in[39 + inPos]) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in[40 + inPos]) << 21) & 8388607);
out[14 + outPos] =
// [765432__]
// [_________________543210]
((((int)in[40 + inPos]) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in[41 + inPos]) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in[42 + inPos]) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in[43 + inPos]) << 22) & 8388607);
out[15 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in[43 + inPos]) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in[44 + inPos]) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in[45 + inPos]) << 15) & 8388607);
out[16 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in[46 + inPos]) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in[47 + inPos]) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in[48 + inPos]) << 16) & 8388607);
out[17 + outPos] =
// [7_______]
// [______________________0]
((((int)in[48 + inPos]) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in[49 + inPos]) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in[50 + inPos]) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in[51 + inPos]) << 17) & 8388607);
out[18 + outPos] =
// [76______]
// [_____________________10]
((((int)in[51 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in[52 + inPos]) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in[53 + inPos]) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in[54 + inPos]) << 18) & 8388607);
out[19 + outPos] =
// [765_____]
// [____________________210]
((((int)in[54 + inPos]) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in[55 + inPos]) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in[56 + inPos]) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in[57 + inPos]) << 19) & 8388607);
out[20 + outPos] =
// [7654____]
// [___________________3210]
((((int)in[57 + inPos]) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in[58 + inPos]) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in[59 + inPos]) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in[60 + inPos]) << 20) & 8388607);
out[21 + outPos] =
// [76543___]
// [__________________43210]
((((int)in[60 + inPos]) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in[61 + inPos]) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in[62 + inPos]) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in[63 + inPos]) << 21) & 8388607);
out[22 + outPos] =
// [765432__]
// [_________________543210]
((((int)in[63 + inPos]) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in[64 + inPos]) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in[65 + inPos]) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in[66 + inPos]) << 22) & 8388607);
out[23 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in[66 + inPos]) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in[67 + inPos]) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in[68 + inPos]) << 15) & 8388607);
out[24 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in[69 + inPos]) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in[70 + inPos]) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in[71 + inPos]) << 16) & 8388607);
out[25 + outPos] =
// [7_______]
// [______________________0]
((((int)in[71 + inPos]) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in[72 + inPos]) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in[73 + inPos]) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in[74 + inPos]) << 17) & 8388607);
out[26 + outPos] =
// [76______]
// [_____________________10]
((((int)in[74 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in[75 + inPos]) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in[76 + inPos]) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in[77 + inPos]) << 18) & 8388607);
out[27 + outPos] =
// [765_____]
// [____________________210]
((((int)in[77 + inPos]) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in[78 + inPos]) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in[79 + inPos]) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in[80 + inPos]) << 19) & 8388607);
out[28 + outPos] =
// [7654____]
// [___________________3210]
((((int)in[80 + inPos]) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in[81 + inPos]) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in[82 + inPos]) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in[83 + inPos]) << 20) & 8388607);
out[29 + outPos] =
// [76543___]
// [__________________43210]
((((int)in[83 + inPos]) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in[84 + inPos]) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in[85 + inPos]) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in[86 + inPos]) << 21) & 8388607);
out[30 + outPos] =
// [765432__]
// [_________________543210]
((((int)in[86 + inPos]) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in[87 + inPos]) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in[88 + inPos]) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in[89 + inPos]) << 22) & 8388607);
out[31 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in[89 + inPos]) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in[90 + inPos]) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in[91 + inPos]) << 15) & 8388607);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in.get( 2 + inPos)) << 16) & 8388607);
out[ 1 + outPos] =
// [7_______]
// [______________________0]
((((int)in.get( 2 + inPos)) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in.get( 3 + inPos)) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in.get( 4 + inPos)) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in.get( 5 + inPos)) << 17) & 8388607);
out[ 2 + outPos] =
// [76______]
// [_____________________10]
((((int)in.get( 5 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in.get( 6 + inPos)) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in.get( 7 + inPos)) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in.get( 8 + inPos)) << 18) & 8388607);
out[ 3 + outPos] =
// [765_____]
// [____________________210]
((((int)in.get( 8 + inPos)) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in.get( 9 + inPos)) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in.get(10 + inPos)) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in.get(11 + inPos)) << 19) & 8388607);
out[ 4 + outPos] =
// [7654____]
// [___________________3210]
((((int)in.get(11 + inPos)) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in.get(12 + inPos)) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in.get(13 + inPos)) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in.get(14 + inPos)) << 20) & 8388607);
out[ 5 + outPos] =
// [76543___]
// [__________________43210]
((((int)in.get(14 + inPos)) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in.get(15 + inPos)) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in.get(16 + inPos)) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in.get(17 + inPos)) << 21) & 8388607);
out[ 6 + outPos] =
// [765432__]
// [_________________543210]
((((int)in.get(17 + inPos)) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in.get(18 + inPos)) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in.get(19 + inPos)) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in.get(20 + inPos)) << 22) & 8388607);
out[ 7 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in.get(20 + inPos)) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in.get(21 + inPos)) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in.get(22 + inPos)) << 15) & 8388607);
out[ 8 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in.get(23 + inPos)) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in.get(24 + inPos)) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in.get(25 + inPos)) << 16) & 8388607);
out[ 9 + outPos] =
// [7_______]
// [______________________0]
((((int)in.get(25 + inPos)) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in.get(26 + inPos)) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in.get(27 + inPos)) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in.get(28 + inPos)) << 17) & 8388607);
out[10 + outPos] =
// [76______]
// [_____________________10]
((((int)in.get(28 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in.get(29 + inPos)) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in.get(30 + inPos)) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in.get(31 + inPos)) << 18) & 8388607);
out[11 + outPos] =
// [765_____]
// [____________________210]
((((int)in.get(31 + inPos)) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in.get(32 + inPos)) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in.get(33 + inPos)) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in.get(34 + inPos)) << 19) & 8388607);
out[12 + outPos] =
// [7654____]
// [___________________3210]
((((int)in.get(34 + inPos)) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in.get(35 + inPos)) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in.get(36 + inPos)) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in.get(37 + inPos)) << 20) & 8388607);
out[13 + outPos] =
// [76543___]
// [__________________43210]
((((int)in.get(37 + inPos)) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in.get(38 + inPos)) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in.get(39 + inPos)) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in.get(40 + inPos)) << 21) & 8388607);
out[14 + outPos] =
// [765432__]
// [_________________543210]
((((int)in.get(40 + inPos)) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in.get(41 + inPos)) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in.get(42 + inPos)) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in.get(43 + inPos)) << 22) & 8388607);
out[15 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in.get(43 + inPos)) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in.get(44 + inPos)) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in.get(45 + inPos)) << 15) & 8388607);
out[16 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in.get(46 + inPos)) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in.get(47 + inPos)) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in.get(48 + inPos)) << 16) & 8388607);
out[17 + outPos] =
// [7_______]
// [______________________0]
((((int)in.get(48 + inPos)) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in.get(49 + inPos)) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in.get(50 + inPos)) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in.get(51 + inPos)) << 17) & 8388607);
out[18 + outPos] =
// [76______]
// [_____________________10]
((((int)in.get(51 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in.get(52 + inPos)) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in.get(53 + inPos)) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in.get(54 + inPos)) << 18) & 8388607);
out[19 + outPos] =
// [765_____]
// [____________________210]
((((int)in.get(54 + inPos)) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in.get(55 + inPos)) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in.get(56 + inPos)) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in.get(57 + inPos)) << 19) & 8388607);
out[20 + outPos] =
// [7654____]
// [___________________3210]
((((int)in.get(57 + inPos)) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in.get(58 + inPos)) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in.get(59 + inPos)) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in.get(60 + inPos)) << 20) & 8388607);
out[21 + outPos] =
// [76543___]
// [__________________43210]
((((int)in.get(60 + inPos)) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in.get(61 + inPos)) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in.get(62 + inPos)) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in.get(63 + inPos)) << 21) & 8388607);
out[22 + outPos] =
// [765432__]
// [_________________543210]
((((int)in.get(63 + inPos)) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in.get(64 + inPos)) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in.get(65 + inPos)) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in.get(66 + inPos)) << 22) & 8388607);
out[23 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in.get(66 + inPos)) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in.get(67 + inPos)) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in.get(68 + inPos)) << 15) & 8388607);
out[24 + outPos] =
// [76543210]
// [_______________76543210]
((((int)in.get(69 + inPos)) ) & 255)
| // [76543210]
// [_______54321098________]
((((int)in.get(70 + inPos)) << 8) & 65535)
| // [_6543210]
// [2109876________________]
((((int)in.get(71 + inPos)) << 16) & 8388607);
out[25 + outPos] =
// [7_______]
// [______________________0]
((((int)in.get(71 + inPos)) >> 7) & 1)
| // [76543210]
// [______________87654321_]
((((int)in.get(72 + inPos)) << 1) & 511)
| // [76543210]
// [______65432109_________]
((((int)in.get(73 + inPos)) << 9) & 131071)
| // [__543210]
// [210987_________________]
((((int)in.get(74 + inPos)) << 17) & 8388607);
out[26 + outPos] =
// [76______]
// [_____________________10]
((((int)in.get(74 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________98765432__]
((((int)in.get(75 + inPos)) << 2) & 1023)
| // [76543210]
// [_____76543210__________]
((((int)in.get(76 + inPos)) << 10) & 262143)
| // [___43210]
// [21098__________________]
((((int)in.get(77 + inPos)) << 18) & 8388607);
out[27 + outPos] =
// [765_____]
// [____________________210]
((((int)in.get(77 + inPos)) >> 5) & 7)
| // [76543210]
// [____________09876543___]
((((int)in.get(78 + inPos)) << 3) & 2047)
| // [76543210]
// [____87654321___________]
((((int)in.get(79 + inPos)) << 11) & 524287)
| // [____3210]
// [2109___________________]
((((int)in.get(80 + inPos)) << 19) & 8388607);
out[28 + outPos] =
// [7654____]
// [___________________3210]
((((int)in.get(80 + inPos)) >> 4) & 15)
| // [76543210]
// [___________10987654____]
((((int)in.get(81 + inPos)) << 4) & 4095)
| // [76543210]
// [___98765432____________]
((((int)in.get(82 + inPos)) << 12) & 1048575)
| // [_____210]
// [210____________________]
((((int)in.get(83 + inPos)) << 20) & 8388607);
out[29 + outPos] =
// [76543___]
// [__________________43210]
((((int)in.get(83 + inPos)) >> 3) & 31)
| // [76543210]
// [__________21098765_____]
((((int)in.get(84 + inPos)) << 5) & 8191)
| // [76543210]
// [__09876543_____________]
((((int)in.get(85 + inPos)) << 13) & 2097151)
| // [______10]
// [21_____________________]
((((int)in.get(86 + inPos)) << 21) & 8388607);
out[30 + outPos] =
// [765432__]
// [_________________543210]
((((int)in.get(86 + inPos)) >> 2) & 63)
| // [76543210]
// [_________32109876______]
((((int)in.get(87 + inPos)) << 6) & 16383)
| // [76543210]
// [_10987654______________]
((((int)in.get(88 + inPos)) << 14) & 4194303)
| // [_______0]
// [2______________________]
((((int)in.get(89 + inPos)) << 22) & 8388607);
out[31 + outPos] =
// [7654321_]
// [________________6543210]
((((int)in.get(89 + inPos)) >> 1) & 127)
| // [76543210]
// [________43210987_______]
((((int)in.get(90 + inPos)) << 7) & 32767)
| // [76543210]
// [21098765_______________]
((((int)in.get(91 + inPos)) << 15) & 8388607);
}
}
private static final class Packer24 extends BytePacker {
private Packer24() {
super(24);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 0 + inPos] & 16777215))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 0 + inPos] & 16777215) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 0 + inPos] & 16777215) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 1 + inPos] & 16777215))) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 1 + inPos] & 16777215) >>> 8)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 1 + inPos] & 16777215) >>> 16)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 2 + inPos] & 16777215))) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 2 + inPos] & 16777215) >>> 8)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 2 + inPos] & 16777215) >>> 16)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 3 + inPos] & 16777215))) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 3 + inPos] & 16777215) >>> 8)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 3 + inPos] & 16777215) >>> 16)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 4 + inPos] & 16777215))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 4 + inPos] & 16777215) >>> 8)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 4 + inPos] & 16777215) >>> 16)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 5 + inPos] & 16777215))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 5 + inPos] & 16777215) >>> 8)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 5 + inPos] & 16777215) >>> 16)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 6 + inPos] & 16777215))) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 6 + inPos] & 16777215) >>> 8)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 6 + inPos] & 16777215) >>> 16)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 7 + inPos] & 16777215))) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 7 + inPos] & 16777215) >>> 8)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 7 + inPos] & 16777215) >>> 16)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 0 + inPos] & 16777215))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 0 + inPos] & 16777215) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 0 + inPos] & 16777215) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 1 + inPos] & 16777215))) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 1 + inPos] & 16777215) >>> 8)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 1 + inPos] & 16777215) >>> 16)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 2 + inPos] & 16777215))) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 2 + inPos] & 16777215) >>> 8)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 2 + inPos] & 16777215) >>> 16)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 3 + inPos] & 16777215))) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 3 + inPos] & 16777215) >>> 8)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 3 + inPos] & 16777215) >>> 16)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 4 + inPos] & 16777215))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 4 + inPos] & 16777215) >>> 8)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 4 + inPos] & 16777215) >>> 16)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 5 + inPos] & 16777215))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 5 + inPos] & 16777215) >>> 8)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 5 + inPos] & 16777215) >>> 16)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 6 + inPos] & 16777215))) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 6 + inPos] & 16777215) >>> 8)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 6 + inPos] & 16777215) >>> 16)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 7 + inPos] & 16777215))) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 7 + inPos] & 16777215) >>> 8)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 7 + inPos] & 16777215) >>> 16)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 8 + inPos] & 16777215))) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 8 + inPos] & 16777215) >>> 8)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 8 + inPos] & 16777215) >>> 16)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[ 9 + inPos] & 16777215))) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[ 9 + inPos] & 16777215) >>> 8)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[ 9 + inPos] & 16777215) >>> 16)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[10 + inPos] & 16777215))) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[10 + inPos] & 16777215) >>> 8)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[10 + inPos] & 16777215) >>> 16)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[11 + inPos] & 16777215))) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[11 + inPos] & 16777215) >>> 8)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[11 + inPos] & 16777215) >>> 16)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[12 + inPos] & 16777215))) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[12 + inPos] & 16777215) >>> 8)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[12 + inPos] & 16777215) >>> 16)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[13 + inPos] & 16777215))) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[13 + inPos] & 16777215) >>> 8)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[13 + inPos] & 16777215) >>> 16)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[14 + inPos] & 16777215))) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[14 + inPos] & 16777215) >>> 8)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[14 + inPos] & 16777215) >>> 16)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[15 + inPos] & 16777215))) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[15 + inPos] & 16777215) >>> 8)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[15 + inPos] & 16777215) >>> 16)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[16 + inPos] & 16777215))) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[16 + inPos] & 16777215) >>> 8)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[16 + inPos] & 16777215) >>> 16)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[17 + inPos] & 16777215))) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[17 + inPos] & 16777215) >>> 8)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[17 + inPos] & 16777215) >>> 16)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[18 + inPos] & 16777215))) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[18 + inPos] & 16777215) >>> 8)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[18 + inPos] & 16777215) >>> 16)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[19 + inPos] & 16777215))) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[19 + inPos] & 16777215) >>> 8)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[19 + inPos] & 16777215) >>> 16)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[20 + inPos] & 16777215))) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[20 + inPos] & 16777215) >>> 8)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[20 + inPos] & 16777215) >>> 16)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[21 + inPos] & 16777215))) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[21 + inPos] & 16777215) >>> 8)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[21 + inPos] & 16777215) >>> 16)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[22 + inPos] & 16777215))) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[22 + inPos] & 16777215) >>> 8)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[22 + inPos] & 16777215) >>> 16)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[23 + inPos] & 16777215))) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[23 + inPos] & 16777215) >>> 8)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[23 + inPos] & 16777215) >>> 16)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[24 + inPos] & 16777215))) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[24 + inPos] & 16777215) >>> 8)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[24 + inPos] & 16777215) >>> 16)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[25 + inPos] & 16777215))) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[25 + inPos] & 16777215) >>> 8)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[25 + inPos] & 16777215) >>> 16)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[26 + inPos] & 16777215))) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[26 + inPos] & 16777215) >>> 8)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[26 + inPos] & 16777215) >>> 16)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[27 + inPos] & 16777215))) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[27 + inPos] & 16777215) >>> 8)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[27 + inPos] & 16777215) >>> 16)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[28 + inPos] & 16777215))) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[28 + inPos] & 16777215) >>> 8)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[28 + inPos] & 16777215) >>> 16)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[29 + inPos] & 16777215))) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[29 + inPos] & 16777215) >>> 8)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[29 + inPos] & 16777215) >>> 16)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[30 + inPos] & 16777215))) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[30 + inPos] & 16777215) >>> 8)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[30 + inPos] & 16777215) >>> 16)) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [________________76543210]
((in[31 + inPos] & 16777215))) & 255);
out[94 + outPos] = (byte)((
// [76543210]
// [________54321098________]
((in[31 + inPos] & 16777215) >>> 8)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [32109876________________]
((in[31 + inPos] & 16777215) >>> 16)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215);
out[ 1 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 3 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[ 4 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[ 5 + inPos]) << 16) & 16777215);
out[ 2 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 6 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[ 7 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[ 8 + inPos]) << 16) & 16777215);
out[ 3 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[10 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[11 + inPos]) << 16) & 16777215);
out[ 4 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[12 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[13 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[14 + inPos]) << 16) & 16777215);
out[ 5 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[15 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[16 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[17 + inPos]) << 16) & 16777215);
out[ 6 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[18 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[19 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[20 + inPos]) << 16) & 16777215);
out[ 7 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[21 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[22 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[23 + inPos]) << 16) & 16777215);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215);
out[ 1 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 3 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get( 4 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get( 5 + inPos)) << 16) & 16777215);
out[ 2 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 6 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get( 7 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get( 8 + inPos)) << 16) & 16777215);
out[ 3 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(10 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(11 + inPos)) << 16) & 16777215);
out[ 4 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(13 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(14 + inPos)) << 16) & 16777215);
out[ 5 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(16 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(17 + inPos)) << 16) & 16777215);
out[ 6 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(18 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(19 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(20 + inPos)) << 16) & 16777215);
out[ 7 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(22 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(23 + inPos)) << 16) & 16777215);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215);
out[ 1 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 3 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[ 4 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[ 5 + inPos]) << 16) & 16777215);
out[ 2 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 6 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[ 7 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[ 8 + inPos]) << 16) & 16777215);
out[ 3 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[ 9 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[10 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[11 + inPos]) << 16) & 16777215);
out[ 4 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[12 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[13 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[14 + inPos]) << 16) & 16777215);
out[ 5 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[15 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[16 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[17 + inPos]) << 16) & 16777215);
out[ 6 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[18 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[19 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[20 + inPos]) << 16) & 16777215);
out[ 7 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[21 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[22 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[23 + inPos]) << 16) & 16777215);
out[ 8 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[24 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[25 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[26 + inPos]) << 16) & 16777215);
out[ 9 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[27 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[28 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[29 + inPos]) << 16) & 16777215);
out[10 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[30 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[31 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[32 + inPos]) << 16) & 16777215);
out[11 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[33 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[34 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[35 + inPos]) << 16) & 16777215);
out[12 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[36 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[37 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[38 + inPos]) << 16) & 16777215);
out[13 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[39 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[40 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[41 + inPos]) << 16) & 16777215);
out[14 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[42 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[43 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[44 + inPos]) << 16) & 16777215);
out[15 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[45 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[46 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[47 + inPos]) << 16) & 16777215);
out[16 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[48 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[49 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[50 + inPos]) << 16) & 16777215);
out[17 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[51 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[52 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[53 + inPos]) << 16) & 16777215);
out[18 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[54 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[55 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[56 + inPos]) << 16) & 16777215);
out[19 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[57 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[58 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[59 + inPos]) << 16) & 16777215);
out[20 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[60 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[61 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[62 + inPos]) << 16) & 16777215);
out[21 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[63 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[64 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[65 + inPos]) << 16) & 16777215);
out[22 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[66 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[67 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[68 + inPos]) << 16) & 16777215);
out[23 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[69 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[70 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[71 + inPos]) << 16) & 16777215);
out[24 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[72 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[73 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[74 + inPos]) << 16) & 16777215);
out[25 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[75 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[76 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[77 + inPos]) << 16) & 16777215);
out[26 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[78 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[79 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[80 + inPos]) << 16) & 16777215);
out[27 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[81 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[82 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[83 + inPos]) << 16) & 16777215);
out[28 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[84 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[85 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[86 + inPos]) << 16) & 16777215);
out[29 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[87 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[88 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[89 + inPos]) << 16) & 16777215);
out[30 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[90 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[91 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[92 + inPos]) << 16) & 16777215);
out[31 + outPos] =
// [76543210]
// [________________76543210]
((((int)in[93 + inPos]) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in[94 + inPos]) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in[95 + inPos]) << 16) & 16777215);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215);
out[ 1 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 3 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get( 4 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get( 5 + inPos)) << 16) & 16777215);
out[ 2 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 6 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get( 7 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get( 8 + inPos)) << 16) & 16777215);
out[ 3 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get( 9 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(10 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(11 + inPos)) << 16) & 16777215);
out[ 4 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(13 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(14 + inPos)) << 16) & 16777215);
out[ 5 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(16 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(17 + inPos)) << 16) & 16777215);
out[ 6 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(18 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(19 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(20 + inPos)) << 16) & 16777215);
out[ 7 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(22 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(23 + inPos)) << 16) & 16777215);
out[ 8 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(24 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(25 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(26 + inPos)) << 16) & 16777215);
out[ 9 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(27 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(28 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(29 + inPos)) << 16) & 16777215);
out[10 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(31 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(32 + inPos)) << 16) & 16777215);
out[11 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(33 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(34 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(35 + inPos)) << 16) & 16777215);
out[12 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(36 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(37 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(38 + inPos)) << 16) & 16777215);
out[13 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(39 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(40 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(41 + inPos)) << 16) & 16777215);
out[14 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(42 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(43 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(44 + inPos)) << 16) & 16777215);
out[15 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(45 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(46 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(47 + inPos)) << 16) & 16777215);
out[16 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(48 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(49 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(50 + inPos)) << 16) & 16777215);
out[17 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(51 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(52 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(53 + inPos)) << 16) & 16777215);
out[18 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(54 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(55 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(56 + inPos)) << 16) & 16777215);
out[19 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(57 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(58 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(59 + inPos)) << 16) & 16777215);
out[20 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(60 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(61 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(62 + inPos)) << 16) & 16777215);
out[21 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(63 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(64 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(65 + inPos)) << 16) & 16777215);
out[22 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(66 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(67 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(68 + inPos)) << 16) & 16777215);
out[23 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(69 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(70 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(71 + inPos)) << 16) & 16777215);
out[24 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(72 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(73 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(74 + inPos)) << 16) & 16777215);
out[25 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(75 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(76 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(77 + inPos)) << 16) & 16777215);
out[26 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(78 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(79 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(80 + inPos)) << 16) & 16777215);
out[27 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(81 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(82 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(83 + inPos)) << 16) & 16777215);
out[28 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(84 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(85 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(86 + inPos)) << 16) & 16777215);
out[29 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(87 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(88 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(89 + inPos)) << 16) & 16777215);
out[30 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(90 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(91 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(92 + inPos)) << 16) & 16777215);
out[31 + outPos] =
// [76543210]
// [________________76543210]
((((int)in.get(93 + inPos)) ) & 255)
| // [76543210]
// [________54321098________]
((((int)in.get(94 + inPos)) << 8) & 65535)
| // [76543210]
// [32109876________________]
((((int)in.get(95 + inPos)) << 16) & 16777215);
}
}
private static final class Packer25 extends BytePacker {
private Packer25() {
super(25);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_________________76543210]
((in[ 0 + inPos] & 33554431))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_________54321098________]
((in[ 0 + inPos] & 33554431) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [_32109876________________]
((in[ 0 + inPos] & 33554431) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [_______0]
// [4________________________]
((in[ 0 + inPos] & 33554431) >>> 24)
| // [7654321_]
// [__________________6543210]
((in[ 1 + inPos] & 33554431) << 1)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__________43210987_______]
((in[ 1 + inPos] & 33554431) >>> 7)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [__21098765_______________]
((in[ 1 + inPos] & 33554431) >>> 15)) & 255);
out[ 6 + outPos] = (byte)((
// [______10]
// [43_______________________]
((in[ 1 + inPos] & 33554431) >>> 23)
| // [765432__]
// [___________________543210]
((in[ 2 + inPos] & 33554431) << 2)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [___________32109876______]
((in[ 2 + inPos] & 33554431) >>> 6)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [___10987654______________]
((in[ 2 + inPos] & 33554431) >>> 14)) & 255);
out[ 9 + outPos] = (byte)((
// [_____210]
// [432______________________]
((in[ 2 + inPos] & 33554431) >>> 22)
| // [76543___]
// [____________________43210]
((in[ 3 + inPos] & 33554431) << 3)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [____________21098765_____]
((in[ 3 + inPos] & 33554431) >>> 5)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____09876543_____________]
((in[ 3 + inPos] & 33554431) >>> 13)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [4321_____________________]
((in[ 3 + inPos] & 33554431) >>> 21)
| // [7654____]
// [_____________________3210]
((in[ 4 + inPos] & 33554431) << 4)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [_____________10987654____]
((in[ 4 + inPos] & 33554431) >>> 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [_____98765432____________]
((in[ 4 + inPos] & 33554431) >>> 12)) & 255);
out[15 + outPos] = (byte)((
// [___43210]
// [43210____________________]
((in[ 4 + inPos] & 33554431) >>> 20)
| // [765_____]
// [______________________210]
((in[ 5 + inPos] & 33554431) << 5)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [______________09876543___]
((in[ 5 + inPos] & 33554431) >>> 3)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [______87654321___________]
((in[ 5 + inPos] & 33554431) >>> 11)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [432109___________________]
((in[ 5 + inPos] & 33554431) >>> 19)
| // [76______]
// [_______________________10]
((in[ 6 + inPos] & 33554431) << 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [_______________98765432__]
((in[ 6 + inPos] & 33554431) >>> 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [_______76543210__________]
((in[ 6 + inPos] & 33554431) >>> 10)) & 255);
out[21 + outPos] = (byte)((
// [_6543210]
// [4321098__________________]
((in[ 6 + inPos] & 33554431) >>> 18)
| // [7_______]
// [________________________0]
((in[ 7 + inPos] & 33554431) << 7)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________________87654321_]
((in[ 7 + inPos] & 33554431) >>> 1)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [________65432109_________]
((in[ 7 + inPos] & 33554431) >>> 9)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [43210987_________________]
((in[ 7 + inPos] & 33554431) >>> 17)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_________________76543210]
((in[ 0 + inPos] & 33554431))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_________54321098________]
((in[ 0 + inPos] & 33554431) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [_32109876________________]
((in[ 0 + inPos] & 33554431) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [_______0]
// [4________________________]
((in[ 0 + inPos] & 33554431) >>> 24)
| // [7654321_]
// [__________________6543210]
((in[ 1 + inPos] & 33554431) << 1)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__________43210987_______]
((in[ 1 + inPos] & 33554431) >>> 7)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [__21098765_______________]
((in[ 1 + inPos] & 33554431) >>> 15)) & 255);
out[ 6 + outPos] = (byte)((
// [______10]
// [43_______________________]
((in[ 1 + inPos] & 33554431) >>> 23)
| // [765432__]
// [___________________543210]
((in[ 2 + inPos] & 33554431) << 2)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [___________32109876______]
((in[ 2 + inPos] & 33554431) >>> 6)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [___10987654______________]
((in[ 2 + inPos] & 33554431) >>> 14)) & 255);
out[ 9 + outPos] = (byte)((
// [_____210]
// [432______________________]
((in[ 2 + inPos] & 33554431) >>> 22)
| // [76543___]
// [____________________43210]
((in[ 3 + inPos] & 33554431) << 3)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [____________21098765_____]
((in[ 3 + inPos] & 33554431) >>> 5)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____09876543_____________]
((in[ 3 + inPos] & 33554431) >>> 13)) & 255);
out[12 + outPos] = (byte)((
// [____3210]
// [4321_____________________]
((in[ 3 + inPos] & 33554431) >>> 21)
| // [7654____]
// [_____________________3210]
((in[ 4 + inPos] & 33554431) << 4)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [_____________10987654____]
((in[ 4 + inPos] & 33554431) >>> 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [_____98765432____________]
((in[ 4 + inPos] & 33554431) >>> 12)) & 255);
out[15 + outPos] = (byte)((
// [___43210]
// [43210____________________]
((in[ 4 + inPos] & 33554431) >>> 20)
| // [765_____]
// [______________________210]
((in[ 5 + inPos] & 33554431) << 5)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [______________09876543___]
((in[ 5 + inPos] & 33554431) >>> 3)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [______87654321___________]
((in[ 5 + inPos] & 33554431) >>> 11)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [432109___________________]
((in[ 5 + inPos] & 33554431) >>> 19)
| // [76______]
// [_______________________10]
((in[ 6 + inPos] & 33554431) << 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [_______________98765432__]
((in[ 6 + inPos] & 33554431) >>> 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [_______76543210__________]
((in[ 6 + inPos] & 33554431) >>> 10)) & 255);
out[21 + outPos] = (byte)((
// [_6543210]
// [4321098__________________]
((in[ 6 + inPos] & 33554431) >>> 18)
| // [7_______]
// [________________________0]
((in[ 7 + inPos] & 33554431) << 7)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________________87654321_]
((in[ 7 + inPos] & 33554431) >>> 1)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [________65432109_________]
((in[ 7 + inPos] & 33554431) >>> 9)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [43210987_________________]
((in[ 7 + inPos] & 33554431) >>> 17)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [_________________76543210]
((in[ 8 + inPos] & 33554431))) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [_________54321098________]
((in[ 8 + inPos] & 33554431) >>> 8)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [_32109876________________]
((in[ 8 + inPos] & 33554431) >>> 16)) & 255);
out[28 + outPos] = (byte)((
// [_______0]
// [4________________________]
((in[ 8 + inPos] & 33554431) >>> 24)
| // [7654321_]
// [__________________6543210]
((in[ 9 + inPos] & 33554431) << 1)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [__________43210987_______]
((in[ 9 + inPos] & 33554431) >>> 7)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [__21098765_______________]
((in[ 9 + inPos] & 33554431) >>> 15)) & 255);
out[31 + outPos] = (byte)((
// [______10]
// [43_______________________]
((in[ 9 + inPos] & 33554431) >>> 23)
| // [765432__]
// [___________________543210]
((in[10 + inPos] & 33554431) << 2)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [___________32109876______]
((in[10 + inPos] & 33554431) >>> 6)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [___10987654______________]
((in[10 + inPos] & 33554431) >>> 14)) & 255);
out[34 + outPos] = (byte)((
// [_____210]
// [432______________________]
((in[10 + inPos] & 33554431) >>> 22)
| // [76543___]
// [____________________43210]
((in[11 + inPos] & 33554431) << 3)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [____________21098765_____]
((in[11 + inPos] & 33554431) >>> 5)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____09876543_____________]
((in[11 + inPos] & 33554431) >>> 13)) & 255);
out[37 + outPos] = (byte)((
// [____3210]
// [4321_____________________]
((in[11 + inPos] & 33554431) >>> 21)
| // [7654____]
// [_____________________3210]
((in[12 + inPos] & 33554431) << 4)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [_____________10987654____]
((in[12 + inPos] & 33554431) >>> 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [_____98765432____________]
((in[12 + inPos] & 33554431) >>> 12)) & 255);
out[40 + outPos] = (byte)((
// [___43210]
// [43210____________________]
((in[12 + inPos] & 33554431) >>> 20)
| // [765_____]
// [______________________210]
((in[13 + inPos] & 33554431) << 5)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [______________09876543___]
((in[13 + inPos] & 33554431) >>> 3)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [______87654321___________]
((in[13 + inPos] & 33554431) >>> 11)) & 255);
out[43 + outPos] = (byte)((
// [__543210]
// [432109___________________]
((in[13 + inPos] & 33554431) >>> 19)
| // [76______]
// [_______________________10]
((in[14 + inPos] & 33554431) << 6)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [_______________98765432__]
((in[14 + inPos] & 33554431) >>> 2)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [_______76543210__________]
((in[14 + inPos] & 33554431) >>> 10)) & 255);
out[46 + outPos] = (byte)((
// [_6543210]
// [4321098__________________]
((in[14 + inPos] & 33554431) >>> 18)
| // [7_______]
// [________________________0]
((in[15 + inPos] & 33554431) << 7)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [________________87654321_]
((in[15 + inPos] & 33554431) >>> 1)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [________65432109_________]
((in[15 + inPos] & 33554431) >>> 9)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [43210987_________________]
((in[15 + inPos] & 33554431) >>> 17)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [_________________76543210]
((in[16 + inPos] & 33554431))) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [_________54321098________]
((in[16 + inPos] & 33554431) >>> 8)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [_32109876________________]
((in[16 + inPos] & 33554431) >>> 16)) & 255);
out[53 + outPos] = (byte)((
// [_______0]
// [4________________________]
((in[16 + inPos] & 33554431) >>> 24)
| // [7654321_]
// [__________________6543210]
((in[17 + inPos] & 33554431) << 1)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [__________43210987_______]
((in[17 + inPos] & 33554431) >>> 7)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [__21098765_______________]
((in[17 + inPos] & 33554431) >>> 15)) & 255);
out[56 + outPos] = (byte)((
// [______10]
// [43_______________________]
((in[17 + inPos] & 33554431) >>> 23)
| // [765432__]
// [___________________543210]
((in[18 + inPos] & 33554431) << 2)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [___________32109876______]
((in[18 + inPos] & 33554431) >>> 6)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [___10987654______________]
((in[18 + inPos] & 33554431) >>> 14)) & 255);
out[59 + outPos] = (byte)((
// [_____210]
// [432______________________]
((in[18 + inPos] & 33554431) >>> 22)
| // [76543___]
// [____________________43210]
((in[19 + inPos] & 33554431) << 3)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [____________21098765_____]
((in[19 + inPos] & 33554431) >>> 5)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [____09876543_____________]
((in[19 + inPos] & 33554431) >>> 13)) & 255);
out[62 + outPos] = (byte)((
// [____3210]
// [4321_____________________]
((in[19 + inPos] & 33554431) >>> 21)
| // [7654____]
// [_____________________3210]
((in[20 + inPos] & 33554431) << 4)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [_____________10987654____]
((in[20 + inPos] & 33554431) >>> 4)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [_____98765432____________]
((in[20 + inPos] & 33554431) >>> 12)) & 255);
out[65 + outPos] = (byte)((
// [___43210]
// [43210____________________]
((in[20 + inPos] & 33554431) >>> 20)
| // [765_____]
// [______________________210]
((in[21 + inPos] & 33554431) << 5)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [______________09876543___]
((in[21 + inPos] & 33554431) >>> 3)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [______87654321___________]
((in[21 + inPos] & 33554431) >>> 11)) & 255);
out[68 + outPos] = (byte)((
// [__543210]
// [432109___________________]
((in[21 + inPos] & 33554431) >>> 19)
| // [76______]
// [_______________________10]
((in[22 + inPos] & 33554431) << 6)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [_______________98765432__]
((in[22 + inPos] & 33554431) >>> 2)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [_______76543210__________]
((in[22 + inPos] & 33554431) >>> 10)) & 255);
out[71 + outPos] = (byte)((
// [_6543210]
// [4321098__________________]
((in[22 + inPos] & 33554431) >>> 18)
| // [7_______]
// [________________________0]
((in[23 + inPos] & 33554431) << 7)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [________________87654321_]
((in[23 + inPos] & 33554431) >>> 1)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [________65432109_________]
((in[23 + inPos] & 33554431) >>> 9)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [43210987_________________]
((in[23 + inPos] & 33554431) >>> 17)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [_________________76543210]
((in[24 + inPos] & 33554431))) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [_________54321098________]
((in[24 + inPos] & 33554431) >>> 8)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [_32109876________________]
((in[24 + inPos] & 33554431) >>> 16)) & 255);
out[78 + outPos] = (byte)((
// [_______0]
// [4________________________]
((in[24 + inPos] & 33554431) >>> 24)
| // [7654321_]
// [__________________6543210]
((in[25 + inPos] & 33554431) << 1)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [__________43210987_______]
((in[25 + inPos] & 33554431) >>> 7)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [__21098765_______________]
((in[25 + inPos] & 33554431) >>> 15)) & 255);
out[81 + outPos] = (byte)((
// [______10]
// [43_______________________]
((in[25 + inPos] & 33554431) >>> 23)
| // [765432__]
// [___________________543210]
((in[26 + inPos] & 33554431) << 2)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [___________32109876______]
((in[26 + inPos] & 33554431) >>> 6)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [___10987654______________]
((in[26 + inPos] & 33554431) >>> 14)) & 255);
out[84 + outPos] = (byte)((
// [_____210]
// [432______________________]
((in[26 + inPos] & 33554431) >>> 22)
| // [76543___]
// [____________________43210]
((in[27 + inPos] & 33554431) << 3)) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [____________21098765_____]
((in[27 + inPos] & 33554431) >>> 5)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [____09876543_____________]
((in[27 + inPos] & 33554431) >>> 13)) & 255);
out[87 + outPos] = (byte)((
// [____3210]
// [4321_____________________]
((in[27 + inPos] & 33554431) >>> 21)
| // [7654____]
// [_____________________3210]
((in[28 + inPos] & 33554431) << 4)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [_____________10987654____]
((in[28 + inPos] & 33554431) >>> 4)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [_____98765432____________]
((in[28 + inPos] & 33554431) >>> 12)) & 255);
out[90 + outPos] = (byte)((
// [___43210]
// [43210____________________]
((in[28 + inPos] & 33554431) >>> 20)
| // [765_____]
// [______________________210]
((in[29 + inPos] & 33554431) << 5)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [______________09876543___]
((in[29 + inPos] & 33554431) >>> 3)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [______87654321___________]
((in[29 + inPos] & 33554431) >>> 11)) & 255);
out[93 + outPos] = (byte)((
// [__543210]
// [432109___________________]
((in[29 + inPos] & 33554431) >>> 19)
| // [76______]
// [_______________________10]
((in[30 + inPos] & 33554431) << 6)) & 255);
out[94 + outPos] = (byte)((
// [76543210]
// [_______________98765432__]
((in[30 + inPos] & 33554431) >>> 2)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [_______76543210__________]
((in[30 + inPos] & 33554431) >>> 10)) & 255);
out[96 + outPos] = (byte)((
// [_6543210]
// [4321098__________________]
((in[30 + inPos] & 33554431) >>> 18)
| // [7_______]
// [________________________0]
((in[31 + inPos] & 33554431) << 7)) & 255);
out[97 + outPos] = (byte)((
// [76543210]
// [________________87654321_]
((in[31 + inPos] & 33554431) >>> 1)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [________65432109_________]
((in[31 + inPos] & 33554431) >>> 9)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [43210987_________________]
((in[31 + inPos] & 33554431) >>> 17)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in[ 3 + inPos]) << 24) & 33554431);
out[ 1 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in[ 3 + inPos]) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in[ 4 + inPos]) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in[ 5 + inPos]) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in[ 6 + inPos]) << 23) & 33554431);
out[ 2 + outPos] =
// [765432__]
// [___________________543210]
((((int)in[ 6 + inPos]) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in[ 7 + inPos]) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in[ 8 + inPos]) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in[ 9 + inPos]) << 22) & 33554431);
out[ 3 + outPos] =
// [76543___]
// [____________________43210]
((((int)in[ 9 + inPos]) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in[10 + inPos]) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in[11 + inPos]) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in[12 + inPos]) << 21) & 33554431);
out[ 4 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in[12 + inPos]) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in[13 + inPos]) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in[14 + inPos]) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in[15 + inPos]) << 20) & 33554431);
out[ 5 + outPos] =
// [765_____]
// [______________________210]
((((int)in[15 + inPos]) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in[16 + inPos]) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in[17 + inPos]) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in[18 + inPos]) << 19) & 33554431);
out[ 6 + outPos] =
// [76______]
// [_______________________10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in[19 + inPos]) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in[20 + inPos]) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in[21 + inPos]) << 18) & 33554431);
out[ 7 + outPos] =
// [7_______]
// [________________________0]
((((int)in[21 + inPos]) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in[22 + inPos]) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in[23 + inPos]) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in[24 + inPos]) << 17) & 33554431);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in.get( 3 + inPos)) << 24) & 33554431);
out[ 1 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in.get( 3 + inPos)) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in.get( 4 + inPos)) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in.get( 5 + inPos)) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in.get( 6 + inPos)) << 23) & 33554431);
out[ 2 + outPos] =
// [765432__]
// [___________________543210]
((((int)in.get( 6 + inPos)) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in.get( 7 + inPos)) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in.get( 8 + inPos)) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in.get( 9 + inPos)) << 22) & 33554431);
out[ 3 + outPos] =
// [76543___]
// [____________________43210]
((((int)in.get( 9 + inPos)) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in.get(10 + inPos)) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in.get(11 + inPos)) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in.get(12 + inPos)) << 21) & 33554431);
out[ 4 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in.get(12 + inPos)) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in.get(13 + inPos)) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in.get(14 + inPos)) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in.get(15 + inPos)) << 20) & 33554431);
out[ 5 + outPos] =
// [765_____]
// [______________________210]
((((int)in.get(15 + inPos)) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in.get(16 + inPos)) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in.get(17 + inPos)) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in.get(18 + inPos)) << 19) & 33554431);
out[ 6 + outPos] =
// [76______]
// [_______________________10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in.get(19 + inPos)) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in.get(20 + inPos)) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in.get(21 + inPos)) << 18) & 33554431);
out[ 7 + outPos] =
// [7_______]
// [________________________0]
((((int)in.get(21 + inPos)) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in.get(22 + inPos)) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in.get(23 + inPos)) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in.get(24 + inPos)) << 17) & 33554431);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in[ 3 + inPos]) << 24) & 33554431);
out[ 1 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in[ 3 + inPos]) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in[ 4 + inPos]) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in[ 5 + inPos]) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in[ 6 + inPos]) << 23) & 33554431);
out[ 2 + outPos] =
// [765432__]
// [___________________543210]
((((int)in[ 6 + inPos]) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in[ 7 + inPos]) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in[ 8 + inPos]) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in[ 9 + inPos]) << 22) & 33554431);
out[ 3 + outPos] =
// [76543___]
// [____________________43210]
((((int)in[ 9 + inPos]) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in[10 + inPos]) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in[11 + inPos]) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in[12 + inPos]) << 21) & 33554431);
out[ 4 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in[12 + inPos]) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in[13 + inPos]) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in[14 + inPos]) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in[15 + inPos]) << 20) & 33554431);
out[ 5 + outPos] =
// [765_____]
// [______________________210]
((((int)in[15 + inPos]) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in[16 + inPos]) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in[17 + inPos]) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in[18 + inPos]) << 19) & 33554431);
out[ 6 + outPos] =
// [76______]
// [_______________________10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in[19 + inPos]) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in[20 + inPos]) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in[21 + inPos]) << 18) & 33554431);
out[ 7 + outPos] =
// [7_______]
// [________________________0]
((((int)in[21 + inPos]) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in[22 + inPos]) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in[23 + inPos]) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in[24 + inPos]) << 17) & 33554431);
out[ 8 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in[25 + inPos]) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in[26 + inPos]) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in[27 + inPos]) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in[28 + inPos]) << 24) & 33554431);
out[ 9 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in[28 + inPos]) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in[29 + inPos]) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in[30 + inPos]) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in[31 + inPos]) << 23) & 33554431);
out[10 + outPos] =
// [765432__]
// [___________________543210]
((((int)in[31 + inPos]) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in[32 + inPos]) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in[33 + inPos]) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in[34 + inPos]) << 22) & 33554431);
out[11 + outPos] =
// [76543___]
// [____________________43210]
((((int)in[34 + inPos]) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in[35 + inPos]) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in[36 + inPos]) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in[37 + inPos]) << 21) & 33554431);
out[12 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in[37 + inPos]) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in[38 + inPos]) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in[39 + inPos]) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in[40 + inPos]) << 20) & 33554431);
out[13 + outPos] =
// [765_____]
// [______________________210]
((((int)in[40 + inPos]) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in[41 + inPos]) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in[42 + inPos]) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in[43 + inPos]) << 19) & 33554431);
out[14 + outPos] =
// [76______]
// [_______________________10]
((((int)in[43 + inPos]) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in[44 + inPos]) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in[45 + inPos]) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in[46 + inPos]) << 18) & 33554431);
out[15 + outPos] =
// [7_______]
// [________________________0]
((((int)in[46 + inPos]) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in[47 + inPos]) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in[48 + inPos]) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in[49 + inPos]) << 17) & 33554431);
out[16 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in[50 + inPos]) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in[51 + inPos]) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in[52 + inPos]) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in[53 + inPos]) << 24) & 33554431);
out[17 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in[53 + inPos]) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in[54 + inPos]) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in[55 + inPos]) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in[56 + inPos]) << 23) & 33554431);
out[18 + outPos] =
// [765432__]
// [___________________543210]
((((int)in[56 + inPos]) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in[57 + inPos]) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in[58 + inPos]) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in[59 + inPos]) << 22) & 33554431);
out[19 + outPos] =
// [76543___]
// [____________________43210]
((((int)in[59 + inPos]) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in[60 + inPos]) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in[61 + inPos]) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in[62 + inPos]) << 21) & 33554431);
out[20 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in[62 + inPos]) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in[63 + inPos]) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in[64 + inPos]) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in[65 + inPos]) << 20) & 33554431);
out[21 + outPos] =
// [765_____]
// [______________________210]
((((int)in[65 + inPos]) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in[66 + inPos]) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in[67 + inPos]) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in[68 + inPos]) << 19) & 33554431);
out[22 + outPos] =
// [76______]
// [_______________________10]
((((int)in[68 + inPos]) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in[69 + inPos]) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in[70 + inPos]) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in[71 + inPos]) << 18) & 33554431);
out[23 + outPos] =
// [7_______]
// [________________________0]
((((int)in[71 + inPos]) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in[72 + inPos]) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in[73 + inPos]) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in[74 + inPos]) << 17) & 33554431);
out[24 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in[75 + inPos]) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in[76 + inPos]) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in[77 + inPos]) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in[78 + inPos]) << 24) & 33554431);
out[25 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in[78 + inPos]) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in[79 + inPos]) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in[80 + inPos]) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in[81 + inPos]) << 23) & 33554431);
out[26 + outPos] =
// [765432__]
// [___________________543210]
((((int)in[81 + inPos]) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in[82 + inPos]) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in[83 + inPos]) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in[84 + inPos]) << 22) & 33554431);
out[27 + outPos] =
// [76543___]
// [____________________43210]
((((int)in[84 + inPos]) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in[85 + inPos]) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in[86 + inPos]) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in[87 + inPos]) << 21) & 33554431);
out[28 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in[87 + inPos]) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in[88 + inPos]) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in[89 + inPos]) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in[90 + inPos]) << 20) & 33554431);
out[29 + outPos] =
// [765_____]
// [______________________210]
((((int)in[90 + inPos]) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in[91 + inPos]) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in[92 + inPos]) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in[93 + inPos]) << 19) & 33554431);
out[30 + outPos] =
// [76______]
// [_______________________10]
((((int)in[93 + inPos]) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in[94 + inPos]) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in[95 + inPos]) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in[96 + inPos]) << 18) & 33554431);
out[31 + outPos] =
// [7_______]
// [________________________0]
((((int)in[96 + inPos]) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in[97 + inPos]) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in[98 + inPos]) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in[99 + inPos]) << 17) & 33554431);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in.get( 3 + inPos)) << 24) & 33554431);
out[ 1 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in.get( 3 + inPos)) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in.get( 4 + inPos)) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in.get( 5 + inPos)) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in.get( 6 + inPos)) << 23) & 33554431);
out[ 2 + outPos] =
// [765432__]
// [___________________543210]
((((int)in.get( 6 + inPos)) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in.get( 7 + inPos)) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in.get( 8 + inPos)) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in.get( 9 + inPos)) << 22) & 33554431);
out[ 3 + outPos] =
// [76543___]
// [____________________43210]
((((int)in.get( 9 + inPos)) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in.get(10 + inPos)) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in.get(11 + inPos)) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in.get(12 + inPos)) << 21) & 33554431);
out[ 4 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in.get(12 + inPos)) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in.get(13 + inPos)) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in.get(14 + inPos)) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in.get(15 + inPos)) << 20) & 33554431);
out[ 5 + outPos] =
// [765_____]
// [______________________210]
((((int)in.get(15 + inPos)) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in.get(16 + inPos)) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in.get(17 + inPos)) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in.get(18 + inPos)) << 19) & 33554431);
out[ 6 + outPos] =
// [76______]
// [_______________________10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in.get(19 + inPos)) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in.get(20 + inPos)) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in.get(21 + inPos)) << 18) & 33554431);
out[ 7 + outPos] =
// [7_______]
// [________________________0]
((((int)in.get(21 + inPos)) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in.get(22 + inPos)) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in.get(23 + inPos)) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in.get(24 + inPos)) << 17) & 33554431);
out[ 8 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in.get(25 + inPos)) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in.get(26 + inPos)) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in.get(27 + inPos)) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in.get(28 + inPos)) << 24) & 33554431);
out[ 9 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in.get(28 + inPos)) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in.get(29 + inPos)) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in.get(30 + inPos)) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in.get(31 + inPos)) << 23) & 33554431);
out[10 + outPos] =
// [765432__]
// [___________________543210]
((((int)in.get(31 + inPos)) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in.get(32 + inPos)) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in.get(33 + inPos)) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in.get(34 + inPos)) << 22) & 33554431);
out[11 + outPos] =
// [76543___]
// [____________________43210]
((((int)in.get(34 + inPos)) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in.get(35 + inPos)) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in.get(36 + inPos)) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in.get(37 + inPos)) << 21) & 33554431);
out[12 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in.get(37 + inPos)) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in.get(38 + inPos)) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in.get(39 + inPos)) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in.get(40 + inPos)) << 20) & 33554431);
out[13 + outPos] =
// [765_____]
// [______________________210]
((((int)in.get(40 + inPos)) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in.get(41 + inPos)) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in.get(42 + inPos)) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in.get(43 + inPos)) << 19) & 33554431);
out[14 + outPos] =
// [76______]
// [_______________________10]
((((int)in.get(43 + inPos)) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in.get(44 + inPos)) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in.get(45 + inPos)) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in.get(46 + inPos)) << 18) & 33554431);
out[15 + outPos] =
// [7_______]
// [________________________0]
((((int)in.get(46 + inPos)) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in.get(47 + inPos)) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in.get(48 + inPos)) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in.get(49 + inPos)) << 17) & 33554431);
out[16 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in.get(50 + inPos)) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in.get(51 + inPos)) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in.get(52 + inPos)) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in.get(53 + inPos)) << 24) & 33554431);
out[17 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in.get(53 + inPos)) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in.get(54 + inPos)) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in.get(55 + inPos)) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in.get(56 + inPos)) << 23) & 33554431);
out[18 + outPos] =
// [765432__]
// [___________________543210]
((((int)in.get(56 + inPos)) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in.get(57 + inPos)) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in.get(58 + inPos)) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in.get(59 + inPos)) << 22) & 33554431);
out[19 + outPos] =
// [76543___]
// [____________________43210]
((((int)in.get(59 + inPos)) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in.get(60 + inPos)) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in.get(61 + inPos)) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in.get(62 + inPos)) << 21) & 33554431);
out[20 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in.get(62 + inPos)) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in.get(63 + inPos)) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in.get(64 + inPos)) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in.get(65 + inPos)) << 20) & 33554431);
out[21 + outPos] =
// [765_____]
// [______________________210]
((((int)in.get(65 + inPos)) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in.get(66 + inPos)) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in.get(67 + inPos)) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in.get(68 + inPos)) << 19) & 33554431);
out[22 + outPos] =
// [76______]
// [_______________________10]
((((int)in.get(68 + inPos)) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in.get(69 + inPos)) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in.get(70 + inPos)) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in.get(71 + inPos)) << 18) & 33554431);
out[23 + outPos] =
// [7_______]
// [________________________0]
((((int)in.get(71 + inPos)) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in.get(72 + inPos)) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in.get(73 + inPos)) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in.get(74 + inPos)) << 17) & 33554431);
out[24 + outPos] =
// [76543210]
// [_________________76543210]
((((int)in.get(75 + inPos)) ) & 255)
| // [76543210]
// [_________54321098________]
((((int)in.get(76 + inPos)) << 8) & 65535)
| // [76543210]
// [_32109876________________]
((((int)in.get(77 + inPos)) << 16) & 16777215)
| // [_______0]
// [4________________________]
((((int)in.get(78 + inPos)) << 24) & 33554431);
out[25 + outPos] =
// [7654321_]
// [__________________6543210]
((((int)in.get(78 + inPos)) >> 1) & 127)
| // [76543210]
// [__________43210987_______]
((((int)in.get(79 + inPos)) << 7) & 32767)
| // [76543210]
// [__21098765_______________]
((((int)in.get(80 + inPos)) << 15) & 8388607)
| // [______10]
// [43_______________________]
((((int)in.get(81 + inPos)) << 23) & 33554431);
out[26 + outPos] =
// [765432__]
// [___________________543210]
((((int)in.get(81 + inPos)) >> 2) & 63)
| // [76543210]
// [___________32109876______]
((((int)in.get(82 + inPos)) << 6) & 16383)
| // [76543210]
// [___10987654______________]
((((int)in.get(83 + inPos)) << 14) & 4194303)
| // [_____210]
// [432______________________]
((((int)in.get(84 + inPos)) << 22) & 33554431);
out[27 + outPos] =
// [76543___]
// [____________________43210]
((((int)in.get(84 + inPos)) >> 3) & 31)
| // [76543210]
// [____________21098765_____]
((((int)in.get(85 + inPos)) << 5) & 8191)
| // [76543210]
// [____09876543_____________]
((((int)in.get(86 + inPos)) << 13) & 2097151)
| // [____3210]
// [4321_____________________]
((((int)in.get(87 + inPos)) << 21) & 33554431);
out[28 + outPos] =
// [7654____]
// [_____________________3210]
((((int)in.get(87 + inPos)) >> 4) & 15)
| // [76543210]
// [_____________10987654____]
((((int)in.get(88 + inPos)) << 4) & 4095)
| // [76543210]
// [_____98765432____________]
((((int)in.get(89 + inPos)) << 12) & 1048575)
| // [___43210]
// [43210____________________]
((((int)in.get(90 + inPos)) << 20) & 33554431);
out[29 + outPos] =
// [765_____]
// [______________________210]
((((int)in.get(90 + inPos)) >> 5) & 7)
| // [76543210]
// [______________09876543___]
((((int)in.get(91 + inPos)) << 3) & 2047)
| // [76543210]
// [______87654321___________]
((((int)in.get(92 + inPos)) << 11) & 524287)
| // [__543210]
// [432109___________________]
((((int)in.get(93 + inPos)) << 19) & 33554431);
out[30 + outPos] =
// [76______]
// [_______________________10]
((((int)in.get(93 + inPos)) >> 6) & 3)
| // [76543210]
// [_______________98765432__]
((((int)in.get(94 + inPos)) << 2) & 1023)
| // [76543210]
// [_______76543210__________]
((((int)in.get(95 + inPos)) << 10) & 262143)
| // [_6543210]
// [4321098__________________]
((((int)in.get(96 + inPos)) << 18) & 33554431);
out[31 + outPos] =
// [7_______]
// [________________________0]
((((int)in.get(96 + inPos)) >> 7) & 1)
| // [76543210]
// [________________87654321_]
((((int)in.get(97 + inPos)) << 1) & 511)
| // [76543210]
// [________65432109_________]
((((int)in.get(98 + inPos)) << 9) & 131071)
| // [76543210]
// [43210987_________________]
((((int)in.get(99 + inPos)) << 17) & 33554431);
}
}
private static final class Packer26 extends BytePacker {
private Packer26() {
super(26);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[ 0 + inPos] & 67108863))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[ 0 + inPos] & 67108863) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[ 0 + inPos] & 67108863) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[ 0 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[ 1 + inPos] & 67108863) << 2)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[ 1 + inPos] & 67108863) >>> 6)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[ 1 + inPos] & 67108863) >>> 14)) & 255);
out[ 6 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[ 1 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[ 2 + inPos] & 67108863) << 4)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[ 2 + inPos] & 67108863) >>> 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[ 2 + inPos] & 67108863) >>> 12)) & 255);
out[ 9 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[ 2 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[ 3 + inPos] & 67108863) << 6)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[ 3 + inPos] & 67108863) >>> 2)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[ 3 + inPos] & 67108863) >>> 10)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[ 3 + inPos] & 67108863) >>> 18)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[ 4 + inPos] & 67108863))) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[ 4 + inPos] & 67108863) >>> 8)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[ 4 + inPos] & 67108863) >>> 16)) & 255);
out[16 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[ 4 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[ 5 + inPos] & 67108863) << 2)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[ 5 + inPos] & 67108863) >>> 6)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[ 5 + inPos] & 67108863) >>> 14)) & 255);
out[19 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[ 5 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[ 6 + inPos] & 67108863) << 4)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[ 6 + inPos] & 67108863) >>> 4)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[ 6 + inPos] & 67108863) >>> 12)) & 255);
out[22 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[ 6 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[ 7 + inPos] & 67108863) << 6)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[ 7 + inPos] & 67108863) >>> 2)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[ 7 + inPos] & 67108863) >>> 10)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[ 7 + inPos] & 67108863) >>> 18)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[ 0 + inPos] & 67108863))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[ 0 + inPos] & 67108863) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[ 0 + inPos] & 67108863) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[ 0 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[ 1 + inPos] & 67108863) << 2)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[ 1 + inPos] & 67108863) >>> 6)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[ 1 + inPos] & 67108863) >>> 14)) & 255);
out[ 6 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[ 1 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[ 2 + inPos] & 67108863) << 4)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[ 2 + inPos] & 67108863) >>> 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[ 2 + inPos] & 67108863) >>> 12)) & 255);
out[ 9 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[ 2 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[ 3 + inPos] & 67108863) << 6)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[ 3 + inPos] & 67108863) >>> 2)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[ 3 + inPos] & 67108863) >>> 10)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[ 3 + inPos] & 67108863) >>> 18)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[ 4 + inPos] & 67108863))) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[ 4 + inPos] & 67108863) >>> 8)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[ 4 + inPos] & 67108863) >>> 16)) & 255);
out[16 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[ 4 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[ 5 + inPos] & 67108863) << 2)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[ 5 + inPos] & 67108863) >>> 6)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[ 5 + inPos] & 67108863) >>> 14)) & 255);
out[19 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[ 5 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[ 6 + inPos] & 67108863) << 4)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[ 6 + inPos] & 67108863) >>> 4)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[ 6 + inPos] & 67108863) >>> 12)) & 255);
out[22 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[ 6 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[ 7 + inPos] & 67108863) << 6)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[ 7 + inPos] & 67108863) >>> 2)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[ 7 + inPos] & 67108863) >>> 10)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[ 7 + inPos] & 67108863) >>> 18)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[ 8 + inPos] & 67108863))) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[ 8 + inPos] & 67108863) >>> 8)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[ 8 + inPos] & 67108863) >>> 16)) & 255);
out[29 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[ 8 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[ 9 + inPos] & 67108863) << 2)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[ 9 + inPos] & 67108863) >>> 6)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[ 9 + inPos] & 67108863) >>> 14)) & 255);
out[32 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[ 9 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[10 + inPos] & 67108863) << 4)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[10 + inPos] & 67108863) >>> 4)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[10 + inPos] & 67108863) >>> 12)) & 255);
out[35 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[10 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[11 + inPos] & 67108863) << 6)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[11 + inPos] & 67108863) >>> 2)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[11 + inPos] & 67108863) >>> 10)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[11 + inPos] & 67108863) >>> 18)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[12 + inPos] & 67108863))) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[12 + inPos] & 67108863) >>> 8)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[12 + inPos] & 67108863) >>> 16)) & 255);
out[42 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[12 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[13 + inPos] & 67108863) << 2)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[13 + inPos] & 67108863) >>> 6)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[13 + inPos] & 67108863) >>> 14)) & 255);
out[45 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[13 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[14 + inPos] & 67108863) << 4)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[14 + inPos] & 67108863) >>> 4)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[14 + inPos] & 67108863) >>> 12)) & 255);
out[48 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[14 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[15 + inPos] & 67108863) << 6)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[15 + inPos] & 67108863) >>> 2)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[15 + inPos] & 67108863) >>> 10)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[15 + inPos] & 67108863) >>> 18)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[16 + inPos] & 67108863))) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[16 + inPos] & 67108863) >>> 8)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[16 + inPos] & 67108863) >>> 16)) & 255);
out[55 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[16 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[17 + inPos] & 67108863) << 2)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[17 + inPos] & 67108863) >>> 6)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[17 + inPos] & 67108863) >>> 14)) & 255);
out[58 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[17 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[18 + inPos] & 67108863) << 4)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[18 + inPos] & 67108863) >>> 4)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[18 + inPos] & 67108863) >>> 12)) & 255);
out[61 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[18 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[19 + inPos] & 67108863) << 6)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[19 + inPos] & 67108863) >>> 2)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[19 + inPos] & 67108863) >>> 10)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[19 + inPos] & 67108863) >>> 18)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[20 + inPos] & 67108863))) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[20 + inPos] & 67108863) >>> 8)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[20 + inPos] & 67108863) >>> 16)) & 255);
out[68 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[20 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[21 + inPos] & 67108863) << 2)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[21 + inPos] & 67108863) >>> 6)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[21 + inPos] & 67108863) >>> 14)) & 255);
out[71 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[21 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[22 + inPos] & 67108863) << 4)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[22 + inPos] & 67108863) >>> 4)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[22 + inPos] & 67108863) >>> 12)) & 255);
out[74 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[22 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[23 + inPos] & 67108863) << 6)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[23 + inPos] & 67108863) >>> 2)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[23 + inPos] & 67108863) >>> 10)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[23 + inPos] & 67108863) >>> 18)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[24 + inPos] & 67108863))) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[24 + inPos] & 67108863) >>> 8)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[24 + inPos] & 67108863) >>> 16)) & 255);
out[81 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[24 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[25 + inPos] & 67108863) << 2)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[25 + inPos] & 67108863) >>> 6)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[25 + inPos] & 67108863) >>> 14)) & 255);
out[84 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[25 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[26 + inPos] & 67108863) << 4)) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[26 + inPos] & 67108863) >>> 4)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[26 + inPos] & 67108863) >>> 12)) & 255);
out[87 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[26 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[27 + inPos] & 67108863) << 6)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[27 + inPos] & 67108863) >>> 2)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[27 + inPos] & 67108863) >>> 10)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[27 + inPos] & 67108863) >>> 18)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [__________________76543210]
((in[28 + inPos] & 67108863))) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [__________54321098________]
((in[28 + inPos] & 67108863) >>> 8)) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [__32109876________________]
((in[28 + inPos] & 67108863) >>> 16)) & 255);
out[94 + outPos] = (byte)((
// [______10]
// [54________________________]
((in[28 + inPos] & 67108863) >>> 24)
| // [765432__]
// [____________________543210]
((in[29 + inPos] & 67108863) << 2)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [____________32109876______]
((in[29 + inPos] & 67108863) >>> 6)) & 255);
out[96 + outPos] = (byte)((
// [76543210]
// [____10987654______________]
((in[29 + inPos] & 67108863) >>> 14)) & 255);
out[97 + outPos] = (byte)((
// [____3210]
// [5432______________________]
((in[29 + inPos] & 67108863) >>> 22)
| // [7654____]
// [______________________3210]
((in[30 + inPos] & 67108863) << 4)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [______________10987654____]
((in[30 + inPos] & 67108863) >>> 4)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [______98765432____________]
((in[30 + inPos] & 67108863) >>> 12)) & 255);
out[100 + outPos] = (byte)((
// [__543210]
// [543210____________________]
((in[30 + inPos] & 67108863) >>> 20)
| // [76______]
// [________________________10]
((in[31 + inPos] & 67108863) << 6)) & 255);
out[101 + outPos] = (byte)((
// [76543210]
// [________________98765432__]
((in[31 + inPos] & 67108863) >>> 2)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [________76543210__________]
((in[31 + inPos] & 67108863) >>> 10)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [54321098__________________]
((in[31 + inPos] & 67108863) >>> 18)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[ 3 + inPos]) << 24) & 67108863);
out[ 1 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[ 3 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[ 4 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[ 5 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[ 6 + inPos]) << 22) & 67108863);
out[ 2 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[ 6 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[ 7 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[ 8 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[ 9 + inPos]) << 20) & 67108863);
out[ 3 + outPos] =
// [76______]
// [________________________10]
((((int)in[ 9 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[10 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[11 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[12 + inPos]) << 18) & 67108863);
out[ 4 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[13 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[14 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[15 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[16 + inPos]) << 24) & 67108863);
out[ 5 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[16 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[17 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[18 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[19 + inPos]) << 22) & 67108863);
out[ 6 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[19 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[20 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[21 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[22 + inPos]) << 20) & 67108863);
out[ 7 + outPos] =
// [76______]
// [________________________10]
((((int)in[22 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[23 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[24 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[25 + inPos]) << 18) & 67108863);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get( 3 + inPos)) << 24) & 67108863);
out[ 1 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get( 3 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get( 4 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get( 5 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get( 6 + inPos)) << 22) & 67108863);
out[ 2 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get( 6 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get( 7 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get( 8 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get( 9 + inPos)) << 20) & 67108863);
out[ 3 + outPos] =
// [76______]
// [________________________10]
((((int)in.get( 9 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(10 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(11 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(12 + inPos)) << 18) & 67108863);
out[ 4 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(13 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(14 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(15 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(16 + inPos)) << 24) & 67108863);
out[ 5 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(16 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(17 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(18 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(19 + inPos)) << 22) & 67108863);
out[ 6 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(19 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(20 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(21 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(22 + inPos)) << 20) & 67108863);
out[ 7 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(22 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(23 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(24 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(25 + inPos)) << 18) & 67108863);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[ 3 + inPos]) << 24) & 67108863);
out[ 1 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[ 3 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[ 4 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[ 5 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[ 6 + inPos]) << 22) & 67108863);
out[ 2 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[ 6 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[ 7 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[ 8 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[ 9 + inPos]) << 20) & 67108863);
out[ 3 + outPos] =
// [76______]
// [________________________10]
((((int)in[ 9 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[10 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[11 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[12 + inPos]) << 18) & 67108863);
out[ 4 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[13 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[14 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[15 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[16 + inPos]) << 24) & 67108863);
out[ 5 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[16 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[17 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[18 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[19 + inPos]) << 22) & 67108863);
out[ 6 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[19 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[20 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[21 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[22 + inPos]) << 20) & 67108863);
out[ 7 + outPos] =
// [76______]
// [________________________10]
((((int)in[22 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[23 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[24 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[25 + inPos]) << 18) & 67108863);
out[ 8 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[26 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[27 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[28 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[29 + inPos]) << 24) & 67108863);
out[ 9 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[29 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[30 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[31 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[32 + inPos]) << 22) & 67108863);
out[10 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[32 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[33 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[34 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[35 + inPos]) << 20) & 67108863);
out[11 + outPos] =
// [76______]
// [________________________10]
((((int)in[35 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[36 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[37 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[38 + inPos]) << 18) & 67108863);
out[12 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[39 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[40 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[41 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[42 + inPos]) << 24) & 67108863);
out[13 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[42 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[43 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[44 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[45 + inPos]) << 22) & 67108863);
out[14 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[45 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[46 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[47 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[48 + inPos]) << 20) & 67108863);
out[15 + outPos] =
// [76______]
// [________________________10]
((((int)in[48 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[49 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[50 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[51 + inPos]) << 18) & 67108863);
out[16 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[52 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[53 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[54 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[55 + inPos]) << 24) & 67108863);
out[17 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[55 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[56 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[57 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[58 + inPos]) << 22) & 67108863);
out[18 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[58 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[59 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[60 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[61 + inPos]) << 20) & 67108863);
out[19 + outPos] =
// [76______]
// [________________________10]
((((int)in[61 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[62 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[63 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[64 + inPos]) << 18) & 67108863);
out[20 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[65 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[66 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[67 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[68 + inPos]) << 24) & 67108863);
out[21 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[68 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[69 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[70 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[71 + inPos]) << 22) & 67108863);
out[22 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[71 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[72 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[73 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[74 + inPos]) << 20) & 67108863);
out[23 + outPos] =
// [76______]
// [________________________10]
((((int)in[74 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[75 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[76 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[77 + inPos]) << 18) & 67108863);
out[24 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[78 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[79 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[80 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[81 + inPos]) << 24) & 67108863);
out[25 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[81 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[82 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[83 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[84 + inPos]) << 22) & 67108863);
out[26 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[84 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[85 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[86 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[87 + inPos]) << 20) & 67108863);
out[27 + outPos] =
// [76______]
// [________________________10]
((((int)in[87 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[88 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[89 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[90 + inPos]) << 18) & 67108863);
out[28 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in[91 + inPos]) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in[92 + inPos]) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in[93 + inPos]) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in[94 + inPos]) << 24) & 67108863);
out[29 + outPos] =
// [765432__]
// [____________________543210]
((((int)in[94 + inPos]) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in[95 + inPos]) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in[96 + inPos]) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in[97 + inPos]) << 22) & 67108863);
out[30 + outPos] =
// [7654____]
// [______________________3210]
((((int)in[97 + inPos]) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in[98 + inPos]) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in[99 + inPos]) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in[100 + inPos]) << 20) & 67108863);
out[31 + outPos] =
// [76______]
// [________________________10]
((((int)in[100 + inPos]) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in[101 + inPos]) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in[102 + inPos]) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in[103 + inPos]) << 18) & 67108863);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get( 3 + inPos)) << 24) & 67108863);
out[ 1 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get( 3 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get( 4 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get( 5 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get( 6 + inPos)) << 22) & 67108863);
out[ 2 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get( 6 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get( 7 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get( 8 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get( 9 + inPos)) << 20) & 67108863);
out[ 3 + outPos] =
// [76______]
// [________________________10]
((((int)in.get( 9 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(10 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(11 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(12 + inPos)) << 18) & 67108863);
out[ 4 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(13 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(14 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(15 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(16 + inPos)) << 24) & 67108863);
out[ 5 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(16 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(17 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(18 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(19 + inPos)) << 22) & 67108863);
out[ 6 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(19 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(20 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(21 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(22 + inPos)) << 20) & 67108863);
out[ 7 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(22 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(23 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(24 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(25 + inPos)) << 18) & 67108863);
out[ 8 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(26 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(27 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(28 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(29 + inPos)) << 24) & 67108863);
out[ 9 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(29 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(30 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(31 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(32 + inPos)) << 22) & 67108863);
out[10 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(32 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(33 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(34 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(35 + inPos)) << 20) & 67108863);
out[11 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(35 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(36 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(37 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(38 + inPos)) << 18) & 67108863);
out[12 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(39 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(40 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(41 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(42 + inPos)) << 24) & 67108863);
out[13 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(42 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(43 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(44 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(45 + inPos)) << 22) & 67108863);
out[14 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(45 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(46 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(47 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(48 + inPos)) << 20) & 67108863);
out[15 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(48 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(49 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(50 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(51 + inPos)) << 18) & 67108863);
out[16 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(52 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(53 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(54 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(55 + inPos)) << 24) & 67108863);
out[17 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(55 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(56 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(57 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(58 + inPos)) << 22) & 67108863);
out[18 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(58 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(59 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(60 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(61 + inPos)) << 20) & 67108863);
out[19 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(61 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(62 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(63 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(64 + inPos)) << 18) & 67108863);
out[20 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(65 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(66 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(67 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(68 + inPos)) << 24) & 67108863);
out[21 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(68 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(69 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(70 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(71 + inPos)) << 22) & 67108863);
out[22 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(71 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(72 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(73 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(74 + inPos)) << 20) & 67108863);
out[23 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(74 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(75 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(76 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(77 + inPos)) << 18) & 67108863);
out[24 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(78 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(79 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(80 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(81 + inPos)) << 24) & 67108863);
out[25 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(81 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(82 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(83 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(84 + inPos)) << 22) & 67108863);
out[26 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(84 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(85 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(86 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(87 + inPos)) << 20) & 67108863);
out[27 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(87 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(88 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(89 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(90 + inPos)) << 18) & 67108863);
out[28 + outPos] =
// [76543210]
// [__________________76543210]
((((int)in.get(91 + inPos)) ) & 255)
| // [76543210]
// [__________54321098________]
((((int)in.get(92 + inPos)) << 8) & 65535)
| // [76543210]
// [__32109876________________]
((((int)in.get(93 + inPos)) << 16) & 16777215)
| // [______10]
// [54________________________]
((((int)in.get(94 + inPos)) << 24) & 67108863);
out[29 + outPos] =
// [765432__]
// [____________________543210]
((((int)in.get(94 + inPos)) >> 2) & 63)
| // [76543210]
// [____________32109876______]
((((int)in.get(95 + inPos)) << 6) & 16383)
| // [76543210]
// [____10987654______________]
((((int)in.get(96 + inPos)) << 14) & 4194303)
| // [____3210]
// [5432______________________]
((((int)in.get(97 + inPos)) << 22) & 67108863);
out[30 + outPos] =
// [7654____]
// [______________________3210]
((((int)in.get(97 + inPos)) >> 4) & 15)
| // [76543210]
// [______________10987654____]
((((int)in.get(98 + inPos)) << 4) & 4095)
| // [76543210]
// [______98765432____________]
((((int)in.get(99 + inPos)) << 12) & 1048575)
| // [__543210]
// [543210____________________]
((((int)in.get(100 + inPos)) << 20) & 67108863);
out[31 + outPos] =
// [76______]
// [________________________10]
((((int)in.get(100 + inPos)) >> 6) & 3)
| // [76543210]
// [________________98765432__]
((((int)in.get(101 + inPos)) << 2) & 1023)
| // [76543210]
// [________76543210__________]
((((int)in.get(102 + inPos)) << 10) & 262143)
| // [76543210]
// [54321098__________________]
((((int)in.get(103 + inPos)) << 18) & 67108863);
}
}
private static final class Packer27 extends BytePacker {
private Packer27() {
super(27);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [___________________76543210]
((in[ 0 + inPos] & 134217727))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [___________54321098________]
((in[ 0 + inPos] & 134217727) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [___32109876________________]
((in[ 0 + inPos] & 134217727) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [_____210]
// [654________________________]
((in[ 0 + inPos] & 134217727) >>> 24)
| // [76543___]
// [______________________43210]
((in[ 1 + inPos] & 134217727) << 3)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [______________21098765_____]
((in[ 1 + inPos] & 134217727) >>> 5)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [______09876543_____________]
((in[ 1 + inPos] & 134217727) >>> 13)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [654321_____________________]
((in[ 1 + inPos] & 134217727) >>> 21)
| // [76______]
// [_________________________10]
((in[ 2 + inPos] & 134217727) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [_________________98765432__]
((in[ 2 + inPos] & 134217727) >>> 2)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [_________76543210__________]
((in[ 2 + inPos] & 134217727) >>> 10)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_54321098__________________]
((in[ 2 + inPos] & 134217727) >>> 18)) & 255);
out[10 + outPos] = (byte)((
// [_______0]
// [6__________________________]
((in[ 2 + inPos] & 134217727) >>> 26)
| // [7654321_]
// [____________________6543210]
((in[ 3 + inPos] & 134217727) << 1)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____________43210987_______]
((in[ 3 + inPos] & 134217727) >>> 7)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____21098765_______________]
((in[ 3 + inPos] & 134217727) >>> 15)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [6543_______________________]
((in[ 3 + inPos] & 134217727) >>> 23)
| // [7654____]
// [_______________________3210]
((in[ 4 + inPos] & 134217727) << 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [_______________10987654____]
((in[ 4 + inPos] & 134217727) >>> 4)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_______98765432____________]
((in[ 4 + inPos] & 134217727) >>> 12)) & 255);
out[16 + outPos] = (byte)((
// [_6543210]
// [6543210____________________]
((in[ 4 + inPos] & 134217727) >>> 20)
| // [7_______]
// [__________________________0]
((in[ 5 + inPos] & 134217727) << 7)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [__________________87654321_]
((in[ 5 + inPos] & 134217727) >>> 1)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__________65432109_________]
((in[ 5 + inPos] & 134217727) >>> 9)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [__43210987_________________]
((in[ 5 + inPos] & 134217727) >>> 17)) & 255);
out[20 + outPos] = (byte)((
// [______10]
// [65_________________________]
((in[ 5 + inPos] & 134217727) >>> 25)
| // [765432__]
// [_____________________543210]
((in[ 6 + inPos] & 134217727) << 2)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [_____________32109876______]
((in[ 6 + inPos] & 134217727) >>> 6)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [_____10987654______________]
((in[ 6 + inPos] & 134217727) >>> 14)) & 255);
out[23 + outPos] = (byte)((
// [___43210]
// [65432______________________]
((in[ 6 + inPos] & 134217727) >>> 22)
| // [765_____]
// [________________________210]
((in[ 7 + inPos] & 134217727) << 5)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________________09876543___]
((in[ 7 + inPos] & 134217727) >>> 3)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________87654321___________]
((in[ 7 + inPos] & 134217727) >>> 11)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [65432109___________________]
((in[ 7 + inPos] & 134217727) >>> 19)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [___________________76543210]
((in[ 0 + inPos] & 134217727))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [___________54321098________]
((in[ 0 + inPos] & 134217727) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [___32109876________________]
((in[ 0 + inPos] & 134217727) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [_____210]
// [654________________________]
((in[ 0 + inPos] & 134217727) >>> 24)
| // [76543___]
// [______________________43210]
((in[ 1 + inPos] & 134217727) << 3)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [______________21098765_____]
((in[ 1 + inPos] & 134217727) >>> 5)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [______09876543_____________]
((in[ 1 + inPos] & 134217727) >>> 13)) & 255);
out[ 6 + outPos] = (byte)((
// [__543210]
// [654321_____________________]
((in[ 1 + inPos] & 134217727) >>> 21)
| // [76______]
// [_________________________10]
((in[ 2 + inPos] & 134217727) << 6)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [_________________98765432__]
((in[ 2 + inPos] & 134217727) >>> 2)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [_________76543210__________]
((in[ 2 + inPos] & 134217727) >>> 10)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_54321098__________________]
((in[ 2 + inPos] & 134217727) >>> 18)) & 255);
out[10 + outPos] = (byte)((
// [_______0]
// [6__________________________]
((in[ 2 + inPos] & 134217727) >>> 26)
| // [7654321_]
// [____________________6543210]
((in[ 3 + inPos] & 134217727) << 1)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____________43210987_______]
((in[ 3 + inPos] & 134217727) >>> 7)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____21098765_______________]
((in[ 3 + inPos] & 134217727) >>> 15)) & 255);
out[13 + outPos] = (byte)((
// [____3210]
// [6543_______________________]
((in[ 3 + inPos] & 134217727) >>> 23)
| // [7654____]
// [_______________________3210]
((in[ 4 + inPos] & 134217727) << 4)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [_______________10987654____]
((in[ 4 + inPos] & 134217727) >>> 4)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_______98765432____________]
((in[ 4 + inPos] & 134217727) >>> 12)) & 255);
out[16 + outPos] = (byte)((
// [_6543210]
// [6543210____________________]
((in[ 4 + inPos] & 134217727) >>> 20)
| // [7_______]
// [__________________________0]
((in[ 5 + inPos] & 134217727) << 7)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [__________________87654321_]
((in[ 5 + inPos] & 134217727) >>> 1)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [__________65432109_________]
((in[ 5 + inPos] & 134217727) >>> 9)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [__43210987_________________]
((in[ 5 + inPos] & 134217727) >>> 17)) & 255);
out[20 + outPos] = (byte)((
// [______10]
// [65_________________________]
((in[ 5 + inPos] & 134217727) >>> 25)
| // [765432__]
// [_____________________543210]
((in[ 6 + inPos] & 134217727) << 2)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [_____________32109876______]
((in[ 6 + inPos] & 134217727) >>> 6)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [_____10987654______________]
((in[ 6 + inPos] & 134217727) >>> 14)) & 255);
out[23 + outPos] = (byte)((
// [___43210]
// [65432______________________]
((in[ 6 + inPos] & 134217727) >>> 22)
| // [765_____]
// [________________________210]
((in[ 7 + inPos] & 134217727) << 5)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________________09876543___]
((in[ 7 + inPos] & 134217727) >>> 3)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________87654321___________]
((in[ 7 + inPos] & 134217727) >>> 11)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [65432109___________________]
((in[ 7 + inPos] & 134217727) >>> 19)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [___________________76543210]
((in[ 8 + inPos] & 134217727))) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [___________54321098________]
((in[ 8 + inPos] & 134217727) >>> 8)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [___32109876________________]
((in[ 8 + inPos] & 134217727) >>> 16)) & 255);
out[30 + outPos] = (byte)((
// [_____210]
// [654________________________]
((in[ 8 + inPos] & 134217727) >>> 24)
| // [76543___]
// [______________________43210]
((in[ 9 + inPos] & 134217727) << 3)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [______________21098765_____]
((in[ 9 + inPos] & 134217727) >>> 5)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [______09876543_____________]
((in[ 9 + inPos] & 134217727) >>> 13)) & 255);
out[33 + outPos] = (byte)((
// [__543210]
// [654321_____________________]
((in[ 9 + inPos] & 134217727) >>> 21)
| // [76______]
// [_________________________10]
((in[10 + inPos] & 134217727) << 6)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [_________________98765432__]
((in[10 + inPos] & 134217727) >>> 2)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [_________76543210__________]
((in[10 + inPos] & 134217727) >>> 10)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [_54321098__________________]
((in[10 + inPos] & 134217727) >>> 18)) & 255);
out[37 + outPos] = (byte)((
// [_______0]
// [6__________________________]
((in[10 + inPos] & 134217727) >>> 26)
| // [7654321_]
// [____________________6543210]
((in[11 + inPos] & 134217727) << 1)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [____________43210987_______]
((in[11 + inPos] & 134217727) >>> 7)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [____21098765_______________]
((in[11 + inPos] & 134217727) >>> 15)) & 255);
out[40 + outPos] = (byte)((
// [____3210]
// [6543_______________________]
((in[11 + inPos] & 134217727) >>> 23)
| // [7654____]
// [_______________________3210]
((in[12 + inPos] & 134217727) << 4)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [_______________10987654____]
((in[12 + inPos] & 134217727) >>> 4)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [_______98765432____________]
((in[12 + inPos] & 134217727) >>> 12)) & 255);
out[43 + outPos] = (byte)((
// [_6543210]
// [6543210____________________]
((in[12 + inPos] & 134217727) >>> 20)
| // [7_______]
// [__________________________0]
((in[13 + inPos] & 134217727) << 7)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [__________________87654321_]
((in[13 + inPos] & 134217727) >>> 1)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [__________65432109_________]
((in[13 + inPos] & 134217727) >>> 9)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [__43210987_________________]
((in[13 + inPos] & 134217727) >>> 17)) & 255);
out[47 + outPos] = (byte)((
// [______10]
// [65_________________________]
((in[13 + inPos] & 134217727) >>> 25)
| // [765432__]
// [_____________________543210]
((in[14 + inPos] & 134217727) << 2)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [_____________32109876______]
((in[14 + inPos] & 134217727) >>> 6)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [_____10987654______________]
((in[14 + inPos] & 134217727) >>> 14)) & 255);
out[50 + outPos] = (byte)((
// [___43210]
// [65432______________________]
((in[14 + inPos] & 134217727) >>> 22)
| // [765_____]
// [________________________210]
((in[15 + inPos] & 134217727) << 5)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [________________09876543___]
((in[15 + inPos] & 134217727) >>> 3)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [________87654321___________]
((in[15 + inPos] & 134217727) >>> 11)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [65432109___________________]
((in[15 + inPos] & 134217727) >>> 19)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [___________________76543210]
((in[16 + inPos] & 134217727))) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [___________54321098________]
((in[16 + inPos] & 134217727) >>> 8)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [___32109876________________]
((in[16 + inPos] & 134217727) >>> 16)) & 255);
out[57 + outPos] = (byte)((
// [_____210]
// [654________________________]
((in[16 + inPos] & 134217727) >>> 24)
| // [76543___]
// [______________________43210]
((in[17 + inPos] & 134217727) << 3)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [______________21098765_____]
((in[17 + inPos] & 134217727) >>> 5)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [______09876543_____________]
((in[17 + inPos] & 134217727) >>> 13)) & 255);
out[60 + outPos] = (byte)((
// [__543210]
// [654321_____________________]
((in[17 + inPos] & 134217727) >>> 21)
| // [76______]
// [_________________________10]
((in[18 + inPos] & 134217727) << 6)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [_________________98765432__]
((in[18 + inPos] & 134217727) >>> 2)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [_________76543210__________]
((in[18 + inPos] & 134217727) >>> 10)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [_54321098__________________]
((in[18 + inPos] & 134217727) >>> 18)) & 255);
out[64 + outPos] = (byte)((
// [_______0]
// [6__________________________]
((in[18 + inPos] & 134217727) >>> 26)
| // [7654321_]
// [____________________6543210]
((in[19 + inPos] & 134217727) << 1)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [____________43210987_______]
((in[19 + inPos] & 134217727) >>> 7)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [____21098765_______________]
((in[19 + inPos] & 134217727) >>> 15)) & 255);
out[67 + outPos] = (byte)((
// [____3210]
// [6543_______________________]
((in[19 + inPos] & 134217727) >>> 23)
| // [7654____]
// [_______________________3210]
((in[20 + inPos] & 134217727) << 4)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [_______________10987654____]
((in[20 + inPos] & 134217727) >>> 4)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [_______98765432____________]
((in[20 + inPos] & 134217727) >>> 12)) & 255);
out[70 + outPos] = (byte)((
// [_6543210]
// [6543210____________________]
((in[20 + inPos] & 134217727) >>> 20)
| // [7_______]
// [__________________________0]
((in[21 + inPos] & 134217727) << 7)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [__________________87654321_]
((in[21 + inPos] & 134217727) >>> 1)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [__________65432109_________]
((in[21 + inPos] & 134217727) >>> 9)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [__43210987_________________]
((in[21 + inPos] & 134217727) >>> 17)) & 255);
out[74 + outPos] = (byte)((
// [______10]
// [65_________________________]
((in[21 + inPos] & 134217727) >>> 25)
| // [765432__]
// [_____________________543210]
((in[22 + inPos] & 134217727) << 2)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [_____________32109876______]
((in[22 + inPos] & 134217727) >>> 6)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [_____10987654______________]
((in[22 + inPos] & 134217727) >>> 14)) & 255);
out[77 + outPos] = (byte)((
// [___43210]
// [65432______________________]
((in[22 + inPos] & 134217727) >>> 22)
| // [765_____]
// [________________________210]
((in[23 + inPos] & 134217727) << 5)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [________________09876543___]
((in[23 + inPos] & 134217727) >>> 3)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [________87654321___________]
((in[23 + inPos] & 134217727) >>> 11)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [65432109___________________]
((in[23 + inPos] & 134217727) >>> 19)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [___________________76543210]
((in[24 + inPos] & 134217727))) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [___________54321098________]
((in[24 + inPos] & 134217727) >>> 8)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [___32109876________________]
((in[24 + inPos] & 134217727) >>> 16)) & 255);
out[84 + outPos] = (byte)((
// [_____210]
// [654________________________]
((in[24 + inPos] & 134217727) >>> 24)
| // [76543___]
// [______________________43210]
((in[25 + inPos] & 134217727) << 3)) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [______________21098765_____]
((in[25 + inPos] & 134217727) >>> 5)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [______09876543_____________]
((in[25 + inPos] & 134217727) >>> 13)) & 255);
out[87 + outPos] = (byte)((
// [__543210]
// [654321_____________________]
((in[25 + inPos] & 134217727) >>> 21)
| // [76______]
// [_________________________10]
((in[26 + inPos] & 134217727) << 6)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [_________________98765432__]
((in[26 + inPos] & 134217727) >>> 2)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [_________76543210__________]
((in[26 + inPos] & 134217727) >>> 10)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [_54321098__________________]
((in[26 + inPos] & 134217727) >>> 18)) & 255);
out[91 + outPos] = (byte)((
// [_______0]
// [6__________________________]
((in[26 + inPos] & 134217727) >>> 26)
| // [7654321_]
// [____________________6543210]
((in[27 + inPos] & 134217727) << 1)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [____________43210987_______]
((in[27 + inPos] & 134217727) >>> 7)) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [____21098765_______________]
((in[27 + inPos] & 134217727) >>> 15)) & 255);
out[94 + outPos] = (byte)((
// [____3210]
// [6543_______________________]
((in[27 + inPos] & 134217727) >>> 23)
| // [7654____]
// [_______________________3210]
((in[28 + inPos] & 134217727) << 4)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [_______________10987654____]
((in[28 + inPos] & 134217727) >>> 4)) & 255);
out[96 + outPos] = (byte)((
// [76543210]
// [_______98765432____________]
((in[28 + inPos] & 134217727) >>> 12)) & 255);
out[97 + outPos] = (byte)((
// [_6543210]
// [6543210____________________]
((in[28 + inPos] & 134217727) >>> 20)
| // [7_______]
// [__________________________0]
((in[29 + inPos] & 134217727) << 7)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [__________________87654321_]
((in[29 + inPos] & 134217727) >>> 1)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [__________65432109_________]
((in[29 + inPos] & 134217727) >>> 9)) & 255);
out[100 + outPos] = (byte)((
// [76543210]
// [__43210987_________________]
((in[29 + inPos] & 134217727) >>> 17)) & 255);
out[101 + outPos] = (byte)((
// [______10]
// [65_________________________]
((in[29 + inPos] & 134217727) >>> 25)
| // [765432__]
// [_____________________543210]
((in[30 + inPos] & 134217727) << 2)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [_____________32109876______]
((in[30 + inPos] & 134217727) >>> 6)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [_____10987654______________]
((in[30 + inPos] & 134217727) >>> 14)) & 255);
out[104 + outPos] = (byte)((
// [___43210]
// [65432______________________]
((in[30 + inPos] & 134217727) >>> 22)
| // [765_____]
// [________________________210]
((in[31 + inPos] & 134217727) << 5)) & 255);
out[105 + outPos] = (byte)((
// [76543210]
// [________________09876543___]
((in[31 + inPos] & 134217727) >>> 3)) & 255);
out[106 + outPos] = (byte)((
// [76543210]
// [________87654321___________]
((in[31 + inPos] & 134217727) >>> 11)) & 255);
out[107 + outPos] = (byte)((
// [76543210]
// [65432109___________________]
((in[31 + inPos] & 134217727) >>> 19)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in[ 3 + inPos]) << 24) & 134217727);
out[ 1 + outPos] =
// [76543___]
// [______________________43210]
((((int)in[ 3 + inPos]) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in[ 4 + inPos]) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in[ 5 + inPos]) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in[ 6 + inPos]) << 21) & 134217727);
out[ 2 + outPos] =
// [76______]
// [_________________________10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in[ 7 + inPos]) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in[ 8 + inPos]) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in[ 9 + inPos]) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in[10 + inPos]) << 26) & 134217727);
out[ 3 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in[10 + inPos]) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in[11 + inPos]) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in[12 + inPos]) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in[13 + inPos]) << 23) & 134217727);
out[ 4 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in[14 + inPos]) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in[15 + inPos]) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in[16 + inPos]) << 20) & 134217727);
out[ 5 + outPos] =
// [7_______]
// [__________________________0]
((((int)in[16 + inPos]) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in[17 + inPos]) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in[18 + inPos]) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in[19 + inPos]) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in[20 + inPos]) << 25) & 134217727);
out[ 6 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in[20 + inPos]) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in[21 + inPos]) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in[22 + inPos]) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in[23 + inPos]) << 22) & 134217727);
out[ 7 + outPos] =
// [765_____]
// [________________________210]
((((int)in[23 + inPos]) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in[24 + inPos]) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in[25 + inPos]) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in[26 + inPos]) << 19) & 134217727);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in.get( 3 + inPos)) << 24) & 134217727);
out[ 1 + outPos] =
// [76543___]
// [______________________43210]
((((int)in.get( 3 + inPos)) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in.get( 4 + inPos)) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in.get( 5 + inPos)) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in.get( 6 + inPos)) << 21) & 134217727);
out[ 2 + outPos] =
// [76______]
// [_________________________10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in.get( 7 + inPos)) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in.get( 8 + inPos)) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in.get( 9 + inPos)) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in.get(10 + inPos)) << 26) & 134217727);
out[ 3 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in.get(10 + inPos)) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in.get(11 + inPos)) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in.get(12 + inPos)) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in.get(13 + inPos)) << 23) & 134217727);
out[ 4 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in.get(14 + inPos)) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in.get(15 + inPos)) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in.get(16 + inPos)) << 20) & 134217727);
out[ 5 + outPos] =
// [7_______]
// [__________________________0]
((((int)in.get(16 + inPos)) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in.get(17 + inPos)) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in.get(18 + inPos)) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in.get(19 + inPos)) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in.get(20 + inPos)) << 25) & 134217727);
out[ 6 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in.get(20 + inPos)) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in.get(21 + inPos)) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in.get(22 + inPos)) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in.get(23 + inPos)) << 22) & 134217727);
out[ 7 + outPos] =
// [765_____]
// [________________________210]
((((int)in.get(23 + inPos)) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in.get(24 + inPos)) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in.get(25 + inPos)) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in.get(26 + inPos)) << 19) & 134217727);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in[ 3 + inPos]) << 24) & 134217727);
out[ 1 + outPos] =
// [76543___]
// [______________________43210]
((((int)in[ 3 + inPos]) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in[ 4 + inPos]) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in[ 5 + inPos]) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in[ 6 + inPos]) << 21) & 134217727);
out[ 2 + outPos] =
// [76______]
// [_________________________10]
((((int)in[ 6 + inPos]) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in[ 7 + inPos]) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in[ 8 + inPos]) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in[ 9 + inPos]) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in[10 + inPos]) << 26) & 134217727);
out[ 3 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in[10 + inPos]) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in[11 + inPos]) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in[12 + inPos]) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in[13 + inPos]) << 23) & 134217727);
out[ 4 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in[13 + inPos]) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in[14 + inPos]) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in[15 + inPos]) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in[16 + inPos]) << 20) & 134217727);
out[ 5 + outPos] =
// [7_______]
// [__________________________0]
((((int)in[16 + inPos]) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in[17 + inPos]) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in[18 + inPos]) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in[19 + inPos]) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in[20 + inPos]) << 25) & 134217727);
out[ 6 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in[20 + inPos]) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in[21 + inPos]) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in[22 + inPos]) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in[23 + inPos]) << 22) & 134217727);
out[ 7 + outPos] =
// [765_____]
// [________________________210]
((((int)in[23 + inPos]) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in[24 + inPos]) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in[25 + inPos]) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in[26 + inPos]) << 19) & 134217727);
out[ 8 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in[27 + inPos]) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in[28 + inPos]) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in[29 + inPos]) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in[30 + inPos]) << 24) & 134217727);
out[ 9 + outPos] =
// [76543___]
// [______________________43210]
((((int)in[30 + inPos]) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in[31 + inPos]) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in[32 + inPos]) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in[33 + inPos]) << 21) & 134217727);
out[10 + outPos] =
// [76______]
// [_________________________10]
((((int)in[33 + inPos]) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in[34 + inPos]) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in[35 + inPos]) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in[36 + inPos]) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in[37 + inPos]) << 26) & 134217727);
out[11 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in[37 + inPos]) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in[38 + inPos]) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in[39 + inPos]) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in[40 + inPos]) << 23) & 134217727);
out[12 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in[40 + inPos]) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in[41 + inPos]) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in[42 + inPos]) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in[43 + inPos]) << 20) & 134217727);
out[13 + outPos] =
// [7_______]
// [__________________________0]
((((int)in[43 + inPos]) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in[44 + inPos]) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in[45 + inPos]) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in[46 + inPos]) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in[47 + inPos]) << 25) & 134217727);
out[14 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in[47 + inPos]) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in[48 + inPos]) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in[49 + inPos]) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in[50 + inPos]) << 22) & 134217727);
out[15 + outPos] =
// [765_____]
// [________________________210]
((((int)in[50 + inPos]) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in[51 + inPos]) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in[52 + inPos]) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in[53 + inPos]) << 19) & 134217727);
out[16 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in[54 + inPos]) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in[55 + inPos]) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in[56 + inPos]) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in[57 + inPos]) << 24) & 134217727);
out[17 + outPos] =
// [76543___]
// [______________________43210]
((((int)in[57 + inPos]) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in[58 + inPos]) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in[59 + inPos]) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in[60 + inPos]) << 21) & 134217727);
out[18 + outPos] =
// [76______]
// [_________________________10]
((((int)in[60 + inPos]) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in[61 + inPos]) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in[62 + inPos]) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in[63 + inPos]) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in[64 + inPos]) << 26) & 134217727);
out[19 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in[64 + inPos]) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in[65 + inPos]) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in[66 + inPos]) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in[67 + inPos]) << 23) & 134217727);
out[20 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in[67 + inPos]) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in[68 + inPos]) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in[69 + inPos]) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in[70 + inPos]) << 20) & 134217727);
out[21 + outPos] =
// [7_______]
// [__________________________0]
((((int)in[70 + inPos]) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in[71 + inPos]) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in[72 + inPos]) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in[73 + inPos]) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in[74 + inPos]) << 25) & 134217727);
out[22 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in[74 + inPos]) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in[75 + inPos]) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in[76 + inPos]) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in[77 + inPos]) << 22) & 134217727);
out[23 + outPos] =
// [765_____]
// [________________________210]
((((int)in[77 + inPos]) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in[78 + inPos]) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in[79 + inPos]) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in[80 + inPos]) << 19) & 134217727);
out[24 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in[81 + inPos]) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in[82 + inPos]) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in[83 + inPos]) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in[84 + inPos]) << 24) & 134217727);
out[25 + outPos] =
// [76543___]
// [______________________43210]
((((int)in[84 + inPos]) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in[85 + inPos]) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in[86 + inPos]) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in[87 + inPos]) << 21) & 134217727);
out[26 + outPos] =
// [76______]
// [_________________________10]
((((int)in[87 + inPos]) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in[88 + inPos]) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in[89 + inPos]) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in[90 + inPos]) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in[91 + inPos]) << 26) & 134217727);
out[27 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in[91 + inPos]) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in[92 + inPos]) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in[93 + inPos]) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in[94 + inPos]) << 23) & 134217727);
out[28 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in[94 + inPos]) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in[95 + inPos]) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in[96 + inPos]) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in[97 + inPos]) << 20) & 134217727);
out[29 + outPos] =
// [7_______]
// [__________________________0]
((((int)in[97 + inPos]) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in[98 + inPos]) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in[99 + inPos]) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in[100 + inPos]) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in[101 + inPos]) << 25) & 134217727);
out[30 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in[101 + inPos]) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in[102 + inPos]) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in[103 + inPos]) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in[104 + inPos]) << 22) & 134217727);
out[31 + outPos] =
// [765_____]
// [________________________210]
((((int)in[104 + inPos]) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in[105 + inPos]) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in[106 + inPos]) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in[107 + inPos]) << 19) & 134217727);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in.get( 3 + inPos)) << 24) & 134217727);
out[ 1 + outPos] =
// [76543___]
// [______________________43210]
((((int)in.get( 3 + inPos)) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in.get( 4 + inPos)) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in.get( 5 + inPos)) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in.get( 6 + inPos)) << 21) & 134217727);
out[ 2 + outPos] =
// [76______]
// [_________________________10]
((((int)in.get( 6 + inPos)) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in.get( 7 + inPos)) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in.get( 8 + inPos)) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in.get( 9 + inPos)) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in.get(10 + inPos)) << 26) & 134217727);
out[ 3 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in.get(10 + inPos)) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in.get(11 + inPos)) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in.get(12 + inPos)) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in.get(13 + inPos)) << 23) & 134217727);
out[ 4 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in.get(13 + inPos)) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in.get(14 + inPos)) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in.get(15 + inPos)) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in.get(16 + inPos)) << 20) & 134217727);
out[ 5 + outPos] =
// [7_______]
// [__________________________0]
((((int)in.get(16 + inPos)) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in.get(17 + inPos)) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in.get(18 + inPos)) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in.get(19 + inPos)) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in.get(20 + inPos)) << 25) & 134217727);
out[ 6 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in.get(20 + inPos)) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in.get(21 + inPos)) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in.get(22 + inPos)) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in.get(23 + inPos)) << 22) & 134217727);
out[ 7 + outPos] =
// [765_____]
// [________________________210]
((((int)in.get(23 + inPos)) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in.get(24 + inPos)) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in.get(25 + inPos)) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in.get(26 + inPos)) << 19) & 134217727);
out[ 8 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in.get(27 + inPos)) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in.get(28 + inPos)) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in.get(29 + inPos)) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in.get(30 + inPos)) << 24) & 134217727);
out[ 9 + outPos] =
// [76543___]
// [______________________43210]
((((int)in.get(30 + inPos)) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in.get(31 + inPos)) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in.get(32 + inPos)) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in.get(33 + inPos)) << 21) & 134217727);
out[10 + outPos] =
// [76______]
// [_________________________10]
((((int)in.get(33 + inPos)) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in.get(34 + inPos)) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in.get(35 + inPos)) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in.get(36 + inPos)) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in.get(37 + inPos)) << 26) & 134217727);
out[11 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in.get(37 + inPos)) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in.get(38 + inPos)) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in.get(39 + inPos)) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in.get(40 + inPos)) << 23) & 134217727);
out[12 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in.get(40 + inPos)) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in.get(41 + inPos)) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in.get(42 + inPos)) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in.get(43 + inPos)) << 20) & 134217727);
out[13 + outPos] =
// [7_______]
// [__________________________0]
((((int)in.get(43 + inPos)) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in.get(44 + inPos)) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in.get(45 + inPos)) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in.get(46 + inPos)) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in.get(47 + inPos)) << 25) & 134217727);
out[14 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in.get(47 + inPos)) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in.get(48 + inPos)) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in.get(49 + inPos)) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in.get(50 + inPos)) << 22) & 134217727);
out[15 + outPos] =
// [765_____]
// [________________________210]
((((int)in.get(50 + inPos)) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in.get(51 + inPos)) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in.get(52 + inPos)) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in.get(53 + inPos)) << 19) & 134217727);
out[16 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in.get(54 + inPos)) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in.get(55 + inPos)) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in.get(56 + inPos)) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in.get(57 + inPos)) << 24) & 134217727);
out[17 + outPos] =
// [76543___]
// [______________________43210]
((((int)in.get(57 + inPos)) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in.get(58 + inPos)) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in.get(59 + inPos)) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in.get(60 + inPos)) << 21) & 134217727);
out[18 + outPos] =
// [76______]
// [_________________________10]
((((int)in.get(60 + inPos)) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in.get(61 + inPos)) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in.get(62 + inPos)) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in.get(63 + inPos)) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in.get(64 + inPos)) << 26) & 134217727);
out[19 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in.get(64 + inPos)) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in.get(65 + inPos)) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in.get(66 + inPos)) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in.get(67 + inPos)) << 23) & 134217727);
out[20 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in.get(67 + inPos)) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in.get(68 + inPos)) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in.get(69 + inPos)) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in.get(70 + inPos)) << 20) & 134217727);
out[21 + outPos] =
// [7_______]
// [__________________________0]
((((int)in.get(70 + inPos)) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in.get(71 + inPos)) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in.get(72 + inPos)) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in.get(73 + inPos)) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in.get(74 + inPos)) << 25) & 134217727);
out[22 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in.get(74 + inPos)) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in.get(75 + inPos)) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in.get(76 + inPos)) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in.get(77 + inPos)) << 22) & 134217727);
out[23 + outPos] =
// [765_____]
// [________________________210]
((((int)in.get(77 + inPos)) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in.get(78 + inPos)) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in.get(79 + inPos)) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in.get(80 + inPos)) << 19) & 134217727);
out[24 + outPos] =
// [76543210]
// [___________________76543210]
((((int)in.get(81 + inPos)) ) & 255)
| // [76543210]
// [___________54321098________]
((((int)in.get(82 + inPos)) << 8) & 65535)
| // [76543210]
// [___32109876________________]
((((int)in.get(83 + inPos)) << 16) & 16777215)
| // [_____210]
// [654________________________]
((((int)in.get(84 + inPos)) << 24) & 134217727);
out[25 + outPos] =
// [76543___]
// [______________________43210]
((((int)in.get(84 + inPos)) >> 3) & 31)
| // [76543210]
// [______________21098765_____]
((((int)in.get(85 + inPos)) << 5) & 8191)
| // [76543210]
// [______09876543_____________]
((((int)in.get(86 + inPos)) << 13) & 2097151)
| // [__543210]
// [654321_____________________]
((((int)in.get(87 + inPos)) << 21) & 134217727);
out[26 + outPos] =
// [76______]
// [_________________________10]
((((int)in.get(87 + inPos)) >> 6) & 3)
| // [76543210]
// [_________________98765432__]
((((int)in.get(88 + inPos)) << 2) & 1023)
| // [76543210]
// [_________76543210__________]
((((int)in.get(89 + inPos)) << 10) & 262143)
| // [76543210]
// [_54321098__________________]
((((int)in.get(90 + inPos)) << 18) & 67108863)
| // [_______0]
// [6__________________________]
((((int)in.get(91 + inPos)) << 26) & 134217727);
out[27 + outPos] =
// [7654321_]
// [____________________6543210]
((((int)in.get(91 + inPos)) >> 1) & 127)
| // [76543210]
// [____________43210987_______]
((((int)in.get(92 + inPos)) << 7) & 32767)
| // [76543210]
// [____21098765_______________]
((((int)in.get(93 + inPos)) << 15) & 8388607)
| // [____3210]
// [6543_______________________]
((((int)in.get(94 + inPos)) << 23) & 134217727);
out[28 + outPos] =
// [7654____]
// [_______________________3210]
((((int)in.get(94 + inPos)) >> 4) & 15)
| // [76543210]
// [_______________10987654____]
((((int)in.get(95 + inPos)) << 4) & 4095)
| // [76543210]
// [_______98765432____________]
((((int)in.get(96 + inPos)) << 12) & 1048575)
| // [_6543210]
// [6543210____________________]
((((int)in.get(97 + inPos)) << 20) & 134217727);
out[29 + outPos] =
// [7_______]
// [__________________________0]
((((int)in.get(97 + inPos)) >> 7) & 1)
| // [76543210]
// [__________________87654321_]
((((int)in.get(98 + inPos)) << 1) & 511)
| // [76543210]
// [__________65432109_________]
((((int)in.get(99 + inPos)) << 9) & 131071)
| // [76543210]
// [__43210987_________________]
((((int)in.get(100 + inPos)) << 17) & 33554431)
| // [______10]
// [65_________________________]
((((int)in.get(101 + inPos)) << 25) & 134217727);
out[30 + outPos] =
// [765432__]
// [_____________________543210]
((((int)in.get(101 + inPos)) >> 2) & 63)
| // [76543210]
// [_____________32109876______]
((((int)in.get(102 + inPos)) << 6) & 16383)
| // [76543210]
// [_____10987654______________]
((((int)in.get(103 + inPos)) << 14) & 4194303)
| // [___43210]
// [65432______________________]
((((int)in.get(104 + inPos)) << 22) & 134217727);
out[31 + outPos] =
// [765_____]
// [________________________210]
((((int)in.get(104 + inPos)) >> 5) & 7)
| // [76543210]
// [________________09876543___]
((((int)in.get(105 + inPos)) << 3) & 2047)
| // [76543210]
// [________87654321___________]
((((int)in.get(106 + inPos)) << 11) & 524287)
| // [76543210]
// [65432109___________________]
((((int)in.get(107 + inPos)) << 19) & 134217727);
}
}
private static final class Packer28 extends BytePacker {
private Packer28() {
super(28);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 0 + inPos] & 268435455))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 0 + inPos] & 268435455) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 0 + inPos] & 268435455) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 0 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 1 + inPos] & 268435455) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 1 + inPos] & 268435455) >>> 4)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 1 + inPos] & 268435455) >>> 12)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 1 + inPos] & 268435455) >>> 20)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 2 + inPos] & 268435455))) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 2 + inPos] & 268435455) >>> 8)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 2 + inPos] & 268435455) >>> 16)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 2 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 3 + inPos] & 268435455) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 3 + inPos] & 268435455) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 3 + inPos] & 268435455) >>> 12)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 3 + inPos] & 268435455) >>> 20)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 4 + inPos] & 268435455))) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 4 + inPos] & 268435455) >>> 8)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 4 + inPos] & 268435455) >>> 16)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 4 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 5 + inPos] & 268435455) << 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 5 + inPos] & 268435455) >>> 4)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 5 + inPos] & 268435455) >>> 12)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 5 + inPos] & 268435455) >>> 20)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 6 + inPos] & 268435455))) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 6 + inPos] & 268435455) >>> 8)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 6 + inPos] & 268435455) >>> 16)) & 255);
out[24 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 6 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 7 + inPos] & 268435455) << 4)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 7 + inPos] & 268435455) >>> 4)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 7 + inPos] & 268435455) >>> 12)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 7 + inPos] & 268435455) >>> 20)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 0 + inPos] & 268435455))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 0 + inPos] & 268435455) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 0 + inPos] & 268435455) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 0 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 1 + inPos] & 268435455) << 4)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 1 + inPos] & 268435455) >>> 4)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 1 + inPos] & 268435455) >>> 12)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 1 + inPos] & 268435455) >>> 20)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 2 + inPos] & 268435455))) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 2 + inPos] & 268435455) >>> 8)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 2 + inPos] & 268435455) >>> 16)) & 255);
out[10 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 2 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 3 + inPos] & 268435455) << 4)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 3 + inPos] & 268435455) >>> 4)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 3 + inPos] & 268435455) >>> 12)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 3 + inPos] & 268435455) >>> 20)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 4 + inPos] & 268435455))) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 4 + inPos] & 268435455) >>> 8)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 4 + inPos] & 268435455) >>> 16)) & 255);
out[17 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 4 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 5 + inPos] & 268435455) << 4)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 5 + inPos] & 268435455) >>> 4)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 5 + inPos] & 268435455) >>> 12)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 5 + inPos] & 268435455) >>> 20)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 6 + inPos] & 268435455))) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 6 + inPos] & 268435455) >>> 8)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 6 + inPos] & 268435455) >>> 16)) & 255);
out[24 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 6 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 7 + inPos] & 268435455) << 4)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 7 + inPos] & 268435455) >>> 4)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 7 + inPos] & 268435455) >>> 12)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 7 + inPos] & 268435455) >>> 20)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[ 8 + inPos] & 268435455))) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[ 8 + inPos] & 268435455) >>> 8)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[ 8 + inPos] & 268435455) >>> 16)) & 255);
out[31 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[ 8 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[ 9 + inPos] & 268435455) << 4)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[ 9 + inPos] & 268435455) >>> 4)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[ 9 + inPos] & 268435455) >>> 12)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[ 9 + inPos] & 268435455) >>> 20)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[10 + inPos] & 268435455))) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[10 + inPos] & 268435455) >>> 8)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[10 + inPos] & 268435455) >>> 16)) & 255);
out[38 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[10 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[11 + inPos] & 268435455) << 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[11 + inPos] & 268435455) >>> 4)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[11 + inPos] & 268435455) >>> 12)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[11 + inPos] & 268435455) >>> 20)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[12 + inPos] & 268435455))) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[12 + inPos] & 268435455) >>> 8)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[12 + inPos] & 268435455) >>> 16)) & 255);
out[45 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[12 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[13 + inPos] & 268435455) << 4)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[13 + inPos] & 268435455) >>> 4)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[13 + inPos] & 268435455) >>> 12)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[13 + inPos] & 268435455) >>> 20)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[14 + inPos] & 268435455))) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[14 + inPos] & 268435455) >>> 8)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[14 + inPos] & 268435455) >>> 16)) & 255);
out[52 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[14 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[15 + inPos] & 268435455) << 4)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[15 + inPos] & 268435455) >>> 4)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[15 + inPos] & 268435455) >>> 12)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[15 + inPos] & 268435455) >>> 20)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[16 + inPos] & 268435455))) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[16 + inPos] & 268435455) >>> 8)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[16 + inPos] & 268435455) >>> 16)) & 255);
out[59 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[16 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[17 + inPos] & 268435455) << 4)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[17 + inPos] & 268435455) >>> 4)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[17 + inPos] & 268435455) >>> 12)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[17 + inPos] & 268435455) >>> 20)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[18 + inPos] & 268435455))) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[18 + inPos] & 268435455) >>> 8)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[18 + inPos] & 268435455) >>> 16)) & 255);
out[66 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[18 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[19 + inPos] & 268435455) << 4)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[19 + inPos] & 268435455) >>> 4)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[19 + inPos] & 268435455) >>> 12)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[19 + inPos] & 268435455) >>> 20)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[20 + inPos] & 268435455))) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[20 + inPos] & 268435455) >>> 8)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[20 + inPos] & 268435455) >>> 16)) & 255);
out[73 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[20 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[21 + inPos] & 268435455) << 4)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[21 + inPos] & 268435455) >>> 4)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[21 + inPos] & 268435455) >>> 12)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[21 + inPos] & 268435455) >>> 20)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[22 + inPos] & 268435455))) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[22 + inPos] & 268435455) >>> 8)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[22 + inPos] & 268435455) >>> 16)) & 255);
out[80 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[22 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[23 + inPos] & 268435455) << 4)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[23 + inPos] & 268435455) >>> 4)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[23 + inPos] & 268435455) >>> 12)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[23 + inPos] & 268435455) >>> 20)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[24 + inPos] & 268435455))) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[24 + inPos] & 268435455) >>> 8)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[24 + inPos] & 268435455) >>> 16)) & 255);
out[87 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[24 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[25 + inPos] & 268435455) << 4)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[25 + inPos] & 268435455) >>> 4)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[25 + inPos] & 268435455) >>> 12)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[25 + inPos] & 268435455) >>> 20)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[26 + inPos] & 268435455))) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[26 + inPos] & 268435455) >>> 8)) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[26 + inPos] & 268435455) >>> 16)) & 255);
out[94 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[26 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[27 + inPos] & 268435455) << 4)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[27 + inPos] & 268435455) >>> 4)) & 255);
out[96 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[27 + inPos] & 268435455) >>> 12)) & 255);
out[97 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[27 + inPos] & 268435455) >>> 20)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[28 + inPos] & 268435455))) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[28 + inPos] & 268435455) >>> 8)) & 255);
out[100 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[28 + inPos] & 268435455) >>> 16)) & 255);
out[101 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[28 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[29 + inPos] & 268435455) << 4)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[29 + inPos] & 268435455) >>> 4)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[29 + inPos] & 268435455) >>> 12)) & 255);
out[104 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[29 + inPos] & 268435455) >>> 20)) & 255);
out[105 + outPos] = (byte)((
// [76543210]
// [____________________76543210]
((in[30 + inPos] & 268435455))) & 255);
out[106 + outPos] = (byte)((
// [76543210]
// [____________54321098________]
((in[30 + inPos] & 268435455) >>> 8)) & 255);
out[107 + outPos] = (byte)((
// [76543210]
// [____32109876________________]
((in[30 + inPos] & 268435455) >>> 16)) & 255);
out[108 + outPos] = (byte)((
// [____3210]
// [7654________________________]
((in[30 + inPos] & 268435455) >>> 24)
| // [7654____]
// [________________________3210]
((in[31 + inPos] & 268435455) << 4)) & 255);
out[109 + outPos] = (byte)((
// [76543210]
// [________________10987654____]
((in[31 + inPos] & 268435455) >>> 4)) & 255);
out[110 + outPos] = (byte)((
// [76543210]
// [________98765432____________]
((in[31 + inPos] & 268435455) >>> 12)) & 255);
out[111 + outPos] = (byte)((
// [76543210]
// [76543210____________________]
((in[31 + inPos] & 268435455) >>> 20)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[ 3 + inPos]) << 24) & 268435455);
out[ 1 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[ 3 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[ 4 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[ 5 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[ 6 + inPos]) << 20) & 268435455);
out[ 2 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[ 7 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[ 8 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[ 9 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[10 + inPos]) << 24) & 268435455);
out[ 3 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[11 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[12 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[13 + inPos]) << 20) & 268435455);
out[ 4 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[14 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[15 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[16 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[17 + inPos]) << 24) & 268435455);
out[ 5 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[18 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[19 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[20 + inPos]) << 20) & 268435455);
out[ 6 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[21 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[22 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[23 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[24 + inPos]) << 24) & 268435455);
out[ 7 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[24 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[25 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[26 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[27 + inPos]) << 20) & 268435455);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get( 3 + inPos)) << 24) & 268435455);
out[ 1 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get( 3 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get( 4 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get( 5 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get( 6 + inPos)) << 20) & 268435455);
out[ 2 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get( 7 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get( 8 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get( 9 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(10 + inPos)) << 24) & 268435455);
out[ 3 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(12 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(13 + inPos)) << 20) & 268435455);
out[ 4 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(14 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(15 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(16 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(17 + inPos)) << 24) & 268435455);
out[ 5 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(18 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(19 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(20 + inPos)) << 20) & 268435455);
out[ 6 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(22 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(23 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(24 + inPos)) << 24) & 268435455);
out[ 7 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(24 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(25 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(26 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(27 + inPos)) << 20) & 268435455);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[ 3 + inPos]) << 24) & 268435455);
out[ 1 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[ 3 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[ 4 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[ 5 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[ 6 + inPos]) << 20) & 268435455);
out[ 2 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[ 7 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[ 8 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[ 9 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[10 + inPos]) << 24) & 268435455);
out[ 3 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[10 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[11 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[12 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[13 + inPos]) << 20) & 268435455);
out[ 4 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[14 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[15 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[16 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[17 + inPos]) << 24) & 268435455);
out[ 5 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[17 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[18 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[19 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[20 + inPos]) << 20) & 268435455);
out[ 6 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[21 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[22 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[23 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[24 + inPos]) << 24) & 268435455);
out[ 7 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[24 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[25 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[26 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[27 + inPos]) << 20) & 268435455);
out[ 8 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[28 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[29 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[30 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[31 + inPos]) << 24) & 268435455);
out[ 9 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[31 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[32 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[33 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[34 + inPos]) << 20) & 268435455);
out[10 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[35 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[36 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[37 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[38 + inPos]) << 24) & 268435455);
out[11 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[38 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[39 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[40 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[41 + inPos]) << 20) & 268435455);
out[12 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[42 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[43 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[44 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[45 + inPos]) << 24) & 268435455);
out[13 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[45 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[46 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[47 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[48 + inPos]) << 20) & 268435455);
out[14 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[49 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[50 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[51 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[52 + inPos]) << 24) & 268435455);
out[15 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[52 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[53 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[54 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[55 + inPos]) << 20) & 268435455);
out[16 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[56 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[57 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[58 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[59 + inPos]) << 24) & 268435455);
out[17 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[59 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[60 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[61 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[62 + inPos]) << 20) & 268435455);
out[18 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[63 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[64 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[65 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[66 + inPos]) << 24) & 268435455);
out[19 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[66 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[67 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[68 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[69 + inPos]) << 20) & 268435455);
out[20 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[70 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[71 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[72 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[73 + inPos]) << 24) & 268435455);
out[21 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[73 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[74 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[75 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[76 + inPos]) << 20) & 268435455);
out[22 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[77 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[78 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[79 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[80 + inPos]) << 24) & 268435455);
out[23 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[80 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[81 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[82 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[83 + inPos]) << 20) & 268435455);
out[24 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[84 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[85 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[86 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[87 + inPos]) << 24) & 268435455);
out[25 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[87 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[88 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[89 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[90 + inPos]) << 20) & 268435455);
out[26 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[91 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[92 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[93 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[94 + inPos]) << 24) & 268435455);
out[27 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[94 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[95 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[96 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[97 + inPos]) << 20) & 268435455);
out[28 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[98 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[99 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[100 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[101 + inPos]) << 24) & 268435455);
out[29 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[101 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[102 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[103 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[104 + inPos]) << 20) & 268435455);
out[30 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in[105 + inPos]) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in[106 + inPos]) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in[107 + inPos]) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in[108 + inPos]) << 24) & 268435455);
out[31 + outPos] =
// [7654____]
// [________________________3210]
((((int)in[108 + inPos]) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in[109 + inPos]) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in[110 + inPos]) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in[111 + inPos]) << 20) & 268435455);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get( 3 + inPos)) << 24) & 268435455);
out[ 1 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get( 3 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get( 4 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get( 5 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get( 6 + inPos)) << 20) & 268435455);
out[ 2 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get( 7 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get( 8 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get( 9 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(10 + inPos)) << 24) & 268435455);
out[ 3 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(10 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(11 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(12 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(13 + inPos)) << 20) & 268435455);
out[ 4 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(14 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(15 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(16 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(17 + inPos)) << 24) & 268435455);
out[ 5 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(17 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(18 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(19 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(20 + inPos)) << 20) & 268435455);
out[ 6 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(21 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(22 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(23 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(24 + inPos)) << 24) & 268435455);
out[ 7 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(24 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(25 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(26 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(27 + inPos)) << 20) & 268435455);
out[ 8 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(28 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(29 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(30 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(31 + inPos)) << 24) & 268435455);
out[ 9 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(31 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(32 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(33 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(34 + inPos)) << 20) & 268435455);
out[10 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(35 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(36 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(37 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(38 + inPos)) << 24) & 268435455);
out[11 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(38 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(39 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(40 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(41 + inPos)) << 20) & 268435455);
out[12 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(42 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(43 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(44 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(45 + inPos)) << 24) & 268435455);
out[13 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(45 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(46 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(47 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(48 + inPos)) << 20) & 268435455);
out[14 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(49 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(50 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(51 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(52 + inPos)) << 24) & 268435455);
out[15 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(52 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(53 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(54 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(55 + inPos)) << 20) & 268435455);
out[16 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(56 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(57 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(58 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(59 + inPos)) << 24) & 268435455);
out[17 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(59 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(60 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(61 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(62 + inPos)) << 20) & 268435455);
out[18 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(63 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(64 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(65 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(66 + inPos)) << 24) & 268435455);
out[19 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(66 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(67 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(68 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(69 + inPos)) << 20) & 268435455);
out[20 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(70 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(71 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(72 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(73 + inPos)) << 24) & 268435455);
out[21 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(73 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(74 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(75 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(76 + inPos)) << 20) & 268435455);
out[22 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(77 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(78 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(79 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(80 + inPos)) << 24) & 268435455);
out[23 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(80 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(81 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(82 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(83 + inPos)) << 20) & 268435455);
out[24 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(84 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(85 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(86 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(87 + inPos)) << 24) & 268435455);
out[25 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(87 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(88 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(89 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(90 + inPos)) << 20) & 268435455);
out[26 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(91 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(92 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(93 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(94 + inPos)) << 24) & 268435455);
out[27 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(94 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(95 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(96 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(97 + inPos)) << 20) & 268435455);
out[28 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(98 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(99 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(100 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(101 + inPos)) << 24) & 268435455);
out[29 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(101 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(102 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(103 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(104 + inPos)) << 20) & 268435455);
out[30 + outPos] =
// [76543210]
// [____________________76543210]
((((int)in.get(105 + inPos)) ) & 255)
| // [76543210]
// [____________54321098________]
((((int)in.get(106 + inPos)) << 8) & 65535)
| // [76543210]
// [____32109876________________]
((((int)in.get(107 + inPos)) << 16) & 16777215)
| // [____3210]
// [7654________________________]
((((int)in.get(108 + inPos)) << 24) & 268435455);
out[31 + outPos] =
// [7654____]
// [________________________3210]
((((int)in.get(108 + inPos)) >> 4) & 15)
| // [76543210]
// [________________10987654____]
((((int)in.get(109 + inPos)) << 4) & 4095)
| // [76543210]
// [________98765432____________]
((((int)in.get(110 + inPos)) << 12) & 1048575)
| // [76543210]
// [76543210____________________]
((((int)in.get(111 + inPos)) << 20) & 268435455);
}
}
private static final class Packer29 extends BytePacker {
private Packer29() {
super(29);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_____________________76543210]
((in[ 0 + inPos] & 536870911))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_____________54321098________]
((in[ 0 + inPos] & 536870911) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [_____32109876________________]
((in[ 0 + inPos] & 536870911) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [___43210]
// [87654________________________]
((in[ 0 + inPos] & 536870911) >>> 24)
| // [765_____]
// [__________________________210]
((in[ 1 + inPos] & 536870911) << 5)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__________________09876543___]
((in[ 1 + inPos] & 536870911) >>> 3)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [__________87654321___________]
((in[ 1 + inPos] & 536870911) >>> 11)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [__65432109___________________]
((in[ 1 + inPos] & 536870911) >>> 19)) & 255);
out[ 7 + outPos] = (byte)((
// [______10]
// [87___________________________]
((in[ 1 + inPos] & 536870911) >>> 27)
| // [765432__]
// [_______________________543210]
((in[ 2 + inPos] & 536870911) << 2)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [_______________32109876______]
((in[ 2 + inPos] & 536870911) >>> 6)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_______10987654______________]
((in[ 2 + inPos] & 536870911) >>> 14)) & 255);
out[10 + outPos] = (byte)((
// [_6543210]
// [8765432______________________]
((in[ 2 + inPos] & 536870911) >>> 22)
| // [7_______]
// [____________________________0]
((in[ 3 + inPos] & 536870911) << 7)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____________________87654321_]
((in[ 3 + inPos] & 536870911) >>> 1)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____________65432109_________]
((in[ 3 + inPos] & 536870911) >>> 9)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [____43210987_________________]
((in[ 3 + inPos] & 536870911) >>> 17)) & 255);
out[14 + outPos] = (byte)((
// [____3210]
// [8765_________________________]
((in[ 3 + inPos] & 536870911) >>> 25)
| // [7654____]
// [_________________________3210]
((in[ 4 + inPos] & 536870911) << 4)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_________________10987654____]
((in[ 4 + inPos] & 536870911) >>> 4)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [_________98765432____________]
((in[ 4 + inPos] & 536870911) >>> 12)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [_76543210____________________]
((in[ 4 + inPos] & 536870911) >>> 20)) & 255);
out[18 + outPos] = (byte)((
// [_______0]
// [8____________________________]
((in[ 4 + inPos] & 536870911) >>> 28)
| // [7654321_]
// [______________________6543210]
((in[ 5 + inPos] & 536870911) << 1)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [______________43210987_______]
((in[ 5 + inPos] & 536870911) >>> 7)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [______21098765_______________]
((in[ 5 + inPos] & 536870911) >>> 15)) & 255);
out[21 + outPos] = (byte)((
// [__543210]
// [876543_______________________]
((in[ 5 + inPos] & 536870911) >>> 23)
| // [76______]
// [___________________________10]
((in[ 6 + inPos] & 536870911) << 6)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [___________________98765432__]
((in[ 6 + inPos] & 536870911) >>> 2)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [___________76543210__________]
((in[ 6 + inPos] & 536870911) >>> 10)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [___54321098__________________]
((in[ 6 + inPos] & 536870911) >>> 18)) & 255);
out[25 + outPos] = (byte)((
// [_____210]
// [876__________________________]
((in[ 6 + inPos] & 536870911) >>> 26)
| // [76543___]
// [________________________43210]
((in[ 7 + inPos] & 536870911) << 3)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________________21098765_____]
((in[ 7 + inPos] & 536870911) >>> 5)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [________09876543_____________]
((in[ 7 + inPos] & 536870911) >>> 13)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [87654321_____________________]
((in[ 7 + inPos] & 536870911) >>> 21)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_____________________76543210]
((in[ 0 + inPos] & 536870911))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_____________54321098________]
((in[ 0 + inPos] & 536870911) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [_____32109876________________]
((in[ 0 + inPos] & 536870911) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [___43210]
// [87654________________________]
((in[ 0 + inPos] & 536870911) >>> 24)
| // [765_____]
// [__________________________210]
((in[ 1 + inPos] & 536870911) << 5)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [__________________09876543___]
((in[ 1 + inPos] & 536870911) >>> 3)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [__________87654321___________]
((in[ 1 + inPos] & 536870911) >>> 11)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [__65432109___________________]
((in[ 1 + inPos] & 536870911) >>> 19)) & 255);
out[ 7 + outPos] = (byte)((
// [______10]
// [87___________________________]
((in[ 1 + inPos] & 536870911) >>> 27)
| // [765432__]
// [_______________________543210]
((in[ 2 + inPos] & 536870911) << 2)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [_______________32109876______]
((in[ 2 + inPos] & 536870911) >>> 6)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_______10987654______________]
((in[ 2 + inPos] & 536870911) >>> 14)) & 255);
out[10 + outPos] = (byte)((
// [_6543210]
// [8765432______________________]
((in[ 2 + inPos] & 536870911) >>> 22)
| // [7_______]
// [____________________________0]
((in[ 3 + inPos] & 536870911) << 7)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [____________________87654321_]
((in[ 3 + inPos] & 536870911) >>> 1)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____________65432109_________]
((in[ 3 + inPos] & 536870911) >>> 9)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [____43210987_________________]
((in[ 3 + inPos] & 536870911) >>> 17)) & 255);
out[14 + outPos] = (byte)((
// [____3210]
// [8765_________________________]
((in[ 3 + inPos] & 536870911) >>> 25)
| // [7654____]
// [_________________________3210]
((in[ 4 + inPos] & 536870911) << 4)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [_________________10987654____]
((in[ 4 + inPos] & 536870911) >>> 4)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [_________98765432____________]
((in[ 4 + inPos] & 536870911) >>> 12)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [_76543210____________________]
((in[ 4 + inPos] & 536870911) >>> 20)) & 255);
out[18 + outPos] = (byte)((
// [_______0]
// [8____________________________]
((in[ 4 + inPos] & 536870911) >>> 28)
| // [7654321_]
// [______________________6543210]
((in[ 5 + inPos] & 536870911) << 1)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [______________43210987_______]
((in[ 5 + inPos] & 536870911) >>> 7)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [______21098765_______________]
((in[ 5 + inPos] & 536870911) >>> 15)) & 255);
out[21 + outPos] = (byte)((
// [__543210]
// [876543_______________________]
((in[ 5 + inPos] & 536870911) >>> 23)
| // [76______]
// [___________________________10]
((in[ 6 + inPos] & 536870911) << 6)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [___________________98765432__]
((in[ 6 + inPos] & 536870911) >>> 2)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [___________76543210__________]
((in[ 6 + inPos] & 536870911) >>> 10)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [___54321098__________________]
((in[ 6 + inPos] & 536870911) >>> 18)) & 255);
out[25 + outPos] = (byte)((
// [_____210]
// [876__________________________]
((in[ 6 + inPos] & 536870911) >>> 26)
| // [76543___]
// [________________________43210]
((in[ 7 + inPos] & 536870911) << 3)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________________21098765_____]
((in[ 7 + inPos] & 536870911) >>> 5)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [________09876543_____________]
((in[ 7 + inPos] & 536870911) >>> 13)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [87654321_____________________]
((in[ 7 + inPos] & 536870911) >>> 21)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [_____________________76543210]
((in[ 8 + inPos] & 536870911))) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [_____________54321098________]
((in[ 8 + inPos] & 536870911) >>> 8)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [_____32109876________________]
((in[ 8 + inPos] & 536870911) >>> 16)) & 255);
out[32 + outPos] = (byte)((
// [___43210]
// [87654________________________]
((in[ 8 + inPos] & 536870911) >>> 24)
| // [765_____]
// [__________________________210]
((in[ 9 + inPos] & 536870911) << 5)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [__________________09876543___]
((in[ 9 + inPos] & 536870911) >>> 3)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [__________87654321___________]
((in[ 9 + inPos] & 536870911) >>> 11)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [__65432109___________________]
((in[ 9 + inPos] & 536870911) >>> 19)) & 255);
out[36 + outPos] = (byte)((
// [______10]
// [87___________________________]
((in[ 9 + inPos] & 536870911) >>> 27)
| // [765432__]
// [_______________________543210]
((in[10 + inPos] & 536870911) << 2)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [_______________32109876______]
((in[10 + inPos] & 536870911) >>> 6)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [_______10987654______________]
((in[10 + inPos] & 536870911) >>> 14)) & 255);
out[39 + outPos] = (byte)((
// [_6543210]
// [8765432______________________]
((in[10 + inPos] & 536870911) >>> 22)
| // [7_______]
// [____________________________0]
((in[11 + inPos] & 536870911) << 7)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [____________________87654321_]
((in[11 + inPos] & 536870911) >>> 1)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [____________65432109_________]
((in[11 + inPos] & 536870911) >>> 9)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [____43210987_________________]
((in[11 + inPos] & 536870911) >>> 17)) & 255);
out[43 + outPos] = (byte)((
// [____3210]
// [8765_________________________]
((in[11 + inPos] & 536870911) >>> 25)
| // [7654____]
// [_________________________3210]
((in[12 + inPos] & 536870911) << 4)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [_________________10987654____]
((in[12 + inPos] & 536870911) >>> 4)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [_________98765432____________]
((in[12 + inPos] & 536870911) >>> 12)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [_76543210____________________]
((in[12 + inPos] & 536870911) >>> 20)) & 255);
out[47 + outPos] = (byte)((
// [_______0]
// [8____________________________]
((in[12 + inPos] & 536870911) >>> 28)
| // [7654321_]
// [______________________6543210]
((in[13 + inPos] & 536870911) << 1)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [______________43210987_______]
((in[13 + inPos] & 536870911) >>> 7)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [______21098765_______________]
((in[13 + inPos] & 536870911) >>> 15)) & 255);
out[50 + outPos] = (byte)((
// [__543210]
// [876543_______________________]
((in[13 + inPos] & 536870911) >>> 23)
| // [76______]
// [___________________________10]
((in[14 + inPos] & 536870911) << 6)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [___________________98765432__]
((in[14 + inPos] & 536870911) >>> 2)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [___________76543210__________]
((in[14 + inPos] & 536870911) >>> 10)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [___54321098__________________]
((in[14 + inPos] & 536870911) >>> 18)) & 255);
out[54 + outPos] = (byte)((
// [_____210]
// [876__________________________]
((in[14 + inPos] & 536870911) >>> 26)
| // [76543___]
// [________________________43210]
((in[15 + inPos] & 536870911) << 3)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [________________21098765_____]
((in[15 + inPos] & 536870911) >>> 5)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [________09876543_____________]
((in[15 + inPos] & 536870911) >>> 13)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [87654321_____________________]
((in[15 + inPos] & 536870911) >>> 21)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [_____________________76543210]
((in[16 + inPos] & 536870911))) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [_____________54321098________]
((in[16 + inPos] & 536870911) >>> 8)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [_____32109876________________]
((in[16 + inPos] & 536870911) >>> 16)) & 255);
out[61 + outPos] = (byte)((
// [___43210]
// [87654________________________]
((in[16 + inPos] & 536870911) >>> 24)
| // [765_____]
// [__________________________210]
((in[17 + inPos] & 536870911) << 5)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [__________________09876543___]
((in[17 + inPos] & 536870911) >>> 3)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [__________87654321___________]
((in[17 + inPos] & 536870911) >>> 11)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [__65432109___________________]
((in[17 + inPos] & 536870911) >>> 19)) & 255);
out[65 + outPos] = (byte)((
// [______10]
// [87___________________________]
((in[17 + inPos] & 536870911) >>> 27)
| // [765432__]
// [_______________________543210]
((in[18 + inPos] & 536870911) << 2)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [_______________32109876______]
((in[18 + inPos] & 536870911) >>> 6)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [_______10987654______________]
((in[18 + inPos] & 536870911) >>> 14)) & 255);
out[68 + outPos] = (byte)((
// [_6543210]
// [8765432______________________]
((in[18 + inPos] & 536870911) >>> 22)
| // [7_______]
// [____________________________0]
((in[19 + inPos] & 536870911) << 7)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [____________________87654321_]
((in[19 + inPos] & 536870911) >>> 1)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [____________65432109_________]
((in[19 + inPos] & 536870911) >>> 9)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [____43210987_________________]
((in[19 + inPos] & 536870911) >>> 17)) & 255);
out[72 + outPos] = (byte)((
// [____3210]
// [8765_________________________]
((in[19 + inPos] & 536870911) >>> 25)
| // [7654____]
// [_________________________3210]
((in[20 + inPos] & 536870911) << 4)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [_________________10987654____]
((in[20 + inPos] & 536870911) >>> 4)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [_________98765432____________]
((in[20 + inPos] & 536870911) >>> 12)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [_76543210____________________]
((in[20 + inPos] & 536870911) >>> 20)) & 255);
out[76 + outPos] = (byte)((
// [_______0]
// [8____________________________]
((in[20 + inPos] & 536870911) >>> 28)
| // [7654321_]
// [______________________6543210]
((in[21 + inPos] & 536870911) << 1)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [______________43210987_______]
((in[21 + inPos] & 536870911) >>> 7)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [______21098765_______________]
((in[21 + inPos] & 536870911) >>> 15)) & 255);
out[79 + outPos] = (byte)((
// [__543210]
// [876543_______________________]
((in[21 + inPos] & 536870911) >>> 23)
| // [76______]
// [___________________________10]
((in[22 + inPos] & 536870911) << 6)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [___________________98765432__]
((in[22 + inPos] & 536870911) >>> 2)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [___________76543210__________]
((in[22 + inPos] & 536870911) >>> 10)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [___54321098__________________]
((in[22 + inPos] & 536870911) >>> 18)) & 255);
out[83 + outPos] = (byte)((
// [_____210]
// [876__________________________]
((in[22 + inPos] & 536870911) >>> 26)
| // [76543___]
// [________________________43210]
((in[23 + inPos] & 536870911) << 3)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [________________21098765_____]
((in[23 + inPos] & 536870911) >>> 5)) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [________09876543_____________]
((in[23 + inPos] & 536870911) >>> 13)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [87654321_____________________]
((in[23 + inPos] & 536870911) >>> 21)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [_____________________76543210]
((in[24 + inPos] & 536870911))) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [_____________54321098________]
((in[24 + inPos] & 536870911) >>> 8)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [_____32109876________________]
((in[24 + inPos] & 536870911) >>> 16)) & 255);
out[90 + outPos] = (byte)((
// [___43210]
// [87654________________________]
((in[24 + inPos] & 536870911) >>> 24)
| // [765_____]
// [__________________________210]
((in[25 + inPos] & 536870911) << 5)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [__________________09876543___]
((in[25 + inPos] & 536870911) >>> 3)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [__________87654321___________]
((in[25 + inPos] & 536870911) >>> 11)) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [__65432109___________________]
((in[25 + inPos] & 536870911) >>> 19)) & 255);
out[94 + outPos] = (byte)((
// [______10]
// [87___________________________]
((in[25 + inPos] & 536870911) >>> 27)
| // [765432__]
// [_______________________543210]
((in[26 + inPos] & 536870911) << 2)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [_______________32109876______]
((in[26 + inPos] & 536870911) >>> 6)) & 255);
out[96 + outPos] = (byte)((
// [76543210]
// [_______10987654______________]
((in[26 + inPos] & 536870911) >>> 14)) & 255);
out[97 + outPos] = (byte)((
// [_6543210]
// [8765432______________________]
((in[26 + inPos] & 536870911) >>> 22)
| // [7_______]
// [____________________________0]
((in[27 + inPos] & 536870911) << 7)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [____________________87654321_]
((in[27 + inPos] & 536870911) >>> 1)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [____________65432109_________]
((in[27 + inPos] & 536870911) >>> 9)) & 255);
out[100 + outPos] = (byte)((
// [76543210]
// [____43210987_________________]
((in[27 + inPos] & 536870911) >>> 17)) & 255);
out[101 + outPos] = (byte)((
// [____3210]
// [8765_________________________]
((in[27 + inPos] & 536870911) >>> 25)
| // [7654____]
// [_________________________3210]
((in[28 + inPos] & 536870911) << 4)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [_________________10987654____]
((in[28 + inPos] & 536870911) >>> 4)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [_________98765432____________]
((in[28 + inPos] & 536870911) >>> 12)) & 255);
out[104 + outPos] = (byte)((
// [76543210]
// [_76543210____________________]
((in[28 + inPos] & 536870911) >>> 20)) & 255);
out[105 + outPos] = (byte)((
// [_______0]
// [8____________________________]
((in[28 + inPos] & 536870911) >>> 28)
| // [7654321_]
// [______________________6543210]
((in[29 + inPos] & 536870911) << 1)) & 255);
out[106 + outPos] = (byte)((
// [76543210]
// [______________43210987_______]
((in[29 + inPos] & 536870911) >>> 7)) & 255);
out[107 + outPos] = (byte)((
// [76543210]
// [______21098765_______________]
((in[29 + inPos] & 536870911) >>> 15)) & 255);
out[108 + outPos] = (byte)((
// [__543210]
// [876543_______________________]
((in[29 + inPos] & 536870911) >>> 23)
| // [76______]
// [___________________________10]
((in[30 + inPos] & 536870911) << 6)) & 255);
out[109 + outPos] = (byte)((
// [76543210]
// [___________________98765432__]
((in[30 + inPos] & 536870911) >>> 2)) & 255);
out[110 + outPos] = (byte)((
// [76543210]
// [___________76543210__________]
((in[30 + inPos] & 536870911) >>> 10)) & 255);
out[111 + outPos] = (byte)((
// [76543210]
// [___54321098__________________]
((in[30 + inPos] & 536870911) >>> 18)) & 255);
out[112 + outPos] = (byte)((
// [_____210]
// [876__________________________]
((in[30 + inPos] & 536870911) >>> 26)
| // [76543___]
// [________________________43210]
((in[31 + inPos] & 536870911) << 3)) & 255);
out[113 + outPos] = (byte)((
// [76543210]
// [________________21098765_____]
((in[31 + inPos] & 536870911) >>> 5)) & 255);
out[114 + outPos] = (byte)((
// [76543210]
// [________09876543_____________]
((in[31 + inPos] & 536870911) >>> 13)) & 255);
out[115 + outPos] = (byte)((
// [76543210]
// [87654321_____________________]
((in[31 + inPos] & 536870911) >>> 21)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in[ 3 + inPos]) << 24) & 536870911);
out[ 1 + outPos] =
// [765_____]
// [__________________________210]
((((int)in[ 3 + inPos]) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in[ 4 + inPos]) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in[ 5 + inPos]) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in[ 6 + inPos]) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in[ 7 + inPos]) << 27) & 536870911);
out[ 2 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in[ 7 + inPos]) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in[ 8 + inPos]) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in[ 9 + inPos]) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in[10 + inPos]) << 22) & 536870911);
out[ 3 + outPos] =
// [7_______]
// [____________________________0]
((((int)in[10 + inPos]) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in[11 + inPos]) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in[12 + inPos]) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in[13 + inPos]) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in[14 + inPos]) << 25) & 536870911);
out[ 4 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in[14 + inPos]) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in[15 + inPos]) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in[16 + inPos]) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in[17 + inPos]) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in[18 + inPos]) << 28) & 536870911);
out[ 5 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in[18 + inPos]) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in[19 + inPos]) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in[20 + inPos]) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in[21 + inPos]) << 23) & 536870911);
out[ 6 + outPos] =
// [76______]
// [___________________________10]
((((int)in[21 + inPos]) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in[22 + inPos]) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in[23 + inPos]) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in[24 + inPos]) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in[25 + inPos]) << 26) & 536870911);
out[ 7 + outPos] =
// [76543___]
// [________________________43210]
((((int)in[25 + inPos]) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in[26 + inPos]) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in[27 + inPos]) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in[28 + inPos]) << 21) & 536870911);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in.get( 3 + inPos)) << 24) & 536870911);
out[ 1 + outPos] =
// [765_____]
// [__________________________210]
((((int)in.get( 3 + inPos)) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in.get( 4 + inPos)) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in.get( 5 + inPos)) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in.get( 6 + inPos)) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in.get( 7 + inPos)) << 27) & 536870911);
out[ 2 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in.get( 7 + inPos)) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in.get( 8 + inPos)) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in.get( 9 + inPos)) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in.get(10 + inPos)) << 22) & 536870911);
out[ 3 + outPos] =
// [7_______]
// [____________________________0]
((((int)in.get(10 + inPos)) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in.get(11 + inPos)) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in.get(12 + inPos)) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in.get(13 + inPos)) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in.get(14 + inPos)) << 25) & 536870911);
out[ 4 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in.get(14 + inPos)) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in.get(15 + inPos)) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in.get(16 + inPos)) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in.get(17 + inPos)) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in.get(18 + inPos)) << 28) & 536870911);
out[ 5 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in.get(18 + inPos)) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in.get(19 + inPos)) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in.get(20 + inPos)) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in.get(21 + inPos)) << 23) & 536870911);
out[ 6 + outPos] =
// [76______]
// [___________________________10]
((((int)in.get(21 + inPos)) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in.get(22 + inPos)) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in.get(23 + inPos)) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in.get(24 + inPos)) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in.get(25 + inPos)) << 26) & 536870911);
out[ 7 + outPos] =
// [76543___]
// [________________________43210]
((((int)in.get(25 + inPos)) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in.get(26 + inPos)) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in.get(27 + inPos)) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in.get(28 + inPos)) << 21) & 536870911);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in[ 3 + inPos]) << 24) & 536870911);
out[ 1 + outPos] =
// [765_____]
// [__________________________210]
((((int)in[ 3 + inPos]) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in[ 4 + inPos]) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in[ 5 + inPos]) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in[ 6 + inPos]) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in[ 7 + inPos]) << 27) & 536870911);
out[ 2 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in[ 7 + inPos]) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in[ 8 + inPos]) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in[ 9 + inPos]) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in[10 + inPos]) << 22) & 536870911);
out[ 3 + outPos] =
// [7_______]
// [____________________________0]
((((int)in[10 + inPos]) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in[11 + inPos]) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in[12 + inPos]) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in[13 + inPos]) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in[14 + inPos]) << 25) & 536870911);
out[ 4 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in[14 + inPos]) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in[15 + inPos]) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in[16 + inPos]) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in[17 + inPos]) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in[18 + inPos]) << 28) & 536870911);
out[ 5 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in[18 + inPos]) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in[19 + inPos]) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in[20 + inPos]) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in[21 + inPos]) << 23) & 536870911);
out[ 6 + outPos] =
// [76______]
// [___________________________10]
((((int)in[21 + inPos]) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in[22 + inPos]) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in[23 + inPos]) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in[24 + inPos]) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in[25 + inPos]) << 26) & 536870911);
out[ 7 + outPos] =
// [76543___]
// [________________________43210]
((((int)in[25 + inPos]) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in[26 + inPos]) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in[27 + inPos]) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in[28 + inPos]) << 21) & 536870911);
out[ 8 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in[29 + inPos]) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in[30 + inPos]) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in[31 + inPos]) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in[32 + inPos]) << 24) & 536870911);
out[ 9 + outPos] =
// [765_____]
// [__________________________210]
((((int)in[32 + inPos]) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in[33 + inPos]) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in[34 + inPos]) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in[35 + inPos]) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in[36 + inPos]) << 27) & 536870911);
out[10 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in[36 + inPos]) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in[37 + inPos]) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in[38 + inPos]) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in[39 + inPos]) << 22) & 536870911);
out[11 + outPos] =
// [7_______]
// [____________________________0]
((((int)in[39 + inPos]) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in[40 + inPos]) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in[41 + inPos]) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in[42 + inPos]) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in[43 + inPos]) << 25) & 536870911);
out[12 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in[43 + inPos]) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in[44 + inPos]) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in[45 + inPos]) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in[46 + inPos]) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in[47 + inPos]) << 28) & 536870911);
out[13 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in[47 + inPos]) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in[48 + inPos]) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in[49 + inPos]) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in[50 + inPos]) << 23) & 536870911);
out[14 + outPos] =
// [76______]
// [___________________________10]
((((int)in[50 + inPos]) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in[51 + inPos]) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in[52 + inPos]) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in[53 + inPos]) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in[54 + inPos]) << 26) & 536870911);
out[15 + outPos] =
// [76543___]
// [________________________43210]
((((int)in[54 + inPos]) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in[55 + inPos]) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in[56 + inPos]) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in[57 + inPos]) << 21) & 536870911);
out[16 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in[58 + inPos]) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in[59 + inPos]) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in[60 + inPos]) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in[61 + inPos]) << 24) & 536870911);
out[17 + outPos] =
// [765_____]
// [__________________________210]
((((int)in[61 + inPos]) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in[62 + inPos]) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in[63 + inPos]) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in[64 + inPos]) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in[65 + inPos]) << 27) & 536870911);
out[18 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in[65 + inPos]) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in[66 + inPos]) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in[67 + inPos]) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in[68 + inPos]) << 22) & 536870911);
out[19 + outPos] =
// [7_______]
// [____________________________0]
((((int)in[68 + inPos]) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in[69 + inPos]) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in[70 + inPos]) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in[71 + inPos]) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in[72 + inPos]) << 25) & 536870911);
out[20 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in[72 + inPos]) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in[73 + inPos]) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in[74 + inPos]) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in[75 + inPos]) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in[76 + inPos]) << 28) & 536870911);
out[21 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in[76 + inPos]) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in[77 + inPos]) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in[78 + inPos]) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in[79 + inPos]) << 23) & 536870911);
out[22 + outPos] =
// [76______]
// [___________________________10]
((((int)in[79 + inPos]) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in[80 + inPos]) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in[81 + inPos]) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in[82 + inPos]) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in[83 + inPos]) << 26) & 536870911);
out[23 + outPos] =
// [76543___]
// [________________________43210]
((((int)in[83 + inPos]) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in[84 + inPos]) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in[85 + inPos]) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in[86 + inPos]) << 21) & 536870911);
out[24 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in[87 + inPos]) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in[88 + inPos]) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in[89 + inPos]) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in[90 + inPos]) << 24) & 536870911);
out[25 + outPos] =
// [765_____]
// [__________________________210]
((((int)in[90 + inPos]) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in[91 + inPos]) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in[92 + inPos]) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in[93 + inPos]) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in[94 + inPos]) << 27) & 536870911);
out[26 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in[94 + inPos]) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in[95 + inPos]) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in[96 + inPos]) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in[97 + inPos]) << 22) & 536870911);
out[27 + outPos] =
// [7_______]
// [____________________________0]
((((int)in[97 + inPos]) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in[98 + inPos]) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in[99 + inPos]) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in[100 + inPos]) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in[101 + inPos]) << 25) & 536870911);
out[28 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in[101 + inPos]) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in[102 + inPos]) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in[103 + inPos]) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in[104 + inPos]) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in[105 + inPos]) << 28) & 536870911);
out[29 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in[105 + inPos]) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in[106 + inPos]) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in[107 + inPos]) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in[108 + inPos]) << 23) & 536870911);
out[30 + outPos] =
// [76______]
// [___________________________10]
((((int)in[108 + inPos]) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in[109 + inPos]) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in[110 + inPos]) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in[111 + inPos]) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in[112 + inPos]) << 26) & 536870911);
out[31 + outPos] =
// [76543___]
// [________________________43210]
((((int)in[112 + inPos]) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in[113 + inPos]) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in[114 + inPos]) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in[115 + inPos]) << 21) & 536870911);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in.get( 3 + inPos)) << 24) & 536870911);
out[ 1 + outPos] =
// [765_____]
// [__________________________210]
((((int)in.get( 3 + inPos)) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in.get( 4 + inPos)) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in.get( 5 + inPos)) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in.get( 6 + inPos)) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in.get( 7 + inPos)) << 27) & 536870911);
out[ 2 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in.get( 7 + inPos)) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in.get( 8 + inPos)) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in.get( 9 + inPos)) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in.get(10 + inPos)) << 22) & 536870911);
out[ 3 + outPos] =
// [7_______]
// [____________________________0]
((((int)in.get(10 + inPos)) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in.get(11 + inPos)) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in.get(12 + inPos)) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in.get(13 + inPos)) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in.get(14 + inPos)) << 25) & 536870911);
out[ 4 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in.get(14 + inPos)) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in.get(15 + inPos)) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in.get(16 + inPos)) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in.get(17 + inPos)) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in.get(18 + inPos)) << 28) & 536870911);
out[ 5 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in.get(18 + inPos)) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in.get(19 + inPos)) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in.get(20 + inPos)) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in.get(21 + inPos)) << 23) & 536870911);
out[ 6 + outPos] =
// [76______]
// [___________________________10]
((((int)in.get(21 + inPos)) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in.get(22 + inPos)) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in.get(23 + inPos)) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in.get(24 + inPos)) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in.get(25 + inPos)) << 26) & 536870911);
out[ 7 + outPos] =
// [76543___]
// [________________________43210]
((((int)in.get(25 + inPos)) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in.get(26 + inPos)) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in.get(27 + inPos)) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in.get(28 + inPos)) << 21) & 536870911);
out[ 8 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in.get(29 + inPos)) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in.get(30 + inPos)) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in.get(31 + inPos)) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in.get(32 + inPos)) << 24) & 536870911);
out[ 9 + outPos] =
// [765_____]
// [__________________________210]
((((int)in.get(32 + inPos)) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in.get(33 + inPos)) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in.get(34 + inPos)) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in.get(35 + inPos)) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in.get(36 + inPos)) << 27) & 536870911);
out[10 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in.get(36 + inPos)) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in.get(37 + inPos)) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in.get(38 + inPos)) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in.get(39 + inPos)) << 22) & 536870911);
out[11 + outPos] =
// [7_______]
// [____________________________0]
((((int)in.get(39 + inPos)) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in.get(40 + inPos)) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in.get(41 + inPos)) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in.get(42 + inPos)) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in.get(43 + inPos)) << 25) & 536870911);
out[12 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in.get(43 + inPos)) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in.get(44 + inPos)) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in.get(45 + inPos)) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in.get(46 + inPos)) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in.get(47 + inPos)) << 28) & 536870911);
out[13 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in.get(47 + inPos)) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in.get(48 + inPos)) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in.get(49 + inPos)) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in.get(50 + inPos)) << 23) & 536870911);
out[14 + outPos] =
// [76______]
// [___________________________10]
((((int)in.get(50 + inPos)) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in.get(51 + inPos)) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in.get(52 + inPos)) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in.get(53 + inPos)) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in.get(54 + inPos)) << 26) & 536870911);
out[15 + outPos] =
// [76543___]
// [________________________43210]
((((int)in.get(54 + inPos)) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in.get(55 + inPos)) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in.get(56 + inPos)) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in.get(57 + inPos)) << 21) & 536870911);
out[16 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in.get(58 + inPos)) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in.get(59 + inPos)) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in.get(60 + inPos)) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in.get(61 + inPos)) << 24) & 536870911);
out[17 + outPos] =
// [765_____]
// [__________________________210]
((((int)in.get(61 + inPos)) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in.get(62 + inPos)) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in.get(63 + inPos)) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in.get(64 + inPos)) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in.get(65 + inPos)) << 27) & 536870911);
out[18 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in.get(65 + inPos)) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in.get(66 + inPos)) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in.get(67 + inPos)) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in.get(68 + inPos)) << 22) & 536870911);
out[19 + outPos] =
// [7_______]
// [____________________________0]
((((int)in.get(68 + inPos)) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in.get(69 + inPos)) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in.get(70 + inPos)) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in.get(71 + inPos)) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in.get(72 + inPos)) << 25) & 536870911);
out[20 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in.get(72 + inPos)) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in.get(73 + inPos)) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in.get(74 + inPos)) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in.get(75 + inPos)) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in.get(76 + inPos)) << 28) & 536870911);
out[21 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in.get(76 + inPos)) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in.get(77 + inPos)) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in.get(78 + inPos)) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in.get(79 + inPos)) << 23) & 536870911);
out[22 + outPos] =
// [76______]
// [___________________________10]
((((int)in.get(79 + inPos)) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in.get(80 + inPos)) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in.get(81 + inPos)) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in.get(82 + inPos)) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in.get(83 + inPos)) << 26) & 536870911);
out[23 + outPos] =
// [76543___]
// [________________________43210]
((((int)in.get(83 + inPos)) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in.get(84 + inPos)) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in.get(85 + inPos)) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in.get(86 + inPos)) << 21) & 536870911);
out[24 + outPos] =
// [76543210]
// [_____________________76543210]
((((int)in.get(87 + inPos)) ) & 255)
| // [76543210]
// [_____________54321098________]
((((int)in.get(88 + inPos)) << 8) & 65535)
| // [76543210]
// [_____32109876________________]
((((int)in.get(89 + inPos)) << 16) & 16777215)
| // [___43210]
// [87654________________________]
((((int)in.get(90 + inPos)) << 24) & 536870911);
out[25 + outPos] =
// [765_____]
// [__________________________210]
((((int)in.get(90 + inPos)) >> 5) & 7)
| // [76543210]
// [__________________09876543___]
((((int)in.get(91 + inPos)) << 3) & 2047)
| // [76543210]
// [__________87654321___________]
((((int)in.get(92 + inPos)) << 11) & 524287)
| // [76543210]
// [__65432109___________________]
((((int)in.get(93 + inPos)) << 19) & 134217727)
| // [______10]
// [87___________________________]
((((int)in.get(94 + inPos)) << 27) & 536870911);
out[26 + outPos] =
// [765432__]
// [_______________________543210]
((((int)in.get(94 + inPos)) >> 2) & 63)
| // [76543210]
// [_______________32109876______]
((((int)in.get(95 + inPos)) << 6) & 16383)
| // [76543210]
// [_______10987654______________]
((((int)in.get(96 + inPos)) << 14) & 4194303)
| // [_6543210]
// [8765432______________________]
((((int)in.get(97 + inPos)) << 22) & 536870911);
out[27 + outPos] =
// [7_______]
// [____________________________0]
((((int)in.get(97 + inPos)) >> 7) & 1)
| // [76543210]
// [____________________87654321_]
((((int)in.get(98 + inPos)) << 1) & 511)
| // [76543210]
// [____________65432109_________]
((((int)in.get(99 + inPos)) << 9) & 131071)
| // [76543210]
// [____43210987_________________]
((((int)in.get(100 + inPos)) << 17) & 33554431)
| // [____3210]
// [8765_________________________]
((((int)in.get(101 + inPos)) << 25) & 536870911);
out[28 + outPos] =
// [7654____]
// [_________________________3210]
((((int)in.get(101 + inPos)) >> 4) & 15)
| // [76543210]
// [_________________10987654____]
((((int)in.get(102 + inPos)) << 4) & 4095)
| // [76543210]
// [_________98765432____________]
((((int)in.get(103 + inPos)) << 12) & 1048575)
| // [76543210]
// [_76543210____________________]
((((int)in.get(104 + inPos)) << 20) & 268435455)
| // [_______0]
// [8____________________________]
((((int)in.get(105 + inPos)) << 28) & 536870911);
out[29 + outPos] =
// [7654321_]
// [______________________6543210]
((((int)in.get(105 + inPos)) >> 1) & 127)
| // [76543210]
// [______________43210987_______]
((((int)in.get(106 + inPos)) << 7) & 32767)
| // [76543210]
// [______21098765_______________]
((((int)in.get(107 + inPos)) << 15) & 8388607)
| // [__543210]
// [876543_______________________]
((((int)in.get(108 + inPos)) << 23) & 536870911);
out[30 + outPos] =
// [76______]
// [___________________________10]
((((int)in.get(108 + inPos)) >> 6) & 3)
| // [76543210]
// [___________________98765432__]
((((int)in.get(109 + inPos)) << 2) & 1023)
| // [76543210]
// [___________76543210__________]
((((int)in.get(110 + inPos)) << 10) & 262143)
| // [76543210]
// [___54321098__________________]
((((int)in.get(111 + inPos)) << 18) & 67108863)
| // [_____210]
// [876__________________________]
((((int)in.get(112 + inPos)) << 26) & 536870911);
out[31 + outPos] =
// [76543___]
// [________________________43210]
((((int)in.get(112 + inPos)) >> 3) & 31)
| // [76543210]
// [________________21098765_____]
((((int)in.get(113 + inPos)) << 5) & 8191)
| // [76543210]
// [________09876543_____________]
((((int)in.get(114 + inPos)) << 13) & 2097151)
| // [76543210]
// [87654321_____________________]
((((int)in.get(115 + inPos)) << 21) & 536870911);
}
}
private static final class Packer30 extends BytePacker {
private Packer30() {
super(30);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[ 0 + inPos] & 1073741823))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[ 0 + inPos] & 1073741823) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[ 0 + inPos] & 1073741823) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[ 0 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[ 1 + inPos] & 1073741823) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[ 1 + inPos] & 1073741823) >>> 2)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[ 1 + inPos] & 1073741823) >>> 10)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[ 1 + inPos] & 1073741823) >>> 18)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[ 1 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[ 2 + inPos] & 1073741823) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[ 2 + inPos] & 1073741823) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[ 2 + inPos] & 1073741823) >>> 12)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[ 2 + inPos] & 1073741823) >>> 20)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[ 2 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[ 3 + inPos] & 1073741823) << 2)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[ 3 + inPos] & 1073741823) >>> 6)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[ 3 + inPos] & 1073741823) >>> 14)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[ 3 + inPos] & 1073741823) >>> 22)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[ 4 + inPos] & 1073741823))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[ 4 + inPos] & 1073741823) >>> 8)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[ 4 + inPos] & 1073741823) >>> 16)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[ 4 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[ 5 + inPos] & 1073741823) << 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[ 5 + inPos] & 1073741823) >>> 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[ 5 + inPos] & 1073741823) >>> 10)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[ 5 + inPos] & 1073741823) >>> 18)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[ 5 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[ 6 + inPos] & 1073741823) << 4)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[ 6 + inPos] & 1073741823) >>> 4)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[ 6 + inPos] & 1073741823) >>> 12)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[ 6 + inPos] & 1073741823) >>> 20)) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[ 6 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[ 7 + inPos] & 1073741823) << 2)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[ 7 + inPos] & 1073741823) >>> 6)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[ 7 + inPos] & 1073741823) >>> 14)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[ 7 + inPos] & 1073741823) >>> 22)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[ 0 + inPos] & 1073741823))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[ 0 + inPos] & 1073741823) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[ 0 + inPos] & 1073741823) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[ 0 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[ 1 + inPos] & 1073741823) << 6)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[ 1 + inPos] & 1073741823) >>> 2)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[ 1 + inPos] & 1073741823) >>> 10)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[ 1 + inPos] & 1073741823) >>> 18)) & 255);
out[ 7 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[ 1 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[ 2 + inPos] & 1073741823) << 4)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[ 2 + inPos] & 1073741823) >>> 4)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[ 2 + inPos] & 1073741823) >>> 12)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[ 2 + inPos] & 1073741823) >>> 20)) & 255);
out[11 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[ 2 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[ 3 + inPos] & 1073741823) << 2)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[ 3 + inPos] & 1073741823) >>> 6)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[ 3 + inPos] & 1073741823) >>> 14)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[ 3 + inPos] & 1073741823) >>> 22)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[ 4 + inPos] & 1073741823))) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[ 4 + inPos] & 1073741823) >>> 8)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[ 4 + inPos] & 1073741823) >>> 16)) & 255);
out[18 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[ 4 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[ 5 + inPos] & 1073741823) << 6)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[ 5 + inPos] & 1073741823) >>> 2)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[ 5 + inPos] & 1073741823) >>> 10)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[ 5 + inPos] & 1073741823) >>> 18)) & 255);
out[22 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[ 5 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[ 6 + inPos] & 1073741823) << 4)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[ 6 + inPos] & 1073741823) >>> 4)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[ 6 + inPos] & 1073741823) >>> 12)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[ 6 + inPos] & 1073741823) >>> 20)) & 255);
out[26 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[ 6 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[ 7 + inPos] & 1073741823) << 2)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[ 7 + inPos] & 1073741823) >>> 6)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[ 7 + inPos] & 1073741823) >>> 14)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[ 7 + inPos] & 1073741823) >>> 22)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[ 8 + inPos] & 1073741823))) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[ 8 + inPos] & 1073741823) >>> 8)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[ 8 + inPos] & 1073741823) >>> 16)) & 255);
out[33 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[ 8 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[ 9 + inPos] & 1073741823) << 6)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[ 9 + inPos] & 1073741823) >>> 2)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[ 9 + inPos] & 1073741823) >>> 10)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[ 9 + inPos] & 1073741823) >>> 18)) & 255);
out[37 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[ 9 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[10 + inPos] & 1073741823) << 4)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[10 + inPos] & 1073741823) >>> 4)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[10 + inPos] & 1073741823) >>> 12)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[10 + inPos] & 1073741823) >>> 20)) & 255);
out[41 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[10 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[11 + inPos] & 1073741823) << 2)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[11 + inPos] & 1073741823) >>> 6)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[11 + inPos] & 1073741823) >>> 14)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[11 + inPos] & 1073741823) >>> 22)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[12 + inPos] & 1073741823))) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[12 + inPos] & 1073741823) >>> 8)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[12 + inPos] & 1073741823) >>> 16)) & 255);
out[48 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[12 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[13 + inPos] & 1073741823) << 6)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[13 + inPos] & 1073741823) >>> 2)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[13 + inPos] & 1073741823) >>> 10)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[13 + inPos] & 1073741823) >>> 18)) & 255);
out[52 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[13 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[14 + inPos] & 1073741823) << 4)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[14 + inPos] & 1073741823) >>> 4)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[14 + inPos] & 1073741823) >>> 12)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[14 + inPos] & 1073741823) >>> 20)) & 255);
out[56 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[14 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[15 + inPos] & 1073741823) << 2)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[15 + inPos] & 1073741823) >>> 6)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[15 + inPos] & 1073741823) >>> 14)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[15 + inPos] & 1073741823) >>> 22)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[16 + inPos] & 1073741823))) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[16 + inPos] & 1073741823) >>> 8)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[16 + inPos] & 1073741823) >>> 16)) & 255);
out[63 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[16 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[17 + inPos] & 1073741823) << 6)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[17 + inPos] & 1073741823) >>> 2)) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[17 + inPos] & 1073741823) >>> 10)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[17 + inPos] & 1073741823) >>> 18)) & 255);
out[67 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[17 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[18 + inPos] & 1073741823) << 4)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[18 + inPos] & 1073741823) >>> 4)) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[18 + inPos] & 1073741823) >>> 12)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[18 + inPos] & 1073741823) >>> 20)) & 255);
out[71 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[18 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[19 + inPos] & 1073741823) << 2)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[19 + inPos] & 1073741823) >>> 6)) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[19 + inPos] & 1073741823) >>> 14)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[19 + inPos] & 1073741823) >>> 22)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[20 + inPos] & 1073741823))) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[20 + inPos] & 1073741823) >>> 8)) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[20 + inPos] & 1073741823) >>> 16)) & 255);
out[78 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[20 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[21 + inPos] & 1073741823) << 6)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[21 + inPos] & 1073741823) >>> 2)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[21 + inPos] & 1073741823) >>> 10)) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[21 + inPos] & 1073741823) >>> 18)) & 255);
out[82 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[21 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[22 + inPos] & 1073741823) << 4)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[22 + inPos] & 1073741823) >>> 4)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[22 + inPos] & 1073741823) >>> 12)) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[22 + inPos] & 1073741823) >>> 20)) & 255);
out[86 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[22 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[23 + inPos] & 1073741823) << 2)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[23 + inPos] & 1073741823) >>> 6)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[23 + inPos] & 1073741823) >>> 14)) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[23 + inPos] & 1073741823) >>> 22)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[24 + inPos] & 1073741823))) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[24 + inPos] & 1073741823) >>> 8)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[24 + inPos] & 1073741823) >>> 16)) & 255);
out[93 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[24 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[25 + inPos] & 1073741823) << 6)) & 255);
out[94 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[25 + inPos] & 1073741823) >>> 2)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[25 + inPos] & 1073741823) >>> 10)) & 255);
out[96 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[25 + inPos] & 1073741823) >>> 18)) & 255);
out[97 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[25 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[26 + inPos] & 1073741823) << 4)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[26 + inPos] & 1073741823) >>> 4)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[26 + inPos] & 1073741823) >>> 12)) & 255);
out[100 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[26 + inPos] & 1073741823) >>> 20)) & 255);
out[101 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[26 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[27 + inPos] & 1073741823) << 2)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[27 + inPos] & 1073741823) >>> 6)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[27 + inPos] & 1073741823) >>> 14)) & 255);
out[104 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[27 + inPos] & 1073741823) >>> 22)) & 255);
out[105 + outPos] = (byte)((
// [76543210]
// [______________________76543210]
((in[28 + inPos] & 1073741823))) & 255);
out[106 + outPos] = (byte)((
// [76543210]
// [______________54321098________]
((in[28 + inPos] & 1073741823) >>> 8)) & 255);
out[107 + outPos] = (byte)((
// [76543210]
// [______32109876________________]
((in[28 + inPos] & 1073741823) >>> 16)) & 255);
out[108 + outPos] = (byte)((
// [__543210]
// [987654________________________]
((in[28 + inPos] & 1073741823) >>> 24)
| // [76______]
// [____________________________10]
((in[29 + inPos] & 1073741823) << 6)) & 255);
out[109 + outPos] = (byte)((
// [76543210]
// [____________________98765432__]
((in[29 + inPos] & 1073741823) >>> 2)) & 255);
out[110 + outPos] = (byte)((
// [76543210]
// [____________76543210__________]
((in[29 + inPos] & 1073741823) >>> 10)) & 255);
out[111 + outPos] = (byte)((
// [76543210]
// [____54321098__________________]
((in[29 + inPos] & 1073741823) >>> 18)) & 255);
out[112 + outPos] = (byte)((
// [____3210]
// [9876__________________________]
((in[29 + inPos] & 1073741823) >>> 26)
| // [7654____]
// [__________________________3210]
((in[30 + inPos] & 1073741823) << 4)) & 255);
out[113 + outPos] = (byte)((
// [76543210]
// [__________________10987654____]
((in[30 + inPos] & 1073741823) >>> 4)) & 255);
out[114 + outPos] = (byte)((
// [76543210]
// [__________98765432____________]
((in[30 + inPos] & 1073741823) >>> 12)) & 255);
out[115 + outPos] = (byte)((
// [76543210]
// [__76543210____________________]
((in[30 + inPos] & 1073741823) >>> 20)) & 255);
out[116 + outPos] = (byte)((
// [______10]
// [98____________________________]
((in[30 + inPos] & 1073741823) >>> 28)
| // [765432__]
// [________________________543210]
((in[31 + inPos] & 1073741823) << 2)) & 255);
out[117 + outPos] = (byte)((
// [76543210]
// [________________32109876______]
((in[31 + inPos] & 1073741823) >>> 6)) & 255);
out[118 + outPos] = (byte)((
// [76543210]
// [________10987654______________]
((in[31 + inPos] & 1073741823) >>> 14)) & 255);
out[119 + outPos] = (byte)((
// [76543210]
// [98765432______________________]
((in[31 + inPos] & 1073741823) >>> 22)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[ 3 + inPos]) << 24) & 1073741823);
out[ 1 + outPos] =
// [76______]
// [____________________________10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[ 4 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[ 5 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[ 6 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[ 7 + inPos]) << 26) & 1073741823);
out[ 2 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[ 9 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[10 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[11 + inPos]) << 28) & 1073741823);
out[ 3 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[12 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[13 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[14 + inPos]) << 22) & 1073741823);
out[ 4 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[15 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[16 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[17 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[18 + inPos]) << 24) & 1073741823);
out[ 5 + outPos] =
// [76______]
// [____________________________10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[19 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[20 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[21 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[22 + inPos]) << 26) & 1073741823);
out[ 6 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[23 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[24 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[25 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[26 + inPos]) << 28) & 1073741823);
out[ 7 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[27 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[28 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[29 + inPos]) << 22) & 1073741823);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get( 3 + inPos)) << 24) & 1073741823);
out[ 1 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get( 4 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get( 5 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get( 6 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get( 7 + inPos)) << 26) & 1073741823);
out[ 2 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get( 9 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(10 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(11 + inPos)) << 28) & 1073741823);
out[ 3 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(12 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(13 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(14 + inPos)) << 22) & 1073741823);
out[ 4 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(16 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(17 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(18 + inPos)) << 24) & 1073741823);
out[ 5 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(19 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(20 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(21 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(22 + inPos)) << 26) & 1073741823);
out[ 6 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(23 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(24 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(25 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(26 + inPos)) << 28) & 1073741823);
out[ 7 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(27 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(28 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(29 + inPos)) << 22) & 1073741823);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[ 3 + inPos]) << 24) & 1073741823);
out[ 1 + outPos] =
// [76______]
// [____________________________10]
((((int)in[ 3 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[ 4 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[ 5 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[ 6 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[ 7 + inPos]) << 26) & 1073741823);
out[ 2 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[ 7 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[ 8 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[ 9 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[10 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[11 + inPos]) << 28) & 1073741823);
out[ 3 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[11 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[12 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[13 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[14 + inPos]) << 22) & 1073741823);
out[ 4 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[15 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[16 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[17 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[18 + inPos]) << 24) & 1073741823);
out[ 5 + outPos] =
// [76______]
// [____________________________10]
((((int)in[18 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[19 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[20 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[21 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[22 + inPos]) << 26) & 1073741823);
out[ 6 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[22 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[23 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[24 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[25 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[26 + inPos]) << 28) & 1073741823);
out[ 7 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[26 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[27 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[28 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[29 + inPos]) << 22) & 1073741823);
out[ 8 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[30 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[31 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[32 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[33 + inPos]) << 24) & 1073741823);
out[ 9 + outPos] =
// [76______]
// [____________________________10]
((((int)in[33 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[34 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[35 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[36 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[37 + inPos]) << 26) & 1073741823);
out[10 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[37 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[38 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[39 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[40 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[41 + inPos]) << 28) & 1073741823);
out[11 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[41 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[42 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[43 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[44 + inPos]) << 22) & 1073741823);
out[12 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[45 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[46 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[47 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[48 + inPos]) << 24) & 1073741823);
out[13 + outPos] =
// [76______]
// [____________________________10]
((((int)in[48 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[49 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[50 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[51 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[52 + inPos]) << 26) & 1073741823);
out[14 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[52 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[53 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[54 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[55 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[56 + inPos]) << 28) & 1073741823);
out[15 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[56 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[57 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[58 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[59 + inPos]) << 22) & 1073741823);
out[16 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[60 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[61 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[62 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[63 + inPos]) << 24) & 1073741823);
out[17 + outPos] =
// [76______]
// [____________________________10]
((((int)in[63 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[64 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[65 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[66 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[67 + inPos]) << 26) & 1073741823);
out[18 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[67 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[68 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[69 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[70 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[71 + inPos]) << 28) & 1073741823);
out[19 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[71 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[72 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[73 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[74 + inPos]) << 22) & 1073741823);
out[20 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[75 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[76 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[77 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[78 + inPos]) << 24) & 1073741823);
out[21 + outPos] =
// [76______]
// [____________________________10]
((((int)in[78 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[79 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[80 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[81 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[82 + inPos]) << 26) & 1073741823);
out[22 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[82 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[83 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[84 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[85 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[86 + inPos]) << 28) & 1073741823);
out[23 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[86 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[87 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[88 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[89 + inPos]) << 22) & 1073741823);
out[24 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[90 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[91 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[92 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[93 + inPos]) << 24) & 1073741823);
out[25 + outPos] =
// [76______]
// [____________________________10]
((((int)in[93 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[94 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[95 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[96 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[97 + inPos]) << 26) & 1073741823);
out[26 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[97 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[98 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[99 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[100 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[101 + inPos]) << 28) & 1073741823);
out[27 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[101 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[102 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[103 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[104 + inPos]) << 22) & 1073741823);
out[28 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in[105 + inPos]) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in[106 + inPos]) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in[107 + inPos]) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in[108 + inPos]) << 24) & 1073741823);
out[29 + outPos] =
// [76______]
// [____________________________10]
((((int)in[108 + inPos]) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in[109 + inPos]) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in[110 + inPos]) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in[111 + inPos]) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in[112 + inPos]) << 26) & 1073741823);
out[30 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in[112 + inPos]) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in[113 + inPos]) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in[114 + inPos]) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in[115 + inPos]) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in[116 + inPos]) << 28) & 1073741823);
out[31 + outPos] =
// [765432__]
// [________________________543210]
((((int)in[116 + inPos]) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in[117 + inPos]) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in[118 + inPos]) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in[119 + inPos]) << 22) & 1073741823);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get( 3 + inPos)) << 24) & 1073741823);
out[ 1 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get( 3 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get( 4 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get( 5 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get( 6 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get( 7 + inPos)) << 26) & 1073741823);
out[ 2 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get( 7 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get( 8 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get( 9 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(10 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(11 + inPos)) << 28) & 1073741823);
out[ 3 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(11 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(12 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(13 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(14 + inPos)) << 22) & 1073741823);
out[ 4 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(15 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(16 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(17 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(18 + inPos)) << 24) & 1073741823);
out[ 5 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(18 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(19 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(20 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(21 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(22 + inPos)) << 26) & 1073741823);
out[ 6 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(22 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(23 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(24 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(25 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(26 + inPos)) << 28) & 1073741823);
out[ 7 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(26 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(27 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(28 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(29 + inPos)) << 22) & 1073741823);
out[ 8 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(30 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(31 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(32 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(33 + inPos)) << 24) & 1073741823);
out[ 9 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(33 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(34 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(35 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(36 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(37 + inPos)) << 26) & 1073741823);
out[10 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(37 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(38 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(39 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(40 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(41 + inPos)) << 28) & 1073741823);
out[11 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(41 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(42 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(43 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(44 + inPos)) << 22) & 1073741823);
out[12 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(45 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(46 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(47 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(48 + inPos)) << 24) & 1073741823);
out[13 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(48 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(49 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(50 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(51 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(52 + inPos)) << 26) & 1073741823);
out[14 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(52 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(53 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(54 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(55 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(56 + inPos)) << 28) & 1073741823);
out[15 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(56 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(57 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(58 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(59 + inPos)) << 22) & 1073741823);
out[16 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(60 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(61 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(62 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(63 + inPos)) << 24) & 1073741823);
out[17 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(63 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(64 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(65 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(66 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(67 + inPos)) << 26) & 1073741823);
out[18 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(67 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(68 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(69 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(70 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(71 + inPos)) << 28) & 1073741823);
out[19 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(71 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(72 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(73 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(74 + inPos)) << 22) & 1073741823);
out[20 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(75 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(76 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(77 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(78 + inPos)) << 24) & 1073741823);
out[21 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(78 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(79 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(80 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(81 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(82 + inPos)) << 26) & 1073741823);
out[22 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(82 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(83 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(84 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(85 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(86 + inPos)) << 28) & 1073741823);
out[23 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(86 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(87 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(88 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(89 + inPos)) << 22) & 1073741823);
out[24 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(90 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(91 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(92 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(93 + inPos)) << 24) & 1073741823);
out[25 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(93 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(94 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(95 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(96 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(97 + inPos)) << 26) & 1073741823);
out[26 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(97 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(98 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(99 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(100 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(101 + inPos)) << 28) & 1073741823);
out[27 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(101 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(102 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(103 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(104 + inPos)) << 22) & 1073741823);
out[28 + outPos] =
// [76543210]
// [______________________76543210]
((((int)in.get(105 + inPos)) ) & 255)
| // [76543210]
// [______________54321098________]
((((int)in.get(106 + inPos)) << 8) & 65535)
| // [76543210]
// [______32109876________________]
((((int)in.get(107 + inPos)) << 16) & 16777215)
| // [__543210]
// [987654________________________]
((((int)in.get(108 + inPos)) << 24) & 1073741823);
out[29 + outPos] =
// [76______]
// [____________________________10]
((((int)in.get(108 + inPos)) >> 6) & 3)
| // [76543210]
// [____________________98765432__]
((((int)in.get(109 + inPos)) << 2) & 1023)
| // [76543210]
// [____________76543210__________]
((((int)in.get(110 + inPos)) << 10) & 262143)
| // [76543210]
// [____54321098__________________]
((((int)in.get(111 + inPos)) << 18) & 67108863)
| // [____3210]
// [9876__________________________]
((((int)in.get(112 + inPos)) << 26) & 1073741823);
out[30 + outPos] =
// [7654____]
// [__________________________3210]
((((int)in.get(112 + inPos)) >> 4) & 15)
| // [76543210]
// [__________________10987654____]
((((int)in.get(113 + inPos)) << 4) & 4095)
| // [76543210]
// [__________98765432____________]
((((int)in.get(114 + inPos)) << 12) & 1048575)
| // [76543210]
// [__76543210____________________]
((((int)in.get(115 + inPos)) << 20) & 268435455)
| // [______10]
// [98____________________________]
((((int)in.get(116 + inPos)) << 28) & 1073741823);
out[31 + outPos] =
// [765432__]
// [________________________543210]
((((int)in.get(116 + inPos)) >> 2) & 63)
| // [76543210]
// [________________32109876______]
((((int)in.get(117 + inPos)) << 6) & 16383)
| // [76543210]
// [________10987654______________]
((((int)in.get(118 + inPos)) << 14) & 4194303)
| // [76543210]
// [98765432______________________]
((((int)in.get(119 + inPos)) << 22) & 1073741823);
}
}
private static final class Packer31 extends BytePacker {
private Packer31() {
super(31);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_______________________76543210]
((in[ 0 + inPos] & 2147483647))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_______________54321098________]
((in[ 0 + inPos] & 2147483647) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [_______32109876________________]
((in[ 0 + inPos] & 2147483647) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [_6543210]
// [0987654________________________]
((in[ 0 + inPos] & 2147483647) >>> 24)
| // [7_______]
// [______________________________0]
((in[ 1 + inPos] & 2147483647) << 7)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [______________________87654321_]
((in[ 1 + inPos] & 2147483647) >>> 1)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [______________65432109_________]
((in[ 1 + inPos] & 2147483647) >>> 9)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [______43210987_________________]
((in[ 1 + inPos] & 2147483647) >>> 17)) & 255);
out[ 7 + outPos] = (byte)((
// [__543210]
// [098765_________________________]
((in[ 1 + inPos] & 2147483647) >>> 25)
| // [76______]
// [_____________________________10]
((in[ 2 + inPos] & 2147483647) << 6)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [_____________________98765432__]
((in[ 2 + inPos] & 2147483647) >>> 2)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_____________76543210__________]
((in[ 2 + inPos] & 2147483647) >>> 10)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [_____54321098__________________]
((in[ 2 + inPos] & 2147483647) >>> 18)) & 255);
out[11 + outPos] = (byte)((
// [___43210]
// [09876__________________________]
((in[ 2 + inPos] & 2147483647) >>> 26)
| // [765_____]
// [____________________________210]
((in[ 3 + inPos] & 2147483647) << 5)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____________________09876543___]
((in[ 3 + inPos] & 2147483647) >>> 3)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [____________87654321___________]
((in[ 3 + inPos] & 2147483647) >>> 11)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [____65432109___________________]
((in[ 3 + inPos] & 2147483647) >>> 19)) & 255);
out[15 + outPos] = (byte)((
// [____3210]
// [0987___________________________]
((in[ 3 + inPos] & 2147483647) >>> 27)
| // [7654____]
// [___________________________3210]
((in[ 4 + inPos] & 2147483647) << 4)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [___________________10987654____]
((in[ 4 + inPos] & 2147483647) >>> 4)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [___________98765432____________]
((in[ 4 + inPos] & 2147483647) >>> 12)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [___76543210____________________]
((in[ 4 + inPos] & 2147483647) >>> 20)) & 255);
out[19 + outPos] = (byte)((
// [_____210]
// [098____________________________]
((in[ 4 + inPos] & 2147483647) >>> 28)
| // [76543___]
// [__________________________43210]
((in[ 5 + inPos] & 2147483647) << 3)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [__________________21098765_____]
((in[ 5 + inPos] & 2147483647) >>> 5)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [__________09876543_____________]
((in[ 5 + inPos] & 2147483647) >>> 13)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [__87654321_____________________]
((in[ 5 + inPos] & 2147483647) >>> 21)) & 255);
out[23 + outPos] = (byte)((
// [______10]
// [09_____________________________]
((in[ 5 + inPos] & 2147483647) >>> 29)
| // [765432__]
// [_________________________543210]
((in[ 6 + inPos] & 2147483647) << 2)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [_________________32109876______]
((in[ 6 + inPos] & 2147483647) >>> 6)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [_________10987654______________]
((in[ 6 + inPos] & 2147483647) >>> 14)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [_98765432______________________]
((in[ 6 + inPos] & 2147483647) >>> 22)) & 255);
out[27 + outPos] = (byte)((
// [_______0]
// [0______________________________]
((in[ 6 + inPos] & 2147483647) >>> 30)
| // [7654321_]
// [________________________6543210]
((in[ 7 + inPos] & 2147483647) << 1)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________________43210987_______]
((in[ 7 + inPos] & 2147483647) >>> 7)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [________21098765_______________]
((in[ 7 + inPos] & 2147483647) >>> 15)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [09876543_______________________]
((in[ 7 + inPos] & 2147483647) >>> 23)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [_______________________76543210]
((in[ 0 + inPos] & 2147483647))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [_______________54321098________]
((in[ 0 + inPos] & 2147483647) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [_______32109876________________]
((in[ 0 + inPos] & 2147483647) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [_6543210]
// [0987654________________________]
((in[ 0 + inPos] & 2147483647) >>> 24)
| // [7_______]
// [______________________________0]
((in[ 1 + inPos] & 2147483647) << 7)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [______________________87654321_]
((in[ 1 + inPos] & 2147483647) >>> 1)) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [______________65432109_________]
((in[ 1 + inPos] & 2147483647) >>> 9)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [______43210987_________________]
((in[ 1 + inPos] & 2147483647) >>> 17)) & 255);
out[ 7 + outPos] = (byte)((
// [__543210]
// [098765_________________________]
((in[ 1 + inPos] & 2147483647) >>> 25)
| // [76______]
// [_____________________________10]
((in[ 2 + inPos] & 2147483647) << 6)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [_____________________98765432__]
((in[ 2 + inPos] & 2147483647) >>> 2)) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [_____________76543210__________]
((in[ 2 + inPos] & 2147483647) >>> 10)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [_____54321098__________________]
((in[ 2 + inPos] & 2147483647) >>> 18)) & 255);
out[11 + outPos] = (byte)((
// [___43210]
// [09876__________________________]
((in[ 2 + inPos] & 2147483647) >>> 26)
| // [765_____]
// [____________________________210]
((in[ 3 + inPos] & 2147483647) << 5)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [____________________09876543___]
((in[ 3 + inPos] & 2147483647) >>> 3)) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [____________87654321___________]
((in[ 3 + inPos] & 2147483647) >>> 11)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [____65432109___________________]
((in[ 3 + inPos] & 2147483647) >>> 19)) & 255);
out[15 + outPos] = (byte)((
// [____3210]
// [0987___________________________]
((in[ 3 + inPos] & 2147483647) >>> 27)
| // [7654____]
// [___________________________3210]
((in[ 4 + inPos] & 2147483647) << 4)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [___________________10987654____]
((in[ 4 + inPos] & 2147483647) >>> 4)) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [___________98765432____________]
((in[ 4 + inPos] & 2147483647) >>> 12)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [___76543210____________________]
((in[ 4 + inPos] & 2147483647) >>> 20)) & 255);
out[19 + outPos] = (byte)((
// [_____210]
// [098____________________________]
((in[ 4 + inPos] & 2147483647) >>> 28)
| // [76543___]
// [__________________________43210]
((in[ 5 + inPos] & 2147483647) << 3)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [__________________21098765_____]
((in[ 5 + inPos] & 2147483647) >>> 5)) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [__________09876543_____________]
((in[ 5 + inPos] & 2147483647) >>> 13)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [__87654321_____________________]
((in[ 5 + inPos] & 2147483647) >>> 21)) & 255);
out[23 + outPos] = (byte)((
// [______10]
// [09_____________________________]
((in[ 5 + inPos] & 2147483647) >>> 29)
| // [765432__]
// [_________________________543210]
((in[ 6 + inPos] & 2147483647) << 2)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [_________________32109876______]
((in[ 6 + inPos] & 2147483647) >>> 6)) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [_________10987654______________]
((in[ 6 + inPos] & 2147483647) >>> 14)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [_98765432______________________]
((in[ 6 + inPos] & 2147483647) >>> 22)) & 255);
out[27 + outPos] = (byte)((
// [_______0]
// [0______________________________]
((in[ 6 + inPos] & 2147483647) >>> 30)
| // [7654321_]
// [________________________6543210]
((in[ 7 + inPos] & 2147483647) << 1)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________________43210987_______]
((in[ 7 + inPos] & 2147483647) >>> 7)) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [________21098765_______________]
((in[ 7 + inPos] & 2147483647) >>> 15)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [09876543_______________________]
((in[ 7 + inPos] & 2147483647) >>> 23)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [_______________________76543210]
((in[ 8 + inPos] & 2147483647))) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [_______________54321098________]
((in[ 8 + inPos] & 2147483647) >>> 8)) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [_______32109876________________]
((in[ 8 + inPos] & 2147483647) >>> 16)) & 255);
out[34 + outPos] = (byte)((
// [_6543210]
// [0987654________________________]
((in[ 8 + inPos] & 2147483647) >>> 24)
| // [7_______]
// [______________________________0]
((in[ 9 + inPos] & 2147483647) << 7)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [______________________87654321_]
((in[ 9 + inPos] & 2147483647) >>> 1)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [______________65432109_________]
((in[ 9 + inPos] & 2147483647) >>> 9)) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [______43210987_________________]
((in[ 9 + inPos] & 2147483647) >>> 17)) & 255);
out[38 + outPos] = (byte)((
// [__543210]
// [098765_________________________]
((in[ 9 + inPos] & 2147483647) >>> 25)
| // [76______]
// [_____________________________10]
((in[10 + inPos] & 2147483647) << 6)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [_____________________98765432__]
((in[10 + inPos] & 2147483647) >>> 2)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [_____________76543210__________]
((in[10 + inPos] & 2147483647) >>> 10)) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [_____54321098__________________]
((in[10 + inPos] & 2147483647) >>> 18)) & 255);
out[42 + outPos] = (byte)((
// [___43210]
// [09876__________________________]
((in[10 + inPos] & 2147483647) >>> 26)
| // [765_____]
// [____________________________210]
((in[11 + inPos] & 2147483647) << 5)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [____________________09876543___]
((in[11 + inPos] & 2147483647) >>> 3)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [____________87654321___________]
((in[11 + inPos] & 2147483647) >>> 11)) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [____65432109___________________]
((in[11 + inPos] & 2147483647) >>> 19)) & 255);
out[46 + outPos] = (byte)((
// [____3210]
// [0987___________________________]
((in[11 + inPos] & 2147483647) >>> 27)
| // [7654____]
// [___________________________3210]
((in[12 + inPos] & 2147483647) << 4)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [___________________10987654____]
((in[12 + inPos] & 2147483647) >>> 4)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [___________98765432____________]
((in[12 + inPos] & 2147483647) >>> 12)) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [___76543210____________________]
((in[12 + inPos] & 2147483647) >>> 20)) & 255);
out[50 + outPos] = (byte)((
// [_____210]
// [098____________________________]
((in[12 + inPos] & 2147483647) >>> 28)
| // [76543___]
// [__________________________43210]
((in[13 + inPos] & 2147483647) << 3)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [__________________21098765_____]
((in[13 + inPos] & 2147483647) >>> 5)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [__________09876543_____________]
((in[13 + inPos] & 2147483647) >>> 13)) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [__87654321_____________________]
((in[13 + inPos] & 2147483647) >>> 21)) & 255);
out[54 + outPos] = (byte)((
// [______10]
// [09_____________________________]
((in[13 + inPos] & 2147483647) >>> 29)
| // [765432__]
// [_________________________543210]
((in[14 + inPos] & 2147483647) << 2)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [_________________32109876______]
((in[14 + inPos] & 2147483647) >>> 6)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [_________10987654______________]
((in[14 + inPos] & 2147483647) >>> 14)) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [_98765432______________________]
((in[14 + inPos] & 2147483647) >>> 22)) & 255);
out[58 + outPos] = (byte)((
// [_______0]
// [0______________________________]
((in[14 + inPos] & 2147483647) >>> 30)
| // [7654321_]
// [________________________6543210]
((in[15 + inPos] & 2147483647) << 1)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [________________43210987_______]
((in[15 + inPos] & 2147483647) >>> 7)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [________21098765_______________]
((in[15 + inPos] & 2147483647) >>> 15)) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [09876543_______________________]
((in[15 + inPos] & 2147483647) >>> 23)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [_______________________76543210]
((in[16 + inPos] & 2147483647))) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [_______________54321098________]
((in[16 + inPos] & 2147483647) >>> 8)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [_______32109876________________]
((in[16 + inPos] & 2147483647) >>> 16)) & 255);
out[65 + outPos] = (byte)((
// [_6543210]
// [0987654________________________]
((in[16 + inPos] & 2147483647) >>> 24)
| // [7_______]
// [______________________________0]
((in[17 + inPos] & 2147483647) << 7)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [______________________87654321_]
((in[17 + inPos] & 2147483647) >>> 1)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [______________65432109_________]
((in[17 + inPos] & 2147483647) >>> 9)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [______43210987_________________]
((in[17 + inPos] & 2147483647) >>> 17)) & 255);
out[69 + outPos] = (byte)((
// [__543210]
// [098765_________________________]
((in[17 + inPos] & 2147483647) >>> 25)
| // [76______]
// [_____________________________10]
((in[18 + inPos] & 2147483647) << 6)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [_____________________98765432__]
((in[18 + inPos] & 2147483647) >>> 2)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [_____________76543210__________]
((in[18 + inPos] & 2147483647) >>> 10)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [_____54321098__________________]
((in[18 + inPos] & 2147483647) >>> 18)) & 255);
out[73 + outPos] = (byte)((
// [___43210]
// [09876__________________________]
((in[18 + inPos] & 2147483647) >>> 26)
| // [765_____]
// [____________________________210]
((in[19 + inPos] & 2147483647) << 5)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [____________________09876543___]
((in[19 + inPos] & 2147483647) >>> 3)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [____________87654321___________]
((in[19 + inPos] & 2147483647) >>> 11)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [____65432109___________________]
((in[19 + inPos] & 2147483647) >>> 19)) & 255);
out[77 + outPos] = (byte)((
// [____3210]
// [0987___________________________]
((in[19 + inPos] & 2147483647) >>> 27)
| // [7654____]
// [___________________________3210]
((in[20 + inPos] & 2147483647) << 4)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [___________________10987654____]
((in[20 + inPos] & 2147483647) >>> 4)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [___________98765432____________]
((in[20 + inPos] & 2147483647) >>> 12)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [___76543210____________________]
((in[20 + inPos] & 2147483647) >>> 20)) & 255);
out[81 + outPos] = (byte)((
// [_____210]
// [098____________________________]
((in[20 + inPos] & 2147483647) >>> 28)
| // [76543___]
// [__________________________43210]
((in[21 + inPos] & 2147483647) << 3)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [__________________21098765_____]
((in[21 + inPos] & 2147483647) >>> 5)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [__________09876543_____________]
((in[21 + inPos] & 2147483647) >>> 13)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [__87654321_____________________]
((in[21 + inPos] & 2147483647) >>> 21)) & 255);
out[85 + outPos] = (byte)((
// [______10]
// [09_____________________________]
((in[21 + inPos] & 2147483647) >>> 29)
| // [765432__]
// [_________________________543210]
((in[22 + inPos] & 2147483647) << 2)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [_________________32109876______]
((in[22 + inPos] & 2147483647) >>> 6)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [_________10987654______________]
((in[22 + inPos] & 2147483647) >>> 14)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [_98765432______________________]
((in[22 + inPos] & 2147483647) >>> 22)) & 255);
out[89 + outPos] = (byte)((
// [_______0]
// [0______________________________]
((in[22 + inPos] & 2147483647) >>> 30)
| // [7654321_]
// [________________________6543210]
((in[23 + inPos] & 2147483647) << 1)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [________________43210987_______]
((in[23 + inPos] & 2147483647) >>> 7)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [________21098765_______________]
((in[23 + inPos] & 2147483647) >>> 15)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [09876543_______________________]
((in[23 + inPos] & 2147483647) >>> 23)) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [_______________________76543210]
((in[24 + inPos] & 2147483647))) & 255);
out[94 + outPos] = (byte)((
// [76543210]
// [_______________54321098________]
((in[24 + inPos] & 2147483647) >>> 8)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [_______32109876________________]
((in[24 + inPos] & 2147483647) >>> 16)) & 255);
out[96 + outPos] = (byte)((
// [_6543210]
// [0987654________________________]
((in[24 + inPos] & 2147483647) >>> 24)
| // [7_______]
// [______________________________0]
((in[25 + inPos] & 2147483647) << 7)) & 255);
out[97 + outPos] = (byte)((
// [76543210]
// [______________________87654321_]
((in[25 + inPos] & 2147483647) >>> 1)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [______________65432109_________]
((in[25 + inPos] & 2147483647) >>> 9)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [______43210987_________________]
((in[25 + inPos] & 2147483647) >>> 17)) & 255);
out[100 + outPos] = (byte)((
// [__543210]
// [098765_________________________]
((in[25 + inPos] & 2147483647) >>> 25)
| // [76______]
// [_____________________________10]
((in[26 + inPos] & 2147483647) << 6)) & 255);
out[101 + outPos] = (byte)((
// [76543210]
// [_____________________98765432__]
((in[26 + inPos] & 2147483647) >>> 2)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [_____________76543210__________]
((in[26 + inPos] & 2147483647) >>> 10)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [_____54321098__________________]
((in[26 + inPos] & 2147483647) >>> 18)) & 255);
out[104 + outPos] = (byte)((
// [___43210]
// [09876__________________________]
((in[26 + inPos] & 2147483647) >>> 26)
| // [765_____]
// [____________________________210]
((in[27 + inPos] & 2147483647) << 5)) & 255);
out[105 + outPos] = (byte)((
// [76543210]
// [____________________09876543___]
((in[27 + inPos] & 2147483647) >>> 3)) & 255);
out[106 + outPos] = (byte)((
// [76543210]
// [____________87654321___________]
((in[27 + inPos] & 2147483647) >>> 11)) & 255);
out[107 + outPos] = (byte)((
// [76543210]
// [____65432109___________________]
((in[27 + inPos] & 2147483647) >>> 19)) & 255);
out[108 + outPos] = (byte)((
// [____3210]
// [0987___________________________]
((in[27 + inPos] & 2147483647) >>> 27)
| // [7654____]
// [___________________________3210]
((in[28 + inPos] & 2147483647) << 4)) & 255);
out[109 + outPos] = (byte)((
// [76543210]
// [___________________10987654____]
((in[28 + inPos] & 2147483647) >>> 4)) & 255);
out[110 + outPos] = (byte)((
// [76543210]
// [___________98765432____________]
((in[28 + inPos] & 2147483647) >>> 12)) & 255);
out[111 + outPos] = (byte)((
// [76543210]
// [___76543210____________________]
((in[28 + inPos] & 2147483647) >>> 20)) & 255);
out[112 + outPos] = (byte)((
// [_____210]
// [098____________________________]
((in[28 + inPos] & 2147483647) >>> 28)
| // [76543___]
// [__________________________43210]
((in[29 + inPos] & 2147483647) << 3)) & 255);
out[113 + outPos] = (byte)((
// [76543210]
// [__________________21098765_____]
((in[29 + inPos] & 2147483647) >>> 5)) & 255);
out[114 + outPos] = (byte)((
// [76543210]
// [__________09876543_____________]
((in[29 + inPos] & 2147483647) >>> 13)) & 255);
out[115 + outPos] = (byte)((
// [76543210]
// [__87654321_____________________]
((in[29 + inPos] & 2147483647) >>> 21)) & 255);
out[116 + outPos] = (byte)((
// [______10]
// [09_____________________________]
((in[29 + inPos] & 2147483647) >>> 29)
| // [765432__]
// [_________________________543210]
((in[30 + inPos] & 2147483647) << 2)) & 255);
out[117 + outPos] = (byte)((
// [76543210]
// [_________________32109876______]
((in[30 + inPos] & 2147483647) >>> 6)) & 255);
out[118 + outPos] = (byte)((
// [76543210]
// [_________10987654______________]
((in[30 + inPos] & 2147483647) >>> 14)) & 255);
out[119 + outPos] = (byte)((
// [76543210]
// [_98765432______________________]
((in[30 + inPos] & 2147483647) >>> 22)) & 255);
out[120 + outPos] = (byte)((
// [_______0]
// [0______________________________]
((in[30 + inPos] & 2147483647) >>> 30)
| // [7654321_]
// [________________________6543210]
((in[31 + inPos] & 2147483647) << 1)) & 255);
out[121 + outPos] = (byte)((
// [76543210]
// [________________43210987_______]
((in[31 + inPos] & 2147483647) >>> 7)) & 255);
out[122 + outPos] = (byte)((
// [76543210]
// [________21098765_______________]
((in[31 + inPos] & 2147483647) >>> 15)) & 255);
out[123 + outPos] = (byte)((
// [76543210]
// [09876543_______________________]
((in[31 + inPos] & 2147483647) >>> 23)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in[ 3 + inPos]) << 24) & 2147483647);
out[ 1 + outPos] =
// [7_______]
// [______________________________0]
((((int)in[ 3 + inPos]) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in[ 4 + inPos]) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in[ 5 + inPos]) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in[ 6 + inPos]) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in[ 7 + inPos]) << 25) & 2147483647);
out[ 2 + outPos] =
// [76______]
// [_____________________________10]
((((int)in[ 7 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in[ 8 + inPos]) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in[ 9 + inPos]) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in[10 + inPos]) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in[11 + inPos]) << 26) & 2147483647);
out[ 3 + outPos] =
// [765_____]
// [____________________________210]
((((int)in[11 + inPos]) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in[12 + inPos]) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in[13 + inPos]) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in[14 + inPos]) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in[15 + inPos]) << 27) & 2147483647);
out[ 4 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in[15 + inPos]) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in[16 + inPos]) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in[17 + inPos]) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in[18 + inPos]) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in[19 + inPos]) << 28) & 2147483647);
out[ 5 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in[19 + inPos]) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in[20 + inPos]) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in[21 + inPos]) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in[22 + inPos]) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in[23 + inPos]) << 29) & 2147483647);
out[ 6 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in[23 + inPos]) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in[24 + inPos]) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in[25 + inPos]) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in[26 + inPos]) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in[27 + inPos]) << 30) & 2147483647);
out[ 7 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in[27 + inPos]) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in[28 + inPos]) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in[29 + inPos]) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in[30 + inPos]) << 23) & 2147483647);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in.get( 3 + inPos)) << 24) & 2147483647);
out[ 1 + outPos] =
// [7_______]
// [______________________________0]
((((int)in.get( 3 + inPos)) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in.get( 4 + inPos)) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in.get( 5 + inPos)) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in.get( 6 + inPos)) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in.get( 7 + inPos)) << 25) & 2147483647);
out[ 2 + outPos] =
// [76______]
// [_____________________________10]
((((int)in.get( 7 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in.get( 8 + inPos)) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in.get( 9 + inPos)) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in.get(10 + inPos)) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in.get(11 + inPos)) << 26) & 2147483647);
out[ 3 + outPos] =
// [765_____]
// [____________________________210]
((((int)in.get(11 + inPos)) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in.get(12 + inPos)) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in.get(13 + inPos)) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in.get(14 + inPos)) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in.get(15 + inPos)) << 27) & 2147483647);
out[ 4 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in.get(15 + inPos)) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in.get(16 + inPos)) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in.get(17 + inPos)) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in.get(18 + inPos)) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in.get(19 + inPos)) << 28) & 2147483647);
out[ 5 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in.get(19 + inPos)) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in.get(20 + inPos)) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in.get(21 + inPos)) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in.get(22 + inPos)) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in.get(23 + inPos)) << 29) & 2147483647);
out[ 6 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in.get(23 + inPos)) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in.get(24 + inPos)) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in.get(25 + inPos)) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in.get(26 + inPos)) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in.get(27 + inPos)) << 30) & 2147483647);
out[ 7 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in.get(27 + inPos)) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in.get(28 + inPos)) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in.get(29 + inPos)) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in.get(30 + inPos)) << 23) & 2147483647);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in[ 3 + inPos]) << 24) & 2147483647);
out[ 1 + outPos] =
// [7_______]
// [______________________________0]
((((int)in[ 3 + inPos]) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in[ 4 + inPos]) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in[ 5 + inPos]) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in[ 6 + inPos]) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in[ 7 + inPos]) << 25) & 2147483647);
out[ 2 + outPos] =
// [76______]
// [_____________________________10]
((((int)in[ 7 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in[ 8 + inPos]) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in[ 9 + inPos]) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in[10 + inPos]) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in[11 + inPos]) << 26) & 2147483647);
out[ 3 + outPos] =
// [765_____]
// [____________________________210]
((((int)in[11 + inPos]) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in[12 + inPos]) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in[13 + inPos]) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in[14 + inPos]) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in[15 + inPos]) << 27) & 2147483647);
out[ 4 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in[15 + inPos]) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in[16 + inPos]) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in[17 + inPos]) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in[18 + inPos]) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in[19 + inPos]) << 28) & 2147483647);
out[ 5 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in[19 + inPos]) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in[20 + inPos]) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in[21 + inPos]) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in[22 + inPos]) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in[23 + inPos]) << 29) & 2147483647);
out[ 6 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in[23 + inPos]) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in[24 + inPos]) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in[25 + inPos]) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in[26 + inPos]) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in[27 + inPos]) << 30) & 2147483647);
out[ 7 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in[27 + inPos]) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in[28 + inPos]) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in[29 + inPos]) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in[30 + inPos]) << 23) & 2147483647);
out[ 8 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in[31 + inPos]) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in[32 + inPos]) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in[33 + inPos]) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in[34 + inPos]) << 24) & 2147483647);
out[ 9 + outPos] =
// [7_______]
// [______________________________0]
((((int)in[34 + inPos]) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in[35 + inPos]) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in[36 + inPos]) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in[37 + inPos]) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in[38 + inPos]) << 25) & 2147483647);
out[10 + outPos] =
// [76______]
// [_____________________________10]
((((int)in[38 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in[39 + inPos]) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in[40 + inPos]) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in[41 + inPos]) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in[42 + inPos]) << 26) & 2147483647);
out[11 + outPos] =
// [765_____]
// [____________________________210]
((((int)in[42 + inPos]) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in[43 + inPos]) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in[44 + inPos]) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in[45 + inPos]) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in[46 + inPos]) << 27) & 2147483647);
out[12 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in[46 + inPos]) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in[47 + inPos]) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in[48 + inPos]) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in[49 + inPos]) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in[50 + inPos]) << 28) & 2147483647);
out[13 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in[50 + inPos]) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in[51 + inPos]) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in[52 + inPos]) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in[53 + inPos]) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in[54 + inPos]) << 29) & 2147483647);
out[14 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in[54 + inPos]) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in[55 + inPos]) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in[56 + inPos]) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in[57 + inPos]) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in[58 + inPos]) << 30) & 2147483647);
out[15 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in[58 + inPos]) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in[59 + inPos]) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in[60 + inPos]) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in[61 + inPos]) << 23) & 2147483647);
out[16 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in[62 + inPos]) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in[63 + inPos]) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in[64 + inPos]) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in[65 + inPos]) << 24) & 2147483647);
out[17 + outPos] =
// [7_______]
// [______________________________0]
((((int)in[65 + inPos]) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in[66 + inPos]) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in[67 + inPos]) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in[68 + inPos]) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in[69 + inPos]) << 25) & 2147483647);
out[18 + outPos] =
// [76______]
// [_____________________________10]
((((int)in[69 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in[70 + inPos]) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in[71 + inPos]) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in[72 + inPos]) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in[73 + inPos]) << 26) & 2147483647);
out[19 + outPos] =
// [765_____]
// [____________________________210]
((((int)in[73 + inPos]) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in[74 + inPos]) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in[75 + inPos]) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in[76 + inPos]) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in[77 + inPos]) << 27) & 2147483647);
out[20 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in[77 + inPos]) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in[78 + inPos]) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in[79 + inPos]) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in[80 + inPos]) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in[81 + inPos]) << 28) & 2147483647);
out[21 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in[81 + inPos]) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in[82 + inPos]) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in[83 + inPos]) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in[84 + inPos]) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in[85 + inPos]) << 29) & 2147483647);
out[22 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in[85 + inPos]) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in[86 + inPos]) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in[87 + inPos]) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in[88 + inPos]) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in[89 + inPos]) << 30) & 2147483647);
out[23 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in[89 + inPos]) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in[90 + inPos]) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in[91 + inPos]) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in[92 + inPos]) << 23) & 2147483647);
out[24 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in[93 + inPos]) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in[94 + inPos]) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in[95 + inPos]) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in[96 + inPos]) << 24) & 2147483647);
out[25 + outPos] =
// [7_______]
// [______________________________0]
((((int)in[96 + inPos]) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in[97 + inPos]) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in[98 + inPos]) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in[99 + inPos]) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in[100 + inPos]) << 25) & 2147483647);
out[26 + outPos] =
// [76______]
// [_____________________________10]
((((int)in[100 + inPos]) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in[101 + inPos]) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in[102 + inPos]) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in[103 + inPos]) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in[104 + inPos]) << 26) & 2147483647);
out[27 + outPos] =
// [765_____]
// [____________________________210]
((((int)in[104 + inPos]) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in[105 + inPos]) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in[106 + inPos]) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in[107 + inPos]) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in[108 + inPos]) << 27) & 2147483647);
out[28 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in[108 + inPos]) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in[109 + inPos]) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in[110 + inPos]) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in[111 + inPos]) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in[112 + inPos]) << 28) & 2147483647);
out[29 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in[112 + inPos]) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in[113 + inPos]) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in[114 + inPos]) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in[115 + inPos]) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in[116 + inPos]) << 29) & 2147483647);
out[30 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in[116 + inPos]) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in[117 + inPos]) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in[118 + inPos]) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in[119 + inPos]) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in[120 + inPos]) << 30) & 2147483647);
out[31 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in[120 + inPos]) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in[121 + inPos]) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in[122 + inPos]) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in[123 + inPos]) << 23) & 2147483647);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in.get( 3 + inPos)) << 24) & 2147483647);
out[ 1 + outPos] =
// [7_______]
// [______________________________0]
((((int)in.get( 3 + inPos)) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in.get( 4 + inPos)) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in.get( 5 + inPos)) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in.get( 6 + inPos)) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in.get( 7 + inPos)) << 25) & 2147483647);
out[ 2 + outPos] =
// [76______]
// [_____________________________10]
((((int)in.get( 7 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in.get( 8 + inPos)) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in.get( 9 + inPos)) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in.get(10 + inPos)) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in.get(11 + inPos)) << 26) & 2147483647);
out[ 3 + outPos] =
// [765_____]
// [____________________________210]
((((int)in.get(11 + inPos)) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in.get(12 + inPos)) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in.get(13 + inPos)) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in.get(14 + inPos)) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in.get(15 + inPos)) << 27) & 2147483647);
out[ 4 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in.get(15 + inPos)) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in.get(16 + inPos)) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in.get(17 + inPos)) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in.get(18 + inPos)) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in.get(19 + inPos)) << 28) & 2147483647);
out[ 5 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in.get(19 + inPos)) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in.get(20 + inPos)) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in.get(21 + inPos)) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in.get(22 + inPos)) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in.get(23 + inPos)) << 29) & 2147483647);
out[ 6 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in.get(23 + inPos)) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in.get(24 + inPos)) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in.get(25 + inPos)) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in.get(26 + inPos)) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in.get(27 + inPos)) << 30) & 2147483647);
out[ 7 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in.get(27 + inPos)) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in.get(28 + inPos)) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in.get(29 + inPos)) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in.get(30 + inPos)) << 23) & 2147483647);
out[ 8 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in.get(31 + inPos)) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in.get(32 + inPos)) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in.get(33 + inPos)) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in.get(34 + inPos)) << 24) & 2147483647);
out[ 9 + outPos] =
// [7_______]
// [______________________________0]
((((int)in.get(34 + inPos)) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in.get(35 + inPos)) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in.get(36 + inPos)) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in.get(37 + inPos)) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in.get(38 + inPos)) << 25) & 2147483647);
out[10 + outPos] =
// [76______]
// [_____________________________10]
((((int)in.get(38 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in.get(39 + inPos)) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in.get(40 + inPos)) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in.get(41 + inPos)) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in.get(42 + inPos)) << 26) & 2147483647);
out[11 + outPos] =
// [765_____]
// [____________________________210]
((((int)in.get(42 + inPos)) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in.get(43 + inPos)) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in.get(44 + inPos)) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in.get(45 + inPos)) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in.get(46 + inPos)) << 27) & 2147483647);
out[12 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in.get(46 + inPos)) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in.get(47 + inPos)) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in.get(48 + inPos)) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in.get(49 + inPos)) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in.get(50 + inPos)) << 28) & 2147483647);
out[13 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in.get(50 + inPos)) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in.get(51 + inPos)) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in.get(52 + inPos)) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in.get(53 + inPos)) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in.get(54 + inPos)) << 29) & 2147483647);
out[14 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in.get(54 + inPos)) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in.get(55 + inPos)) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in.get(56 + inPos)) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in.get(57 + inPos)) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in.get(58 + inPos)) << 30) & 2147483647);
out[15 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in.get(58 + inPos)) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in.get(59 + inPos)) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in.get(60 + inPos)) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in.get(61 + inPos)) << 23) & 2147483647);
out[16 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in.get(62 + inPos)) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in.get(63 + inPos)) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in.get(64 + inPos)) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in.get(65 + inPos)) << 24) & 2147483647);
out[17 + outPos] =
// [7_______]
// [______________________________0]
((((int)in.get(65 + inPos)) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in.get(66 + inPos)) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in.get(67 + inPos)) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in.get(68 + inPos)) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in.get(69 + inPos)) << 25) & 2147483647);
out[18 + outPos] =
// [76______]
// [_____________________________10]
((((int)in.get(69 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in.get(70 + inPos)) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in.get(71 + inPos)) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in.get(72 + inPos)) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in.get(73 + inPos)) << 26) & 2147483647);
out[19 + outPos] =
// [765_____]
// [____________________________210]
((((int)in.get(73 + inPos)) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in.get(74 + inPos)) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in.get(75 + inPos)) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in.get(76 + inPos)) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in.get(77 + inPos)) << 27) & 2147483647);
out[20 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in.get(77 + inPos)) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in.get(78 + inPos)) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in.get(79 + inPos)) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in.get(80 + inPos)) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in.get(81 + inPos)) << 28) & 2147483647);
out[21 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in.get(81 + inPos)) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in.get(82 + inPos)) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in.get(83 + inPos)) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in.get(84 + inPos)) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in.get(85 + inPos)) << 29) & 2147483647);
out[22 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in.get(85 + inPos)) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in.get(86 + inPos)) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in.get(87 + inPos)) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in.get(88 + inPos)) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in.get(89 + inPos)) << 30) & 2147483647);
out[23 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in.get(89 + inPos)) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in.get(90 + inPos)) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in.get(91 + inPos)) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in.get(92 + inPos)) << 23) & 2147483647);
out[24 + outPos] =
// [76543210]
// [_______________________76543210]
((((int)in.get(93 + inPos)) ) & 255)
| // [76543210]
// [_______________54321098________]
((((int)in.get(94 + inPos)) << 8) & 65535)
| // [76543210]
// [_______32109876________________]
((((int)in.get(95 + inPos)) << 16) & 16777215)
| // [_6543210]
// [0987654________________________]
((((int)in.get(96 + inPos)) << 24) & 2147483647);
out[25 + outPos] =
// [7_______]
// [______________________________0]
((((int)in.get(96 + inPos)) >> 7) & 1)
| // [76543210]
// [______________________87654321_]
((((int)in.get(97 + inPos)) << 1) & 511)
| // [76543210]
// [______________65432109_________]
((((int)in.get(98 + inPos)) << 9) & 131071)
| // [76543210]
// [______43210987_________________]
((((int)in.get(99 + inPos)) << 17) & 33554431)
| // [__543210]
// [098765_________________________]
((((int)in.get(100 + inPos)) << 25) & 2147483647);
out[26 + outPos] =
// [76______]
// [_____________________________10]
((((int)in.get(100 + inPos)) >> 6) & 3)
| // [76543210]
// [_____________________98765432__]
((((int)in.get(101 + inPos)) << 2) & 1023)
| // [76543210]
// [_____________76543210__________]
((((int)in.get(102 + inPos)) << 10) & 262143)
| // [76543210]
// [_____54321098__________________]
((((int)in.get(103 + inPos)) << 18) & 67108863)
| // [___43210]
// [09876__________________________]
((((int)in.get(104 + inPos)) << 26) & 2147483647);
out[27 + outPos] =
// [765_____]
// [____________________________210]
((((int)in.get(104 + inPos)) >> 5) & 7)
| // [76543210]
// [____________________09876543___]
((((int)in.get(105 + inPos)) << 3) & 2047)
| // [76543210]
// [____________87654321___________]
((((int)in.get(106 + inPos)) << 11) & 524287)
| // [76543210]
// [____65432109___________________]
((((int)in.get(107 + inPos)) << 19) & 134217727)
| // [____3210]
// [0987___________________________]
((((int)in.get(108 + inPos)) << 27) & 2147483647);
out[28 + outPos] =
// [7654____]
// [___________________________3210]
((((int)in.get(108 + inPos)) >> 4) & 15)
| // [76543210]
// [___________________10987654____]
((((int)in.get(109 + inPos)) << 4) & 4095)
| // [76543210]
// [___________98765432____________]
((((int)in.get(110 + inPos)) << 12) & 1048575)
| // [76543210]
// [___76543210____________________]
((((int)in.get(111 + inPos)) << 20) & 268435455)
| // [_____210]
// [098____________________________]
((((int)in.get(112 + inPos)) << 28) & 2147483647);
out[29 + outPos] =
// [76543___]
// [__________________________43210]
((((int)in.get(112 + inPos)) >> 3) & 31)
| // [76543210]
// [__________________21098765_____]
((((int)in.get(113 + inPos)) << 5) & 8191)
| // [76543210]
// [__________09876543_____________]
((((int)in.get(114 + inPos)) << 13) & 2097151)
| // [76543210]
// [__87654321_____________________]
((((int)in.get(115 + inPos)) << 21) & 536870911)
| // [______10]
// [09_____________________________]
((((int)in.get(116 + inPos)) << 29) & 2147483647);
out[30 + outPos] =
// [765432__]
// [_________________________543210]
((((int)in.get(116 + inPos)) >> 2) & 63)
| // [76543210]
// [_________________32109876______]
((((int)in.get(117 + inPos)) << 6) & 16383)
| // [76543210]
// [_________10987654______________]
((((int)in.get(118 + inPos)) << 14) & 4194303)
| // [76543210]
// [_98765432______________________]
((((int)in.get(119 + inPos)) << 22) & 1073741823)
| // [_______0]
// [0______________________________]
((((int)in.get(120 + inPos)) << 30) & 2147483647);
out[31 + outPos] =
// [7654321_]
// [________________________6543210]
((((int)in.get(120 + inPos)) >> 1) & 127)
| // [76543210]
// [________________43210987_______]
((((int)in.get(121 + inPos)) << 7) & 32767)
| // [76543210]
// [________21098765_______________]
((((int)in.get(122 + inPos)) << 15) & 8388607)
| // [76543210]
// [09876543_______________________]
((((int)in.get(123 + inPos)) << 23) & 2147483647);
}
}
private static final class Packer32 extends BytePacker {
private Packer32() {
super(32);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 0 + inPos] & -1))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 0 + inPos] & -1) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 0 + inPos] & -1) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 0 + inPos] & -1) >>> 24)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 1 + inPos] & -1))) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 1 + inPos] & -1) >>> 8)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 1 + inPos] & -1) >>> 16)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 1 + inPos] & -1) >>> 24)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 2 + inPos] & -1))) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 2 + inPos] & -1) >>> 8)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 2 + inPos] & -1) >>> 16)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 2 + inPos] & -1) >>> 24)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 3 + inPos] & -1))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 3 + inPos] & -1) >>> 8)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 3 + inPos] & -1) >>> 16)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 3 + inPos] & -1) >>> 24)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 4 + inPos] & -1))) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 4 + inPos] & -1) >>> 8)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 4 + inPos] & -1) >>> 16)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 4 + inPos] & -1) >>> 24)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 5 + inPos] & -1))) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 5 + inPos] & -1) >>> 8)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 5 + inPos] & -1) >>> 16)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 5 + inPos] & -1) >>> 24)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 6 + inPos] & -1))) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 6 + inPos] & -1) >>> 8)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 6 + inPos] & -1) >>> 16)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 6 + inPos] & -1) >>> 24)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 7 + inPos] & -1))) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 7 + inPos] & -1) >>> 8)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 7 + inPos] & -1) >>> 16)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 7 + inPos] & -1) >>> 24)) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[ 0 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 0 + inPos] & -1))) & 255);
out[ 1 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 0 + inPos] & -1) >>> 8)) & 255);
out[ 2 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 0 + inPos] & -1) >>> 16)) & 255);
out[ 3 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 0 + inPos] & -1) >>> 24)) & 255);
out[ 4 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 1 + inPos] & -1))) & 255);
out[ 5 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 1 + inPos] & -1) >>> 8)) & 255);
out[ 6 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 1 + inPos] & -1) >>> 16)) & 255);
out[ 7 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 1 + inPos] & -1) >>> 24)) & 255);
out[ 8 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 2 + inPos] & -1))) & 255);
out[ 9 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 2 + inPos] & -1) >>> 8)) & 255);
out[10 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 2 + inPos] & -1) >>> 16)) & 255);
out[11 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 2 + inPos] & -1) >>> 24)) & 255);
out[12 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 3 + inPos] & -1))) & 255);
out[13 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 3 + inPos] & -1) >>> 8)) & 255);
out[14 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 3 + inPos] & -1) >>> 16)) & 255);
out[15 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 3 + inPos] & -1) >>> 24)) & 255);
out[16 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 4 + inPos] & -1))) & 255);
out[17 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 4 + inPos] & -1) >>> 8)) & 255);
out[18 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 4 + inPos] & -1) >>> 16)) & 255);
out[19 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 4 + inPos] & -1) >>> 24)) & 255);
out[20 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 5 + inPos] & -1))) & 255);
out[21 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 5 + inPos] & -1) >>> 8)) & 255);
out[22 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 5 + inPos] & -1) >>> 16)) & 255);
out[23 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 5 + inPos] & -1) >>> 24)) & 255);
out[24 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 6 + inPos] & -1))) & 255);
out[25 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 6 + inPos] & -1) >>> 8)) & 255);
out[26 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 6 + inPos] & -1) >>> 16)) & 255);
out[27 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 6 + inPos] & -1) >>> 24)) & 255);
out[28 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 7 + inPos] & -1))) & 255);
out[29 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 7 + inPos] & -1) >>> 8)) & 255);
out[30 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 7 + inPos] & -1) >>> 16)) & 255);
out[31 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 7 + inPos] & -1) >>> 24)) & 255);
out[32 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 8 + inPos] & -1))) & 255);
out[33 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 8 + inPos] & -1) >>> 8)) & 255);
out[34 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 8 + inPos] & -1) >>> 16)) & 255);
out[35 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 8 + inPos] & -1) >>> 24)) & 255);
out[36 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[ 9 + inPos] & -1))) & 255);
out[37 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[ 9 + inPos] & -1) >>> 8)) & 255);
out[38 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[ 9 + inPos] & -1) >>> 16)) & 255);
out[39 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[ 9 + inPos] & -1) >>> 24)) & 255);
out[40 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[10 + inPos] & -1))) & 255);
out[41 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[10 + inPos] & -1) >>> 8)) & 255);
out[42 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[10 + inPos] & -1) >>> 16)) & 255);
out[43 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[10 + inPos] & -1) >>> 24)) & 255);
out[44 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[11 + inPos] & -1))) & 255);
out[45 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[11 + inPos] & -1) >>> 8)) & 255);
out[46 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[11 + inPos] & -1) >>> 16)) & 255);
out[47 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[11 + inPos] & -1) >>> 24)) & 255);
out[48 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[12 + inPos] & -1))) & 255);
out[49 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[12 + inPos] & -1) >>> 8)) & 255);
out[50 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[12 + inPos] & -1) >>> 16)) & 255);
out[51 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[12 + inPos] & -1) >>> 24)) & 255);
out[52 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[13 + inPos] & -1))) & 255);
out[53 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[13 + inPos] & -1) >>> 8)) & 255);
out[54 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[13 + inPos] & -1) >>> 16)) & 255);
out[55 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[13 + inPos] & -1) >>> 24)) & 255);
out[56 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[14 + inPos] & -1))) & 255);
out[57 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[14 + inPos] & -1) >>> 8)) & 255);
out[58 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[14 + inPos] & -1) >>> 16)) & 255);
out[59 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[14 + inPos] & -1) >>> 24)) & 255);
out[60 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[15 + inPos] & -1))) & 255);
out[61 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[15 + inPos] & -1) >>> 8)) & 255);
out[62 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[15 + inPos] & -1) >>> 16)) & 255);
out[63 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[15 + inPos] & -1) >>> 24)) & 255);
out[64 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[16 + inPos] & -1))) & 255);
out[65 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[16 + inPos] & -1) >>> 8)) & 255);
out[66 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[16 + inPos] & -1) >>> 16)) & 255);
out[67 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[16 + inPos] & -1) >>> 24)) & 255);
out[68 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[17 + inPos] & -1))) & 255);
out[69 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[17 + inPos] & -1) >>> 8)) & 255);
out[70 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[17 + inPos] & -1) >>> 16)) & 255);
out[71 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[17 + inPos] & -1) >>> 24)) & 255);
out[72 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[18 + inPos] & -1))) & 255);
out[73 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[18 + inPos] & -1) >>> 8)) & 255);
out[74 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[18 + inPos] & -1) >>> 16)) & 255);
out[75 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[18 + inPos] & -1) >>> 24)) & 255);
out[76 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[19 + inPos] & -1))) & 255);
out[77 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[19 + inPos] & -1) >>> 8)) & 255);
out[78 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[19 + inPos] & -1) >>> 16)) & 255);
out[79 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[19 + inPos] & -1) >>> 24)) & 255);
out[80 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[20 + inPos] & -1))) & 255);
out[81 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[20 + inPos] & -1) >>> 8)) & 255);
out[82 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[20 + inPos] & -1) >>> 16)) & 255);
out[83 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[20 + inPos] & -1) >>> 24)) & 255);
out[84 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[21 + inPos] & -1))) & 255);
out[85 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[21 + inPos] & -1) >>> 8)) & 255);
out[86 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[21 + inPos] & -1) >>> 16)) & 255);
out[87 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[21 + inPos] & -1) >>> 24)) & 255);
out[88 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[22 + inPos] & -1))) & 255);
out[89 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[22 + inPos] & -1) >>> 8)) & 255);
out[90 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[22 + inPos] & -1) >>> 16)) & 255);
out[91 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[22 + inPos] & -1) >>> 24)) & 255);
out[92 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[23 + inPos] & -1))) & 255);
out[93 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[23 + inPos] & -1) >>> 8)) & 255);
out[94 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[23 + inPos] & -1) >>> 16)) & 255);
out[95 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[23 + inPos] & -1) >>> 24)) & 255);
out[96 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[24 + inPos] & -1))) & 255);
out[97 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[24 + inPos] & -1) >>> 8)) & 255);
out[98 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[24 + inPos] & -1) >>> 16)) & 255);
out[99 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[24 + inPos] & -1) >>> 24)) & 255);
out[100 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[25 + inPos] & -1))) & 255);
out[101 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[25 + inPos] & -1) >>> 8)) & 255);
out[102 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[25 + inPos] & -1) >>> 16)) & 255);
out[103 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[25 + inPos] & -1) >>> 24)) & 255);
out[104 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[26 + inPos] & -1))) & 255);
out[105 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[26 + inPos] & -1) >>> 8)) & 255);
out[106 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[26 + inPos] & -1) >>> 16)) & 255);
out[107 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[26 + inPos] & -1) >>> 24)) & 255);
out[108 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[27 + inPos] & -1))) & 255);
out[109 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[27 + inPos] & -1) >>> 8)) & 255);
out[110 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[27 + inPos] & -1) >>> 16)) & 255);
out[111 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[27 + inPos] & -1) >>> 24)) & 255);
out[112 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[28 + inPos] & -1))) & 255);
out[113 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[28 + inPos] & -1) >>> 8)) & 255);
out[114 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[28 + inPos] & -1) >>> 16)) & 255);
out[115 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[28 + inPos] & -1) >>> 24)) & 255);
out[116 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[29 + inPos] & -1))) & 255);
out[117 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[29 + inPos] & -1) >>> 8)) & 255);
out[118 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[29 + inPos] & -1) >>> 16)) & 255);
out[119 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[29 + inPos] & -1) >>> 24)) & 255);
out[120 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[30 + inPos] & -1))) & 255);
out[121 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[30 + inPos] & -1) >>> 8)) & 255);
out[122 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[30 + inPos] & -1) >>> 16)) & 255);
out[123 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[30 + inPos] & -1) >>> 24)) & 255);
out[124 + outPos] = (byte)((
// [76543210]
// [________________________76543210]
((in[31 + inPos] & -1))) & 255);
out[125 + outPos] = (byte)((
// [76543210]
// [________________54321098________]
((in[31 + inPos] & -1) >>> 8)) & 255);
out[126 + outPos] = (byte)((
// [76543210]
// [________32109876________________]
((in[31 + inPos] & -1) >>> 16)) & 255);
out[127 + outPos] = (byte)((
// [76543210]
// [10987654________________________]
((in[31 + inPos] & -1) >>> 24)) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[ 3 + inPos]) << 24) & -1);
out[ 1 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[ 4 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[ 5 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[ 6 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[ 7 + inPos]) << 24) & -1);
out[ 2 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[ 8 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[ 9 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[10 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[11 + inPos]) << 24) & -1);
out[ 3 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[12 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[13 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[14 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[15 + inPos]) << 24) & -1);
out[ 4 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[16 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[17 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[18 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[19 + inPos]) << 24) & -1);
out[ 5 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[20 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[21 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[22 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[23 + inPos]) << 24) & -1);
out[ 6 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[24 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[25 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[26 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[27 + inPos]) << 24) & -1);
out[ 7 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[28 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[29 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[30 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[31 + inPos]) << 24) & -1);
}
public final void unpack8Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get( 3 + inPos)) << 24) & -1);
out[ 1 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get( 4 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get( 5 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get( 6 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get( 7 + inPos)) << 24) & -1);
out[ 2 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get( 8 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get( 9 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(10 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(11 + inPos)) << 24) & -1);
out[ 3 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(13 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(14 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(15 + inPos)) << 24) & -1);
out[ 4 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(16 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(17 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(18 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(19 + inPos)) << 24) & -1);
out[ 5 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(20 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(21 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(22 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(23 + inPos)) << 24) & -1);
out[ 6 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(24 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(25 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(26 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(27 + inPos)) << 24) & -1);
out[ 7 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(28 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(29 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(30 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(31 + inPos)) << 24) & -1);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[ 0 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[ 1 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[ 2 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[ 3 + inPos]) << 24) & -1);
out[ 1 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[ 4 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[ 5 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[ 6 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[ 7 + inPos]) << 24) & -1);
out[ 2 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[ 8 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[ 9 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[10 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[11 + inPos]) << 24) & -1);
out[ 3 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[12 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[13 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[14 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[15 + inPos]) << 24) & -1);
out[ 4 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[16 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[17 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[18 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[19 + inPos]) << 24) & -1);
out[ 5 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[20 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[21 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[22 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[23 + inPos]) << 24) & -1);
out[ 6 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[24 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[25 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[26 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[27 + inPos]) << 24) & -1);
out[ 7 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[28 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[29 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[30 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[31 + inPos]) << 24) & -1);
out[ 8 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[32 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[33 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[34 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[35 + inPos]) << 24) & -1);
out[ 9 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[36 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[37 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[38 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[39 + inPos]) << 24) & -1);
out[10 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[40 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[41 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[42 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[43 + inPos]) << 24) & -1);
out[11 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[44 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[45 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[46 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[47 + inPos]) << 24) & -1);
out[12 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[48 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[49 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[50 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[51 + inPos]) << 24) & -1);
out[13 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[52 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[53 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[54 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[55 + inPos]) << 24) & -1);
out[14 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[56 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[57 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[58 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[59 + inPos]) << 24) & -1);
out[15 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[60 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[61 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[62 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[63 + inPos]) << 24) & -1);
out[16 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[64 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[65 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[66 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[67 + inPos]) << 24) & -1);
out[17 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[68 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[69 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[70 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[71 + inPos]) << 24) & -1);
out[18 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[72 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[73 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[74 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[75 + inPos]) << 24) & -1);
out[19 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[76 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[77 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[78 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[79 + inPos]) << 24) & -1);
out[20 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[80 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[81 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[82 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[83 + inPos]) << 24) & -1);
out[21 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[84 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[85 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[86 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[87 + inPos]) << 24) & -1);
out[22 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[88 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[89 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[90 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[91 + inPos]) << 24) & -1);
out[23 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[92 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[93 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[94 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[95 + inPos]) << 24) & -1);
out[24 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[96 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[97 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[98 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[99 + inPos]) << 24) & -1);
out[25 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[100 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[101 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[102 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[103 + inPos]) << 24) & -1);
out[26 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[104 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[105 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[106 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[107 + inPos]) << 24) & -1);
out[27 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[108 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[109 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[110 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[111 + inPos]) << 24) & -1);
out[28 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[112 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[113 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[114 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[115 + inPos]) << 24) & -1);
out[29 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[116 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[117 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[118 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[119 + inPos]) << 24) & -1);
out[30 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[120 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[121 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[122 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[123 + inPos]) << 24) & -1);
out[31 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in[124 + inPos]) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in[125 + inPos]) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in[126 + inPos]) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in[127 + inPos]) << 24) & -1);
}
public final void unpack32Values(final ByteBuffer in, final int inPos, final int[] out, final int outPos) {
out[ 0 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get( 0 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get( 1 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get( 2 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get( 3 + inPos)) << 24) & -1);
out[ 1 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get( 4 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get( 5 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get( 6 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get( 7 + inPos)) << 24) & -1);
out[ 2 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get( 8 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get( 9 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(10 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(11 + inPos)) << 24) & -1);
out[ 3 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(12 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(13 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(14 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(15 + inPos)) << 24) & -1);
out[ 4 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(16 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(17 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(18 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(19 + inPos)) << 24) & -1);
out[ 5 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(20 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(21 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(22 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(23 + inPos)) << 24) & -1);
out[ 6 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(24 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(25 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(26 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(27 + inPos)) << 24) & -1);
out[ 7 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(28 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(29 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(30 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(31 + inPos)) << 24) & -1);
out[ 8 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(32 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(33 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(34 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(35 + inPos)) << 24) & -1);
out[ 9 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(36 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(37 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(38 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(39 + inPos)) << 24) & -1);
out[10 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(40 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(41 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(42 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(43 + inPos)) << 24) & -1);
out[11 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(44 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(45 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(46 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(47 + inPos)) << 24) & -1);
out[12 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(48 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(49 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(50 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(51 + inPos)) << 24) & -1);
out[13 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(52 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(53 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(54 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(55 + inPos)) << 24) & -1);
out[14 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(56 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(57 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(58 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(59 + inPos)) << 24) & -1);
out[15 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(60 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(61 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(62 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(63 + inPos)) << 24) & -1);
out[16 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(64 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(65 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(66 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(67 + inPos)) << 24) & -1);
out[17 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(68 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(69 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(70 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(71 + inPos)) << 24) & -1);
out[18 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(72 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(73 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(74 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(75 + inPos)) << 24) & -1);
out[19 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(76 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(77 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(78 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(79 + inPos)) << 24) & -1);
out[20 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(80 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(81 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(82 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(83 + inPos)) << 24) & -1);
out[21 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(84 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(85 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(86 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(87 + inPos)) << 24) & -1);
out[22 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(88 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(89 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(90 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(91 + inPos)) << 24) & -1);
out[23 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(92 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(93 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(94 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(95 + inPos)) << 24) & -1);
out[24 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(96 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(97 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(98 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(99 + inPos)) << 24) & -1);
out[25 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(100 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(101 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(102 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(103 + inPos)) << 24) & -1);
out[26 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(104 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(105 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(106 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(107 + inPos)) << 24) & -1);
out[27 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(108 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(109 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(110 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(111 + inPos)) << 24) & -1);
out[28 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(112 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(113 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(114 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(115 + inPos)) << 24) & -1);
out[29 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(116 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(117 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(118 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(119 + inPos)) << 24) & -1);
out[30 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(120 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(121 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(122 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(123 + inPos)) << 24) & -1);
out[31 + outPos] =
// [76543210]
// [________________________76543210]
((((int)in.get(124 + inPos)) ) & 255)
| // [76543210]
// [________________54321098________]
((((int)in.get(125 + inPos)) << 8) & 65535)
| // [76543210]
// [________32109876________________]
((((int)in.get(126 + inPos)) << 16) & 16777215)
| // [76543210]
// [10987654________________________]
((((int)in.get(127 + inPos)) << 24) & -1);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy