com.github.jasonruckman.sidney.bitpacking.packers.be.int32.Packer27 Maven / Gradle / Ivy
The newest version!
package com.github.jasonruckman.sidney.bitpacking.packers.be.int32;
import com.github.jasonruckman.sidney.bitpacking.Int32BytePacker;
public final class Packer27 extends Int32BytePacker {
public Packer27() {
super(27);
}
public final void pack8Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[0 + outPos] = (byte) ((
// [76543210]
// [65432109___________________]
((in[0 + inPos] & 134217727) >>> 19)) & 255);
out[1 + outPos] = (byte) ((
// [76543210]
// [________87654321___________]
((in[0 + inPos] & 134217727) >>> 11)) & 255);
out[2 + outPos] = (byte) ((
// [76543210]
// [________________09876543___]
((in[0 + inPos] & 134217727) >>> 3)) & 255);
out[3 + outPos] = (byte) ((
// [765_____]
// [________________________210]
((in[0 + inPos] & 134217727) << 5)
| // [___43210]
// [65432______________________]
((in[1 + inPos] & 134217727) >>> 22)) & 255);
out[4 + outPos] = (byte) ((
// [76543210]
// [_____10987654______________]
((in[1 + inPos] & 134217727) >>> 14)) & 255);
out[5 + outPos] = (byte) ((
// [76543210]
// [_____________32109876______]
((in[1 + inPos] & 134217727) >>> 6)) & 255);
out[6 + outPos] = (byte) ((
// [765432__]
// [_____________________543210]
((in[1 + inPos] & 134217727) << 2)
| // [______10]
// [65_________________________]
((in[2 + inPos] & 134217727) >>> 25)) & 255);
out[7 + outPos] = (byte) ((
// [76543210]
// [__43210987_________________]
((in[2 + inPos] & 134217727) >>> 17)) & 255);
out[8 + outPos] = (byte) ((
// [76543210]
// [__________65432109_________]
((in[2 + inPos] & 134217727) >>> 9)) & 255);
out[9 + outPos] = (byte) ((
// [76543210]
// [__________________87654321_]
((in[2 + inPos] & 134217727) >>> 1)) & 255);
out[10 + outPos] = (byte) ((
// [7_______]
// [__________________________0]
((in[2 + inPos] & 134217727) << 7)
| // [_6543210]
// [6543210____________________]
((in[3 + inPos] & 134217727) >>> 20)) & 255);
out[11 + outPos] = (byte) ((
// [76543210]
// [_______98765432____________]
((in[3 + inPos] & 134217727) >>> 12)) & 255);
out[12 + outPos] = (byte) ((
// [76543210]
// [_______________10987654____]
((in[3 + inPos] & 134217727) >>> 4)) & 255);
out[13 + outPos] = (byte) ((
// [7654____]
// [_______________________3210]
((in[3 + inPos] & 134217727) << 4)
| // [____3210]
// [6543_______________________]
((in[4 + inPos] & 134217727) >>> 23)) & 255);
out[14 + outPos] = (byte) ((
// [76543210]
// [____21098765_______________]
((in[4 + inPos] & 134217727) >>> 15)) & 255);
out[15 + outPos] = (byte) ((
// [76543210]
// [____________43210987_______]
((in[4 + inPos] & 134217727) >>> 7)) & 255);
out[16 + outPos] = (byte) ((
// [7654321_]
// [____________________6543210]
((in[4 + inPos] & 134217727) << 1)
| // [_______0]
// [6__________________________]
((in[5 + inPos] & 134217727) >>> 26)) & 255);
out[17 + outPos] = (byte) ((
// [76543210]
// [_54321098__________________]
((in[5 + inPos] & 134217727) >>> 18)) & 255);
out[18 + outPos] = (byte) ((
// [76543210]
// [_________76543210__________]
((in[5 + inPos] & 134217727) >>> 10)) & 255);
out[19 + outPos] = (byte) ((
// [76543210]
// [_________________98765432__]
((in[5 + inPos] & 134217727) >>> 2)) & 255);
out[20 + outPos] = (byte) ((
// [76______]
// [_________________________10]
((in[5 + inPos] & 134217727) << 6)
| // [__543210]
// [654321_____________________]
((in[6 + inPos] & 134217727) >>> 21)) & 255);
out[21 + outPos] = (byte) ((
// [76543210]
// [______09876543_____________]
((in[6 + inPos] & 134217727) >>> 13)) & 255);
out[22 + outPos] = (byte) ((
// [76543210]
// [______________21098765_____]
((in[6 + inPos] & 134217727) >>> 5)) & 255);
out[23 + outPos] = (byte) ((
// [76543___]
// [______________________43210]
((in[6 + inPos] & 134217727) << 3)
| // [_____210]
// [654________________________]
((in[7 + inPos] & 134217727) >>> 24)) & 255);
out[24 + outPos] = (byte) ((
// [76543210]
// [___32109876________________]
((in[7 + inPos] & 134217727) >>> 16)) & 255);
out[25 + outPos] = (byte) ((
// [76543210]
// [___________54321098________]
((in[7 + inPos] & 134217727) >>> 8)) & 255);
out[26 + outPos] = (byte) ((
// [76543210]
// [___________________76543210]
((in[7 + inPos] & 134217727))) & 255);
}
public final void pack32Values(final int[] in, final int inPos, final byte[] out, final int outPos) {
out[0 + outPos] = (byte) ((
// [76543210]
// [65432109___________________]
((in[0 + inPos] & 134217727) >>> 19)) & 255);
out[1 + outPos] = (byte) ((
// [76543210]
// [________87654321___________]
((in[0 + inPos] & 134217727) >>> 11)) & 255);
out[2 + outPos] = (byte) ((
// [76543210]
// [________________09876543___]
((in[0 + inPos] & 134217727) >>> 3)) & 255);
out[3 + outPos] = (byte) ((
// [765_____]
// [________________________210]
((in[0 + inPos] & 134217727) << 5)
| // [___43210]
// [65432______________________]
((in[1 + inPos] & 134217727) >>> 22)) & 255);
out[4 + outPos] = (byte) ((
// [76543210]
// [_____10987654______________]
((in[1 + inPos] & 134217727) >>> 14)) & 255);
out[5 + outPos] = (byte) ((
// [76543210]
// [_____________32109876______]
((in[1 + inPos] & 134217727) >>> 6)) & 255);
out[6 + outPos] = (byte) ((
// [765432__]
// [_____________________543210]
((in[1 + inPos] & 134217727) << 2)
| // [______10]
// [65_________________________]
((in[2 + inPos] & 134217727) >>> 25)) & 255);
out[7 + outPos] = (byte) ((
// [76543210]
// [__43210987_________________]
((in[2 + inPos] & 134217727) >>> 17)) & 255);
out[8 + outPos] = (byte) ((
// [76543210]
// [__________65432109_________]
((in[2 + inPos] & 134217727) >>> 9)) & 255);
out[9 + outPos] = (byte) ((
// [76543210]
// [__________________87654321_]
((in[2 + inPos] & 134217727) >>> 1)) & 255);
out[10 + outPos] = (byte) ((
// [7_______]
// [__________________________0]
((in[2 + inPos] & 134217727) << 7)
| // [_6543210]
// [6543210____________________]
((in[3 + inPos] & 134217727) >>> 20)) & 255);
out[11 + outPos] = (byte) ((
// [76543210]
// [_______98765432____________]
((in[3 + inPos] & 134217727) >>> 12)) & 255);
out[12 + outPos] = (byte) ((
// [76543210]
// [_______________10987654____]
((in[3 + inPos] & 134217727) >>> 4)) & 255);
out[13 + outPos] = (byte) ((
// [7654____]
// [_______________________3210]
((in[3 + inPos] & 134217727) << 4)
| // [____3210]
// [6543_______________________]
((in[4 + inPos] & 134217727) >>> 23)) & 255);
out[14 + outPos] = (byte) ((
// [76543210]
// [____21098765_______________]
((in[4 + inPos] & 134217727) >>> 15)) & 255);
out[15 + outPos] = (byte) ((
// [76543210]
// [____________43210987_______]
((in[4 + inPos] & 134217727) >>> 7)) & 255);
out[16 + outPos] = (byte) ((
// [7654321_]
// [____________________6543210]
((in[4 + inPos] & 134217727) << 1)
| // [_______0]
// [6__________________________]
((in[5 + inPos] & 134217727) >>> 26)) & 255);
out[17 + outPos] = (byte) ((
// [76543210]
// [_54321098__________________]
((in[5 + inPos] & 134217727) >>> 18)) & 255);
out[18 + outPos] = (byte) ((
// [76543210]
// [_________76543210__________]
((in[5 + inPos] & 134217727) >>> 10)) & 255);
out[19 + outPos] = (byte) ((
// [76543210]
// [_________________98765432__]
((in[5 + inPos] & 134217727) >>> 2)) & 255);
out[20 + outPos] = (byte) ((
// [76______]
// [_________________________10]
((in[5 + inPos] & 134217727) << 6)
| // [__543210]
// [654321_____________________]
((in[6 + inPos] & 134217727) >>> 21)) & 255);
out[21 + outPos] = (byte) ((
// [76543210]
// [______09876543_____________]
((in[6 + inPos] & 134217727) >>> 13)) & 255);
out[22 + outPos] = (byte) ((
// [76543210]
// [______________21098765_____]
((in[6 + inPos] & 134217727) >>> 5)) & 255);
out[23 + outPos] = (byte) ((
// [76543___]
// [______________________43210]
((in[6 + inPos] & 134217727) << 3)
| // [_____210]
// [654________________________]
((in[7 + inPos] & 134217727) >>> 24)) & 255);
out[24 + outPos] = (byte) ((
// [76543210]
// [___32109876________________]
((in[7 + inPos] & 134217727) >>> 16)) & 255);
out[25 + outPos] = (byte) ((
// [76543210]
// [___________54321098________]
((in[7 + inPos] & 134217727) >>> 8)) & 255);
out[26 + outPos] = (byte) ((
// [76543210]
// [___________________76543210]
((in[7 + inPos] & 134217727))) & 255);
out[27 + outPos] = (byte) ((
// [76543210]
// [65432109___________________]
((in[8 + inPos] & 134217727) >>> 19)) & 255);
out[28 + outPos] = (byte) ((
// [76543210]
// [________87654321___________]
((in[8 + inPos] & 134217727) >>> 11)) & 255);
out[29 + outPos] = (byte) ((
// [76543210]
// [________________09876543___]
((in[8 + inPos] & 134217727) >>> 3)) & 255);
out[30 + outPos] = (byte) ((
// [765_____]
// [________________________210]
((in[8 + inPos] & 134217727) << 5)
| // [___43210]
// [65432______________________]
((in[9 + inPos] & 134217727) >>> 22)) & 255);
out[31 + outPos] = (byte) ((
// [76543210]
// [_____10987654______________]
((in[9 + inPos] & 134217727) >>> 14)) & 255);
out[32 + outPos] = (byte) ((
// [76543210]
// [_____________32109876______]
((in[9 + inPos] & 134217727) >>> 6)) & 255);
out[33 + outPos] = (byte) ((
// [765432__]
// [_____________________543210]
((in[9 + inPos] & 134217727) << 2)
| // [______10]
// [65_________________________]
((in[10 + inPos] & 134217727) >>> 25)) & 255);
out[34 + outPos] = (byte) ((
// [76543210]
// [__43210987_________________]
((in[10 + inPos] & 134217727) >>> 17)) & 255);
out[35 + outPos] = (byte) ((
// [76543210]
// [__________65432109_________]
((in[10 + inPos] & 134217727) >>> 9)) & 255);
out[36 + outPos] = (byte) ((
// [76543210]
// [__________________87654321_]
((in[10 + inPos] & 134217727) >>> 1)) & 255);
out[37 + outPos] = (byte) ((
// [7_______]
// [__________________________0]
((in[10 + inPos] & 134217727) << 7)
| // [_6543210]
// [6543210____________________]
((in[11 + inPos] & 134217727) >>> 20)) & 255);
out[38 + outPos] = (byte) ((
// [76543210]
// [_______98765432____________]
((in[11 + inPos] & 134217727) >>> 12)) & 255);
out[39 + outPos] = (byte) ((
// [76543210]
// [_______________10987654____]
((in[11 + inPos] & 134217727) >>> 4)) & 255);
out[40 + outPos] = (byte) ((
// [7654____]
// [_______________________3210]
((in[11 + inPos] & 134217727) << 4)
| // [____3210]
// [6543_______________________]
((in[12 + inPos] & 134217727) >>> 23)) & 255);
out[41 + outPos] = (byte) ((
// [76543210]
// [____21098765_______________]
((in[12 + inPos] & 134217727) >>> 15)) & 255);
out[42 + outPos] = (byte) ((
// [76543210]
// [____________43210987_______]
((in[12 + inPos] & 134217727) >>> 7)) & 255);
out[43 + outPos] = (byte) ((
// [7654321_]
// [____________________6543210]
((in[12 + inPos] & 134217727) << 1)
| // [_______0]
// [6__________________________]
((in[13 + inPos] & 134217727) >>> 26)) & 255);
out[44 + outPos] = (byte) ((
// [76543210]
// [_54321098__________________]
((in[13 + inPos] & 134217727) >>> 18)) & 255);
out[45 + outPos] = (byte) ((
// [76543210]
// [_________76543210__________]
((in[13 + inPos] & 134217727) >>> 10)) & 255);
out[46 + outPos] = (byte) ((
// [76543210]
// [_________________98765432__]
((in[13 + inPos] & 134217727) >>> 2)) & 255);
out[47 + outPos] = (byte) ((
// [76______]
// [_________________________10]
((in[13 + inPos] & 134217727) << 6)
| // [__543210]
// [654321_____________________]
((in[14 + inPos] & 134217727) >>> 21)) & 255);
out[48 + outPos] = (byte) ((
// [76543210]
// [______09876543_____________]
((in[14 + inPos] & 134217727) >>> 13)) & 255);
out[49 + outPos] = (byte) ((
// [76543210]
// [______________21098765_____]
((in[14 + inPos] & 134217727) >>> 5)) & 255);
out[50 + outPos] = (byte) ((
// [76543___]
// [______________________43210]
((in[14 + inPos] & 134217727) << 3)
| // [_____210]
// [654________________________]
((in[15 + inPos] & 134217727) >>> 24)) & 255);
out[51 + outPos] = (byte) ((
// [76543210]
// [___32109876________________]
((in[15 + inPos] & 134217727) >>> 16)) & 255);
out[52 + outPos] = (byte) ((
// [76543210]
// [___________54321098________]
((in[15 + inPos] & 134217727) >>> 8)) & 255);
out[53 + outPos] = (byte) ((
// [76543210]
// [___________________76543210]
((in[15 + inPos] & 134217727))) & 255);
out[54 + outPos] = (byte) ((
// [76543210]
// [65432109___________________]
((in[16 + inPos] & 134217727) >>> 19)) & 255);
out[55 + outPos] = (byte) ((
// [76543210]
// [________87654321___________]
((in[16 + inPos] & 134217727) >>> 11)) & 255);
out[56 + outPos] = (byte) ((
// [76543210]
// [________________09876543___]
((in[16 + inPos] & 134217727) >>> 3)) & 255);
out[57 + outPos] = (byte) ((
// [765_____]
// [________________________210]
((in[16 + inPos] & 134217727) << 5)
| // [___43210]
// [65432______________________]
((in[17 + inPos] & 134217727) >>> 22)) & 255);
out[58 + outPos] = (byte) ((
// [76543210]
// [_____10987654______________]
((in[17 + inPos] & 134217727) >>> 14)) & 255);
out[59 + outPos] = (byte) ((
// [76543210]
// [_____________32109876______]
((in[17 + inPos] & 134217727) >>> 6)) & 255);
out[60 + outPos] = (byte) ((
// [765432__]
// [_____________________543210]
((in[17 + inPos] & 134217727) << 2)
| // [______10]
// [65_________________________]
((in[18 + inPos] & 134217727) >>> 25)) & 255);
out[61 + outPos] = (byte) ((
// [76543210]
// [__43210987_________________]
((in[18 + inPos] & 134217727) >>> 17)) & 255);
out[62 + outPos] = (byte) ((
// [76543210]
// [__________65432109_________]
((in[18 + inPos] & 134217727) >>> 9)) & 255);
out[63 + outPos] = (byte) ((
// [76543210]
// [__________________87654321_]
((in[18 + inPos] & 134217727) >>> 1)) & 255);
out[64 + outPos] = (byte) ((
// [7_______]
// [__________________________0]
((in[18 + inPos] & 134217727) << 7)
| // [_6543210]
// [6543210____________________]
((in[19 + inPos] & 134217727) >>> 20)) & 255);
out[65 + outPos] = (byte) ((
// [76543210]
// [_______98765432____________]
((in[19 + inPos] & 134217727) >>> 12)) & 255);
out[66 + outPos] = (byte) ((
// [76543210]
// [_______________10987654____]
((in[19 + inPos] & 134217727) >>> 4)) & 255);
out[67 + outPos] = (byte) ((
// [7654____]
// [_______________________3210]
((in[19 + inPos] & 134217727) << 4)
| // [____3210]
// [6543_______________________]
((in[20 + inPos] & 134217727) >>> 23)) & 255);
out[68 + outPos] = (byte) ((
// [76543210]
// [____21098765_______________]
((in[20 + inPos] & 134217727) >>> 15)) & 255);
out[69 + outPos] = (byte) ((
// [76543210]
// [____________43210987_______]
((in[20 + inPos] & 134217727) >>> 7)) & 255);
out[70 + outPos] = (byte) ((
// [7654321_]
// [____________________6543210]
((in[20 + inPos] & 134217727) << 1)
| // [_______0]
// [6__________________________]
((in[21 + inPos] & 134217727) >>> 26)) & 255);
out[71 + outPos] = (byte) ((
// [76543210]
// [_54321098__________________]
((in[21 + inPos] & 134217727) >>> 18)) & 255);
out[72 + outPos] = (byte) ((
// [76543210]
// [_________76543210__________]
((in[21 + inPos] & 134217727) >>> 10)) & 255);
out[73 + outPos] = (byte) ((
// [76543210]
// [_________________98765432__]
((in[21 + inPos] & 134217727) >>> 2)) & 255);
out[74 + outPos] = (byte) ((
// [76______]
// [_________________________10]
((in[21 + inPos] & 134217727) << 6)
| // [__543210]
// [654321_____________________]
((in[22 + inPos] & 134217727) >>> 21)) & 255);
out[75 + outPos] = (byte) ((
// [76543210]
// [______09876543_____________]
((in[22 + inPos] & 134217727) >>> 13)) & 255);
out[76 + outPos] = (byte) ((
// [76543210]
// [______________21098765_____]
((in[22 + inPos] & 134217727) >>> 5)) & 255);
out[77 + outPos] = (byte) ((
// [76543___]
// [______________________43210]
((in[22 + inPos] & 134217727) << 3)
| // [_____210]
// [654________________________]
((in[23 + inPos] & 134217727) >>> 24)) & 255);
out[78 + outPos] = (byte) ((
// [76543210]
// [___32109876________________]
((in[23 + inPos] & 134217727) >>> 16)) & 255);
out[79 + outPos] = (byte) ((
// [76543210]
// [___________54321098________]
((in[23 + inPos] & 134217727) >>> 8)) & 255);
out[80 + outPos] = (byte) ((
// [76543210]
// [___________________76543210]
((in[23 + inPos] & 134217727))) & 255);
out[81 + outPos] = (byte) ((
// [76543210]
// [65432109___________________]
((in[24 + inPos] & 134217727) >>> 19)) & 255);
out[82 + outPos] = (byte) ((
// [76543210]
// [________87654321___________]
((in[24 + inPos] & 134217727) >>> 11)) & 255);
out[83 + outPos] = (byte) ((
// [76543210]
// [________________09876543___]
((in[24 + inPos] & 134217727) >>> 3)) & 255);
out[84 + outPos] = (byte) ((
// [765_____]
// [________________________210]
((in[24 + inPos] & 134217727) << 5)
| // [___43210]
// [65432______________________]
((in[25 + inPos] & 134217727) >>> 22)) & 255);
out[85 + outPos] = (byte) ((
// [76543210]
// [_____10987654______________]
((in[25 + inPos] & 134217727) >>> 14)) & 255);
out[86 + outPos] = (byte) ((
// [76543210]
// [_____________32109876______]
((in[25 + inPos] & 134217727) >>> 6)) & 255);
out[87 + outPos] = (byte) ((
// [765432__]
// [_____________________543210]
((in[25 + inPos] & 134217727) << 2)
| // [______10]
// [65_________________________]
((in[26 + inPos] & 134217727) >>> 25)) & 255);
out[88 + outPos] = (byte) ((
// [76543210]
// [__43210987_________________]
((in[26 + inPos] & 134217727) >>> 17)) & 255);
out[89 + outPos] = (byte) ((
// [76543210]
// [__________65432109_________]
((in[26 + inPos] & 134217727) >>> 9)) & 255);
out[90 + outPos] = (byte) ((
// [76543210]
// [__________________87654321_]
((in[26 + inPos] & 134217727) >>> 1)) & 255);
out[91 + outPos] = (byte) ((
// [7_______]
// [__________________________0]
((in[26 + inPos] & 134217727) << 7)
| // [_6543210]
// [6543210____________________]
((in[27 + inPos] & 134217727) >>> 20)) & 255);
out[92 + outPos] = (byte) ((
// [76543210]
// [_______98765432____________]
((in[27 + inPos] & 134217727) >>> 12)) & 255);
out[93 + outPos] = (byte) ((
// [76543210]
// [_______________10987654____]
((in[27 + inPos] & 134217727) >>> 4)) & 255);
out[94 + outPos] = (byte) ((
// [7654____]
// [_______________________3210]
((in[27 + inPos] & 134217727) << 4)
| // [____3210]
// [6543_______________________]
((in[28 + inPos] & 134217727) >>> 23)) & 255);
out[95 + outPos] = (byte) ((
// [76543210]
// [____21098765_______________]
((in[28 + inPos] & 134217727) >>> 15)) & 255);
out[96 + outPos] = (byte) ((
// [76543210]
// [____________43210987_______]
((in[28 + inPos] & 134217727) >>> 7)) & 255);
out[97 + outPos] = (byte) ((
// [7654321_]
// [____________________6543210]
((in[28 + inPos] & 134217727) << 1)
| // [_______0]
// [6__________________________]
((in[29 + inPos] & 134217727) >>> 26)) & 255);
out[98 + outPos] = (byte) ((
// [76543210]
// [_54321098__________________]
((in[29 + inPos] & 134217727) >>> 18)) & 255);
out[99 + outPos] = (byte) ((
// [76543210]
// [_________76543210__________]
((in[29 + inPos] & 134217727) >>> 10)) & 255);
out[100 + outPos] = (byte) ((
// [76543210]
// [_________________98765432__]
((in[29 + inPos] & 134217727) >>> 2)) & 255);
out[101 + outPos] = (byte) ((
// [76______]
// [_________________________10]
((in[29 + inPos] & 134217727) << 6)
| // [__543210]
// [654321_____________________]
((in[30 + inPos] & 134217727) >>> 21)) & 255);
out[102 + outPos] = (byte) ((
// [76543210]
// [______09876543_____________]
((in[30 + inPos] & 134217727) >>> 13)) & 255);
out[103 + outPos] = (byte) ((
// [76543210]
// [______________21098765_____]
((in[30 + inPos] & 134217727) >>> 5)) & 255);
out[104 + outPos] = (byte) ((
// [76543___]
// [______________________43210]
((in[30 + inPos] & 134217727) << 3)
| // [_____210]
// [654________________________]
((in[31 + inPos] & 134217727) >>> 24)) & 255);
out[105 + outPos] = (byte) ((
// [76543210]
// [___32109876________________]
((in[31 + inPos] & 134217727) >>> 16)) & 255);
out[106 + outPos] = (byte) ((
// [76543210]
// [___________54321098________]
((in[31 + inPos] & 134217727) >>> 8)) & 255);
out[107 + outPos] = (byte) ((
// [76543210]
// [___________________76543210]
((in[31 + inPos] & 134217727))) & 255);
}
public final void unpack8Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[0 + outPos] =
// [76543210]
// [65432109___________________]
(((((int) in[0 + inPos]) & 255) << 19) & 134217727)
| // [76543210]
// [________87654321___________]
(((((int) in[1 + inPos]) & 255) << 11) & 134217727)
| // [76543210]
// [________________09876543___]
(((((int) in[2 + inPos]) & 255) << 3) & 134217727)
| // [765_____]
// [________________________210]
(((((int) in[3 + inPos]) & 255) >>> 5) & 134217727);
out[1 + outPos] =
// [___43210]
// [65432______________________]
(((((int) in[3 + inPos]) & 255) << 22) & 134217727)
| // [76543210]
// [_____10987654______________]
(((((int) in[4 + inPos]) & 255) << 14) & 134217727)
| // [76543210]
// [_____________32109876______]
(((((int) in[5 + inPos]) & 255) << 6) & 134217727)
| // [765432__]
// [_____________________543210]
(((((int) in[6 + inPos]) & 255) >>> 2) & 134217727);
out[2 + outPos] =
// [______10]
// [65_________________________]
(((((int) in[6 + inPos]) & 255) << 25) & 134217727)
| // [76543210]
// [__43210987_________________]
(((((int) in[7 + inPos]) & 255) << 17) & 134217727)
| // [76543210]
// [__________65432109_________]
(((((int) in[8 + inPos]) & 255) << 9) & 134217727)
| // [76543210]
// [__________________87654321_]
(((((int) in[9 + inPos]) & 255) << 1) & 134217727)
| // [7_______]
// [__________________________0]
(((((int) in[10 + inPos]) & 255) >>> 7) & 134217727);
out[3 + outPos] =
// [_6543210]
// [6543210____________________]
(((((int) in[10 + inPos]) & 255) << 20) & 134217727)
| // [76543210]
// [_______98765432____________]
(((((int) in[11 + inPos]) & 255) << 12) & 134217727)
| // [76543210]
// [_______________10987654____]
(((((int) in[12 + inPos]) & 255) << 4) & 134217727)
| // [7654____]
// [_______________________3210]
(((((int) in[13 + inPos]) & 255) >>> 4) & 134217727);
out[4 + outPos] =
// [____3210]
// [6543_______________________]
(((((int) in[13 + inPos]) & 255) << 23) & 134217727)
| // [76543210]
// [____21098765_______________]
(((((int) in[14 + inPos]) & 255) << 15) & 134217727)
| // [76543210]
// [____________43210987_______]
(((((int) in[15 + inPos]) & 255) << 7) & 134217727)
| // [7654321_]
// [____________________6543210]
(((((int) in[16 + inPos]) & 255) >>> 1) & 134217727);
out[5 + outPos] =
// [_______0]
// [6__________________________]
(((((int) in[16 + inPos]) & 255) << 26) & 134217727)
| // [76543210]
// [_54321098__________________]
(((((int) in[17 + inPos]) & 255) << 18) & 134217727)
| // [76543210]
// [_________76543210__________]
(((((int) in[18 + inPos]) & 255) << 10) & 134217727)
| // [76543210]
// [_________________98765432__]
(((((int) in[19 + inPos]) & 255) << 2) & 134217727)
| // [76______]
// [_________________________10]
(((((int) in[20 + inPos]) & 255) >>> 6) & 134217727);
out[6 + outPos] =
// [__543210]
// [654321_____________________]
(((((int) in[20 + inPos]) & 255) << 21) & 134217727)
| // [76543210]
// [______09876543_____________]
(((((int) in[21 + inPos]) & 255) << 13) & 134217727)
| // [76543210]
// [______________21098765_____]
(((((int) in[22 + inPos]) & 255) << 5) & 134217727)
| // [76543___]
// [______________________43210]
(((((int) in[23 + inPos]) & 255) >>> 3) & 134217727);
out[7 + outPos] =
// [_____210]
// [654________________________]
(((((int) in[23 + inPos]) & 255) << 24) & 134217727)
| // [76543210]
// [___32109876________________]
(((((int) in[24 + inPos]) & 255) << 16) & 134217727)
| // [76543210]
// [___________54321098________]
(((((int) in[25 + inPos]) & 255) << 8) & 134217727)
| // [76543210]
// [___________________76543210]
(((((int) in[26 + inPos]) & 255)) & 134217727);
}
public final void unpack32Values(final byte[] in, final int inPos, final int[] out, final int outPos) {
out[0 + outPos] =
// [76543210]
// [65432109___________________]
(((((int) in[0 + inPos]) & 255) << 19) & 134217727)
| // [76543210]
// [________87654321___________]
(((((int) in[1 + inPos]) & 255) << 11) & 134217727)
| // [76543210]
// [________________09876543___]
(((((int) in[2 + inPos]) & 255) << 3) & 134217727)
| // [765_____]
// [________________________210]
(((((int) in[3 + inPos]) & 255) >>> 5) & 134217727);
out[1 + outPos] =
// [___43210]
// [65432______________________]
(((((int) in[3 + inPos]) & 255) << 22) & 134217727)
| // [76543210]
// [_____10987654______________]
(((((int) in[4 + inPos]) & 255) << 14) & 134217727)
| // [76543210]
// [_____________32109876______]
(((((int) in[5 + inPos]) & 255) << 6) & 134217727)
| // [765432__]
// [_____________________543210]
(((((int) in[6 + inPos]) & 255) >>> 2) & 134217727);
out[2 + outPos] =
// [______10]
// [65_________________________]
(((((int) in[6 + inPos]) & 255) << 25) & 134217727)
| // [76543210]
// [__43210987_________________]
(((((int) in[7 + inPos]) & 255) << 17) & 134217727)
| // [76543210]
// [__________65432109_________]
(((((int) in[8 + inPos]) & 255) << 9) & 134217727)
| // [76543210]
// [__________________87654321_]
(((((int) in[9 + inPos]) & 255) << 1) & 134217727)
| // [7_______]
// [__________________________0]
(((((int) in[10 + inPos]) & 255) >>> 7) & 134217727);
out[3 + outPos] =
// [_6543210]
// [6543210____________________]
(((((int) in[10 + inPos]) & 255) << 20) & 134217727)
| // [76543210]
// [_______98765432____________]
(((((int) in[11 + inPos]) & 255) << 12) & 134217727)
| // [76543210]
// [_______________10987654____]
(((((int) in[12 + inPos]) & 255) << 4) & 134217727)
| // [7654____]
// [_______________________3210]
(((((int) in[13 + inPos]) & 255) >>> 4) & 134217727);
out[4 + outPos] =
// [____3210]
// [6543_______________________]
(((((int) in[13 + inPos]) & 255) << 23) & 134217727)
| // [76543210]
// [____21098765_______________]
(((((int) in[14 + inPos]) & 255) << 15) & 134217727)
| // [76543210]
// [____________43210987_______]
(((((int) in[15 + inPos]) & 255) << 7) & 134217727)
| // [7654321_]
// [____________________6543210]
(((((int) in[16 + inPos]) & 255) >>> 1) & 134217727);
out[5 + outPos] =
// [_______0]
// [6__________________________]
(((((int) in[16 + inPos]) & 255) << 26) & 134217727)
| // [76543210]
// [_54321098__________________]
(((((int) in[17 + inPos]) & 255) << 18) & 134217727)
| // [76543210]
// [_________76543210__________]
(((((int) in[18 + inPos]) & 255) << 10) & 134217727)
| // [76543210]
// [_________________98765432__]
(((((int) in[19 + inPos]) & 255) << 2) & 134217727)
| // [76______]
// [_________________________10]
(((((int) in[20 + inPos]) & 255) >>> 6) & 134217727);
out[6 + outPos] =
// [__543210]
// [654321_____________________]
(((((int) in[20 + inPos]) & 255) << 21) & 134217727)
| // [76543210]
// [______09876543_____________]
(((((int) in[21 + inPos]) & 255) << 13) & 134217727)
| // [76543210]
// [______________21098765_____]
(((((int) in[22 + inPos]) & 255) << 5) & 134217727)
| // [76543___]
// [______________________43210]
(((((int) in[23 + inPos]) & 255) >>> 3) & 134217727);
out[7 + outPos] =
// [_____210]
// [654________________________]
(((((int) in[23 + inPos]) & 255) << 24) & 134217727)
| // [76543210]
// [___32109876________________]
(((((int) in[24 + inPos]) & 255) << 16) & 134217727)
| // [76543210]
// [___________54321098________]
(((((int) in[25 + inPos]) & 255) << 8) & 134217727)
| // [76543210]
// [___________________76543210]
(((((int) in[26 + inPos]) & 255)) & 134217727);
out[8 + outPos] =
// [76543210]
// [65432109___________________]
(((((int) in[27 + inPos]) & 255) << 19) & 134217727)
| // [76543210]
// [________87654321___________]
(((((int) in[28 + inPos]) & 255) << 11) & 134217727)
| // [76543210]
// [________________09876543___]
(((((int) in[29 + inPos]) & 255) << 3) & 134217727)
| // [765_____]
// [________________________210]
(((((int) in[30 + inPos]) & 255) >>> 5) & 134217727);
out[9 + outPos] =
// [___43210]
// [65432______________________]
(((((int) in[30 + inPos]) & 255) << 22) & 134217727)
| // [76543210]
// [_____10987654______________]
(((((int) in[31 + inPos]) & 255) << 14) & 134217727)
| // [76543210]
// [_____________32109876______]
(((((int) in[32 + inPos]) & 255) << 6) & 134217727)
| // [765432__]
// [_____________________543210]
(((((int) in[33 + inPos]) & 255) >>> 2) & 134217727);
out[10 + outPos] =
// [______10]
// [65_________________________]
(((((int) in[33 + inPos]) & 255) << 25) & 134217727)
| // [76543210]
// [__43210987_________________]
(((((int) in[34 + inPos]) & 255) << 17) & 134217727)
| // [76543210]
// [__________65432109_________]
(((((int) in[35 + inPos]) & 255) << 9) & 134217727)
| // [76543210]
// [__________________87654321_]
(((((int) in[36 + inPos]) & 255) << 1) & 134217727)
| // [7_______]
// [__________________________0]
(((((int) in[37 + inPos]) & 255) >>> 7) & 134217727);
out[11 + outPos] =
// [_6543210]
// [6543210____________________]
(((((int) in[37 + inPos]) & 255) << 20) & 134217727)
| // [76543210]
// [_______98765432____________]
(((((int) in[38 + inPos]) & 255) << 12) & 134217727)
| // [76543210]
// [_______________10987654____]
(((((int) in[39 + inPos]) & 255) << 4) & 134217727)
| // [7654____]
// [_______________________3210]
(((((int) in[40 + inPos]) & 255) >>> 4) & 134217727);
out[12 + outPos] =
// [____3210]
// [6543_______________________]
(((((int) in[40 + inPos]) & 255) << 23) & 134217727)
| // [76543210]
// [____21098765_______________]
(((((int) in[41 + inPos]) & 255) << 15) & 134217727)
| // [76543210]
// [____________43210987_______]
(((((int) in[42 + inPos]) & 255) << 7) & 134217727)
| // [7654321_]
// [____________________6543210]
(((((int) in[43 + inPos]) & 255) >>> 1) & 134217727);
out[13 + outPos] =
// [_______0]
// [6__________________________]
(((((int) in[43 + inPos]) & 255) << 26) & 134217727)
| // [76543210]
// [_54321098__________________]
(((((int) in[44 + inPos]) & 255) << 18) & 134217727)
| // [76543210]
// [_________76543210__________]
(((((int) in[45 + inPos]) & 255) << 10) & 134217727)
| // [76543210]
// [_________________98765432__]
(((((int) in[46 + inPos]) & 255) << 2) & 134217727)
| // [76______]
// [_________________________10]
(((((int) in[47 + inPos]) & 255) >>> 6) & 134217727);
out[14 + outPos] =
// [__543210]
// [654321_____________________]
(((((int) in[47 + inPos]) & 255) << 21) & 134217727)
| // [76543210]
// [______09876543_____________]
(((((int) in[48 + inPos]) & 255) << 13) & 134217727)
| // [76543210]
// [______________21098765_____]
(((((int) in[49 + inPos]) & 255) << 5) & 134217727)
| // [76543___]
// [______________________43210]
(((((int) in[50 + inPos]) & 255) >>> 3) & 134217727);
out[15 + outPos] =
// [_____210]
// [654________________________]
(((((int) in[50 + inPos]) & 255) << 24) & 134217727)
| // [76543210]
// [___32109876________________]
(((((int) in[51 + inPos]) & 255) << 16) & 134217727)
| // [76543210]
// [___________54321098________]
(((((int) in[52 + inPos]) & 255) << 8) & 134217727)
| // [76543210]
// [___________________76543210]
(((((int) in[53 + inPos]) & 255)) & 134217727);
out[16 + outPos] =
// [76543210]
// [65432109___________________]
(((((int) in[54 + inPos]) & 255) << 19) & 134217727)
| // [76543210]
// [________87654321___________]
(((((int) in[55 + inPos]) & 255) << 11) & 134217727)
| // [76543210]
// [________________09876543___]
(((((int) in[56 + inPos]) & 255) << 3) & 134217727)
| // [765_____]
// [________________________210]
(((((int) in[57 + inPos]) & 255) >>> 5) & 134217727);
out[17 + outPos] =
// [___43210]
// [65432______________________]
(((((int) in[57 + inPos]) & 255) << 22) & 134217727)
| // [76543210]
// [_____10987654______________]
(((((int) in[58 + inPos]) & 255) << 14) & 134217727)
| // [76543210]
// [_____________32109876______]
(((((int) in[59 + inPos]) & 255) << 6) & 134217727)
| // [765432__]
// [_____________________543210]
(((((int) in[60 + inPos]) & 255) >>> 2) & 134217727);
out[18 + outPos] =
// [______10]
// [65_________________________]
(((((int) in[60 + inPos]) & 255) << 25) & 134217727)
| // [76543210]
// [__43210987_________________]
(((((int) in[61 + inPos]) & 255) << 17) & 134217727)
| // [76543210]
// [__________65432109_________]
(((((int) in[62 + inPos]) & 255) << 9) & 134217727)
| // [76543210]
// [__________________87654321_]
(((((int) in[63 + inPos]) & 255) << 1) & 134217727)
| // [7_______]
// [__________________________0]
(((((int) in[64 + inPos]) & 255) >>> 7) & 134217727);
out[19 + outPos] =
// [_6543210]
// [6543210____________________]
(((((int) in[64 + inPos]) & 255) << 20) & 134217727)
| // [76543210]
// [_______98765432____________]
(((((int) in[65 + inPos]) & 255) << 12) & 134217727)
| // [76543210]
// [_______________10987654____]
(((((int) in[66 + inPos]) & 255) << 4) & 134217727)
| // [7654____]
// [_______________________3210]
(((((int) in[67 + inPos]) & 255) >>> 4) & 134217727);
out[20 + outPos] =
// [____3210]
// [6543_______________________]
(((((int) in[67 + inPos]) & 255) << 23) & 134217727)
| // [76543210]
// [____21098765_______________]
(((((int) in[68 + inPos]) & 255) << 15) & 134217727)
| // [76543210]
// [____________43210987_______]
(((((int) in[69 + inPos]) & 255) << 7) & 134217727)
| // [7654321_]
// [____________________6543210]
(((((int) in[70 + inPos]) & 255) >>> 1) & 134217727);
out[21 + outPos] =
// [_______0]
// [6__________________________]
(((((int) in[70 + inPos]) & 255) << 26) & 134217727)
| // [76543210]
// [_54321098__________________]
(((((int) in[71 + inPos]) & 255) << 18) & 134217727)
| // [76543210]
// [_________76543210__________]
(((((int) in[72 + inPos]) & 255) << 10) & 134217727)
| // [76543210]
// [_________________98765432__]
(((((int) in[73 + inPos]) & 255) << 2) & 134217727)
| // [76______]
// [_________________________10]
(((((int) in[74 + inPos]) & 255) >>> 6) & 134217727);
out[22 + outPos] =
// [__543210]
// [654321_____________________]
(((((int) in[74 + inPos]) & 255) << 21) & 134217727)
| // [76543210]
// [______09876543_____________]
(((((int) in[75 + inPos]) & 255) << 13) & 134217727)
| // [76543210]
// [______________21098765_____]
(((((int) in[76 + inPos]) & 255) << 5) & 134217727)
| // [76543___]
// [______________________43210]
(((((int) in[77 + inPos]) & 255) >>> 3) & 134217727);
out[23 + outPos] =
// [_____210]
// [654________________________]
(((((int) in[77 + inPos]) & 255) << 24) & 134217727)
| // [76543210]
// [___32109876________________]
(((((int) in[78 + inPos]) & 255) << 16) & 134217727)
| // [76543210]
// [___________54321098________]
(((((int) in[79 + inPos]) & 255) << 8) & 134217727)
| // [76543210]
// [___________________76543210]
(((((int) in[80 + inPos]) & 255)) & 134217727);
out[24 + outPos] =
// [76543210]
// [65432109___________________]
(((((int) in[81 + inPos]) & 255) << 19) & 134217727)
| // [76543210]
// [________87654321___________]
(((((int) in[82 + inPos]) & 255) << 11) & 134217727)
| // [76543210]
// [________________09876543___]
(((((int) in[83 + inPos]) & 255) << 3) & 134217727)
| // [765_____]
// [________________________210]
(((((int) in[84 + inPos]) & 255) >>> 5) & 134217727);
out[25 + outPos] =
// [___43210]
// [65432______________________]
(((((int) in[84 + inPos]) & 255) << 22) & 134217727)
| // [76543210]
// [_____10987654______________]
(((((int) in[85 + inPos]) & 255) << 14) & 134217727)
| // [76543210]
// [_____________32109876______]
(((((int) in[86 + inPos]) & 255) << 6) & 134217727)
| // [765432__]
// [_____________________543210]
(((((int) in[87 + inPos]) & 255) >>> 2) & 134217727);
out[26 + outPos] =
// [______10]
// [65_________________________]
(((((int) in[87 + inPos]) & 255) << 25) & 134217727)
| // [76543210]
// [__43210987_________________]
(((((int) in[88 + inPos]) & 255) << 17) & 134217727)
| // [76543210]
// [__________65432109_________]
(((((int) in[89 + inPos]) & 255) << 9) & 134217727)
| // [76543210]
// [__________________87654321_]
(((((int) in[90 + inPos]) & 255) << 1) & 134217727)
| // [7_______]
// [__________________________0]
(((((int) in[91 + inPos]) & 255) >>> 7) & 134217727);
out[27 + outPos] =
// [_6543210]
// [6543210____________________]
(((((int) in[91 + inPos]) & 255) << 20) & 134217727)
| // [76543210]
// [_______98765432____________]
(((((int) in[92 + inPos]) & 255) << 12) & 134217727)
| // [76543210]
// [_______________10987654____]
(((((int) in[93 + inPos]) & 255) << 4) & 134217727)
| // [7654____]
// [_______________________3210]
(((((int) in[94 + inPos]) & 255) >>> 4) & 134217727);
out[28 + outPos] =
// [____3210]
// [6543_______________________]
(((((int) in[94 + inPos]) & 255) << 23) & 134217727)
| // [76543210]
// [____21098765_______________]
(((((int) in[95 + inPos]) & 255) << 15) & 134217727)
| // [76543210]
// [____________43210987_______]
(((((int) in[96 + inPos]) & 255) << 7) & 134217727)
| // [7654321_]
// [____________________6543210]
(((((int) in[97 + inPos]) & 255) >>> 1) & 134217727);
out[29 + outPos] =
// [_______0]
// [6__________________________]
(((((int) in[97 + inPos]) & 255) << 26) & 134217727)
| // [76543210]
// [_54321098__________________]
(((((int) in[98 + inPos]) & 255) << 18) & 134217727)
| // [76543210]
// [_________76543210__________]
(((((int) in[99 + inPos]) & 255) << 10) & 134217727)
| // [76543210]
// [_________________98765432__]
(((((int) in[100 + inPos]) & 255) << 2) & 134217727)
| // [76______]
// [_________________________10]
(((((int) in[101 + inPos]) & 255) >>> 6) & 134217727);
out[30 + outPos] =
// [__543210]
// [654321_____________________]
(((((int) in[101 + inPos]) & 255) << 21) & 134217727)
| // [76543210]
// [______09876543_____________]
(((((int) in[102 + inPos]) & 255) << 13) & 134217727)
| // [76543210]
// [______________21098765_____]
(((((int) in[103 + inPos]) & 255) << 5) & 134217727)
| // [76543___]
// [______________________43210]
(((((int) in[104 + inPos]) & 255) >>> 3) & 134217727);
out[31 + outPos] =
// [_____210]
// [654________________________]
(((((int) in[104 + inPos]) & 255) << 24) & 134217727)
| // [76543210]
// [___32109876________________]
(((((int) in[105 + inPos]) & 255) << 16) & 134217727)
| // [76543210]
// [___________54321098________]
(((((int) in[106 + inPos]) & 255) << 8) & 134217727)
| // [76543210]
// [___________________76543210]
(((((int) in[107 + inPos]) & 255)) & 134217727);
}
}