910 lines
35 KiB
JavaScript
910 lines
35 KiB
JavaScript
import { MASKS } from "./fastPforShared";
|
|
export function fastUnpack32_1(inValues, inPos, out, outPos) {
|
|
const in0 = inValues[inPos] >>> 0;
|
|
for (let i = 0; i < 32; i++) {
|
|
out[outPos + i] = (in0 >>> i) & 1;
|
|
}
|
|
}
|
|
export function fastUnpack32_2(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x3;
|
|
out[op++] = (in0 >>> 2) & 0x3;
|
|
out[op++] = (in0 >>> 4) & 0x3;
|
|
out[op++] = (in0 >>> 6) & 0x3;
|
|
out[op++] = (in0 >>> 8) & 0x3;
|
|
out[op++] = (in0 >>> 10) & 0x3;
|
|
out[op++] = (in0 >>> 12) & 0x3;
|
|
out[op++] = (in0 >>> 14) & 0x3;
|
|
out[op++] = (in0 >>> 16) & 0x3;
|
|
out[op++] = (in0 >>> 18) & 0x3;
|
|
out[op++] = (in0 >>> 20) & 0x3;
|
|
out[op++] = (in0 >>> 22) & 0x3;
|
|
out[op++] = (in0 >>> 24) & 0x3;
|
|
out[op++] = (in0 >>> 26) & 0x3;
|
|
out[op++] = (in0 >>> 28) & 0x3;
|
|
out[op++] = (in0 >>> 30) & 0x3;
|
|
out[op++] = (in1 >>> 0) & 0x3;
|
|
out[op++] = (in1 >>> 2) & 0x3;
|
|
out[op++] = (in1 >>> 4) & 0x3;
|
|
out[op++] = (in1 >>> 6) & 0x3;
|
|
out[op++] = (in1 >>> 8) & 0x3;
|
|
out[op++] = (in1 >>> 10) & 0x3;
|
|
out[op++] = (in1 >>> 12) & 0x3;
|
|
out[op++] = (in1 >>> 14) & 0x3;
|
|
out[op++] = (in1 >>> 16) & 0x3;
|
|
out[op++] = (in1 >>> 18) & 0x3;
|
|
out[op++] = (in1 >>> 20) & 0x3;
|
|
out[op++] = (in1 >>> 22) & 0x3;
|
|
out[op++] = (in1 >>> 24) & 0x3;
|
|
out[op++] = (in1 >>> 26) & 0x3;
|
|
out[op++] = (in1 >>> 28) & 0x3;
|
|
out[op] = (in1 >>> 30) & 0x3;
|
|
}
|
|
export function fastUnpack32_3(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x7;
|
|
out[op++] = (in0 >>> 3) & 0x7;
|
|
out[op++] = (in0 >>> 6) & 0x7;
|
|
out[op++] = (in0 >>> 9) & 0x7;
|
|
out[op++] = (in0 >>> 12) & 0x7;
|
|
out[op++] = (in0 >>> 15) & 0x7;
|
|
out[op++] = (in0 >>> 18) & 0x7;
|
|
out[op++] = (in0 >>> 21) & 0x7;
|
|
out[op++] = (in0 >>> 24) & 0x7;
|
|
out[op++] = (in0 >>> 27) & 0x7;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0x1) << 2)) & 0x7;
|
|
out[op++] = (in1 >>> 1) & 0x7;
|
|
out[op++] = (in1 >>> 4) & 0x7;
|
|
out[op++] = (in1 >>> 7) & 0x7;
|
|
out[op++] = (in1 >>> 10) & 0x7;
|
|
out[op++] = (in1 >>> 13) & 0x7;
|
|
out[op++] = (in1 >>> 16) & 0x7;
|
|
out[op++] = (in1 >>> 19) & 0x7;
|
|
out[op++] = (in1 >>> 22) & 0x7;
|
|
out[op++] = (in1 >>> 25) & 0x7;
|
|
out[op++] = (in1 >>> 28) & 0x7;
|
|
out[op++] = ((in1 >>> 31) | ((in2 & 0x3) << 1)) & 0x7;
|
|
out[op++] = (in2 >>> 2) & 0x7;
|
|
out[op++] = (in2 >>> 5) & 0x7;
|
|
out[op++] = (in2 >>> 8) & 0x7;
|
|
out[op++] = (in2 >>> 11) & 0x7;
|
|
out[op++] = (in2 >>> 14) & 0x7;
|
|
out[op++] = (in2 >>> 17) & 0x7;
|
|
out[op++] = (in2 >>> 20) & 0x7;
|
|
out[op++] = (in2 >>> 23) & 0x7;
|
|
out[op++] = (in2 >>> 26) & 0x7;
|
|
out[op] = (in2 >>> 29) & 0x7;
|
|
}
|
|
export function fastUnpack32_4(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0xf;
|
|
out[op++] = (in0 >>> 4) & 0xf;
|
|
out[op++] = (in0 >>> 8) & 0xf;
|
|
out[op++] = (in0 >>> 12) & 0xf;
|
|
out[op++] = (in0 >>> 16) & 0xf;
|
|
out[op++] = (in0 >>> 20) & 0xf;
|
|
out[op++] = (in0 >>> 24) & 0xf;
|
|
out[op++] = (in0 >>> 28) & 0xf;
|
|
out[op++] = (in1 >>> 0) & 0xf;
|
|
out[op++] = (in1 >>> 4) & 0xf;
|
|
out[op++] = (in1 >>> 8) & 0xf;
|
|
out[op++] = (in1 >>> 12) & 0xf;
|
|
out[op++] = (in1 >>> 16) & 0xf;
|
|
out[op++] = (in1 >>> 20) & 0xf;
|
|
out[op++] = (in1 >>> 24) & 0xf;
|
|
out[op++] = (in1 >>> 28) & 0xf;
|
|
out[op++] = (in2 >>> 0) & 0xf;
|
|
out[op++] = (in2 >>> 4) & 0xf;
|
|
out[op++] = (in2 >>> 8) & 0xf;
|
|
out[op++] = (in2 >>> 12) & 0xf;
|
|
out[op++] = (in2 >>> 16) & 0xf;
|
|
out[op++] = (in2 >>> 20) & 0xf;
|
|
out[op++] = (in2 >>> 24) & 0xf;
|
|
out[op++] = (in2 >>> 28) & 0xf;
|
|
out[op++] = (in3 >>> 0) & 0xf;
|
|
out[op++] = (in3 >>> 4) & 0xf;
|
|
out[op++] = (in3 >>> 8) & 0xf;
|
|
out[op++] = (in3 >>> 12) & 0xf;
|
|
out[op++] = (in3 >>> 16) & 0xf;
|
|
out[op++] = (in3 >>> 20) & 0xf;
|
|
out[op++] = (in3 >>> 24) & 0xf;
|
|
out[op] = (in3 >>> 28) & 0xf;
|
|
}
|
|
export function fastUnpack32_5(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x1f;
|
|
out[op++] = (in0 >>> 5) & 0x1f;
|
|
out[op++] = (in0 >>> 10) & 0x1f;
|
|
out[op++] = (in0 >>> 15) & 0x1f;
|
|
out[op++] = (in0 >>> 20) & 0x1f;
|
|
out[op++] = (in0 >>> 25) & 0x1f;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0x7) << 2)) & 0x1f;
|
|
out[op++] = (in1 >>> 3) & 0x1f;
|
|
out[op++] = (in1 >>> 8) & 0x1f;
|
|
out[op++] = (in1 >>> 13) & 0x1f;
|
|
out[op++] = (in1 >>> 18) & 0x1f;
|
|
out[op++] = (in1 >>> 23) & 0x1f;
|
|
out[op++] = ((in1 >>> 28) | ((in2 & 0x1) << 4)) & 0x1f;
|
|
out[op++] = (in2 >>> 1) & 0x1f;
|
|
out[op++] = (in2 >>> 6) & 0x1f;
|
|
out[op++] = (in2 >>> 11) & 0x1f;
|
|
out[op++] = (in2 >>> 16) & 0x1f;
|
|
out[op++] = (in2 >>> 21) & 0x1f;
|
|
out[op++] = (in2 >>> 26) & 0x1f;
|
|
out[op++] = ((in2 >>> 31) | ((in3 & 0xf) << 1)) & 0x1f;
|
|
out[op++] = (in3 >>> 4) & 0x1f;
|
|
out[op++] = (in3 >>> 9) & 0x1f;
|
|
out[op++] = (in3 >>> 14) & 0x1f;
|
|
out[op++] = (in3 >>> 19) & 0x1f;
|
|
out[op++] = (in3 >>> 24) & 0x1f;
|
|
out[op++] = ((in3 >>> 29) | ((in4 & 0x3) << 3)) & 0x1f;
|
|
out[op++] = (in4 >>> 2) & 0x1f;
|
|
out[op++] = (in4 >>> 7) & 0x1f;
|
|
out[op++] = (in4 >>> 12) & 0x1f;
|
|
out[op++] = (in4 >>> 17) & 0x1f;
|
|
out[op++] = (in4 >>> 22) & 0x1f;
|
|
out[op] = (in4 >>> 27) & 0x1f;
|
|
}
|
|
export function fastUnpack32_6(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x3f;
|
|
out[op++] = (in0 >>> 6) & 0x3f;
|
|
out[op++] = (in0 >>> 12) & 0x3f;
|
|
out[op++] = (in0 >>> 18) & 0x3f;
|
|
out[op++] = (in0 >>> 24) & 0x3f;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0xf) << 2)) & 0x3f;
|
|
out[op++] = (in1 >>> 4) & 0x3f;
|
|
out[op++] = (in1 >>> 10) & 0x3f;
|
|
out[op++] = (in1 >>> 16) & 0x3f;
|
|
out[op++] = (in1 >>> 22) & 0x3f;
|
|
out[op++] = ((in1 >>> 28) | ((in2 & 0x3) << 4)) & 0x3f;
|
|
out[op++] = (in2 >>> 2) & 0x3f;
|
|
out[op++] = (in2 >>> 8) & 0x3f;
|
|
out[op++] = (in2 >>> 14) & 0x3f;
|
|
out[op++] = (in2 >>> 20) & 0x3f;
|
|
out[op++] = (in2 >>> 26) & 0x3f;
|
|
out[op++] = (in3 >>> 0) & 0x3f;
|
|
out[op++] = (in3 >>> 6) & 0x3f;
|
|
out[op++] = (in3 >>> 12) & 0x3f;
|
|
out[op++] = (in3 >>> 18) & 0x3f;
|
|
out[op++] = (in3 >>> 24) & 0x3f;
|
|
out[op++] = ((in3 >>> 30) | ((in4 & 0xf) << 2)) & 0x3f;
|
|
out[op++] = (in4 >>> 4) & 0x3f;
|
|
out[op++] = (in4 >>> 10) & 0x3f;
|
|
out[op++] = (in4 >>> 16) & 0x3f;
|
|
out[op++] = (in4 >>> 22) & 0x3f;
|
|
out[op++] = ((in4 >>> 28) | ((in5 & 0x3) << 4)) & 0x3f;
|
|
out[op++] = (in5 >>> 2) & 0x3f;
|
|
out[op++] = (in5 >>> 8) & 0x3f;
|
|
out[op++] = (in5 >>> 14) & 0x3f;
|
|
out[op++] = (in5 >>> 20) & 0x3f;
|
|
out[op] = (in5 >>> 26) & 0x3f;
|
|
}
|
|
export function fastUnpack32_7(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x7f;
|
|
out[op++] = (in0 >>> 7) & 0x7f;
|
|
out[op++] = (in0 >>> 14) & 0x7f;
|
|
out[op++] = (in0 >>> 21) & 0x7f;
|
|
out[op++] = ((in0 >>> 28) | ((in1 & 0x7) << 4)) & 0x7f;
|
|
out[op++] = (in1 >>> 3) & 0x7f;
|
|
out[op++] = (in1 >>> 10) & 0x7f;
|
|
out[op++] = (in1 >>> 17) & 0x7f;
|
|
out[op++] = (in1 >>> 24) & 0x7f;
|
|
out[op++] = ((in1 >>> 31) | ((in2 & 0x3f) << 1)) & 0x7f;
|
|
out[op++] = (in2 >>> 6) & 0x7f;
|
|
out[op++] = (in2 >>> 13) & 0x7f;
|
|
out[op++] = (in2 >>> 20) & 0x7f;
|
|
out[op++] = ((in2 >>> 27) | ((in3 & 0x3) << 5)) & 0x7f;
|
|
out[op++] = (in3 >>> 2) & 0x7f;
|
|
out[op++] = (in3 >>> 9) & 0x7f;
|
|
out[op++] = (in3 >>> 16) & 0x7f;
|
|
out[op++] = (in3 >>> 23) & 0x7f;
|
|
out[op++] = ((in3 >>> 30) | ((in4 & 0x1f) << 2)) & 0x7f;
|
|
out[op++] = (in4 >>> 5) & 0x7f;
|
|
out[op++] = (in4 >>> 12) & 0x7f;
|
|
out[op++] = (in4 >>> 19) & 0x7f;
|
|
out[op++] = ((in4 >>> 26) | ((in5 & 0x1) << 6)) & 0x7f;
|
|
out[op++] = (in5 >>> 1) & 0x7f;
|
|
out[op++] = (in5 >>> 8) & 0x7f;
|
|
out[op++] = (in5 >>> 15) & 0x7f;
|
|
out[op++] = (in5 >>> 22) & 0x7f;
|
|
out[op++] = ((in5 >>> 29) | ((in6 & 0xf) << 3)) & 0x7f;
|
|
out[op++] = (in6 >>> 4) & 0x7f;
|
|
out[op++] = (in6 >>> 11) & 0x7f;
|
|
out[op++] = (in6 >>> 18) & 0x7f;
|
|
out[op] = (in6 >>> 25) & 0x7f;
|
|
}
|
|
export function fastUnpack32_8(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
const in7 = inValues[inPos + 7] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0xff;
|
|
out[op++] = (in0 >>> 8) & 0xff;
|
|
out[op++] = (in0 >>> 16) & 0xff;
|
|
out[op++] = (in0 >>> 24) & 0xff;
|
|
out[op++] = (in1 >>> 0) & 0xff;
|
|
out[op++] = (in1 >>> 8) & 0xff;
|
|
out[op++] = (in1 >>> 16) & 0xff;
|
|
out[op++] = (in1 >>> 24) & 0xff;
|
|
out[op++] = (in2 >>> 0) & 0xff;
|
|
out[op++] = (in2 >>> 8) & 0xff;
|
|
out[op++] = (in2 >>> 16) & 0xff;
|
|
out[op++] = (in2 >>> 24) & 0xff;
|
|
out[op++] = (in3 >>> 0) & 0xff;
|
|
out[op++] = (in3 >>> 8) & 0xff;
|
|
out[op++] = (in3 >>> 16) & 0xff;
|
|
out[op++] = (in3 >>> 24) & 0xff;
|
|
out[op++] = (in4 >>> 0) & 0xff;
|
|
out[op++] = (in4 >>> 8) & 0xff;
|
|
out[op++] = (in4 >>> 16) & 0xff;
|
|
out[op++] = (in4 >>> 24) & 0xff;
|
|
out[op++] = (in5 >>> 0) & 0xff;
|
|
out[op++] = (in5 >>> 8) & 0xff;
|
|
out[op++] = (in5 >>> 16) & 0xff;
|
|
out[op++] = (in5 >>> 24) & 0xff;
|
|
out[op++] = (in6 >>> 0) & 0xff;
|
|
out[op++] = (in6 >>> 8) & 0xff;
|
|
out[op++] = (in6 >>> 16) & 0xff;
|
|
out[op++] = (in6 >>> 24) & 0xff;
|
|
out[op++] = (in7 >>> 0) & 0xff;
|
|
out[op++] = (in7 >>> 8) & 0xff;
|
|
out[op++] = (in7 >>> 16) & 0xff;
|
|
out[op] = (in7 >>> 24) & 0xff;
|
|
}
|
|
export function fastUnpack32_9(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
const in7 = inValues[inPos + 7] >>> 0;
|
|
const in8 = inValues[inPos + 8] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x1ff;
|
|
out[op++] = (in0 >>> 9) & 0x1ff;
|
|
out[op++] = (in0 >>> 18) & 0x1ff;
|
|
out[op++] = ((in0 >>> 27) | ((in1 & 0xf) << 5)) & 0x1ff;
|
|
out[op++] = (in1 >>> 4) & 0x1ff;
|
|
out[op++] = (in1 >>> 13) & 0x1ff;
|
|
out[op++] = (in1 >>> 22) & 0x1ff;
|
|
out[op++] = ((in1 >>> 31) | ((in2 & 0xff) << 1)) & 0x1ff;
|
|
out[op++] = (in2 >>> 8) & 0x1ff;
|
|
out[op++] = (in2 >>> 17) & 0x1ff;
|
|
out[op++] = ((in2 >>> 26) | ((in3 & 0x7) << 6)) & 0x1ff;
|
|
out[op++] = (in3 >>> 3) & 0x1ff;
|
|
out[op++] = (in3 >>> 12) & 0x1ff;
|
|
out[op++] = (in3 >>> 21) & 0x1ff;
|
|
out[op++] = ((in3 >>> 30) | ((in4 & 0x7f) << 2)) & 0x1ff;
|
|
out[op++] = (in4 >>> 7) & 0x1ff;
|
|
out[op++] = (in4 >>> 16) & 0x1ff;
|
|
out[op++] = ((in4 >>> 25) | ((in5 & 0x3) << 7)) & 0x1ff;
|
|
out[op++] = (in5 >>> 2) & 0x1ff;
|
|
out[op++] = (in5 >>> 11) & 0x1ff;
|
|
out[op++] = (in5 >>> 20) & 0x1ff;
|
|
out[op++] = ((in5 >>> 29) | ((in6 & 0x3f) << 3)) & 0x1ff;
|
|
out[op++] = (in6 >>> 6) & 0x1ff;
|
|
out[op++] = (in6 >>> 15) & 0x1ff;
|
|
out[op++] = ((in6 >>> 24) | ((in7 & 0x1) << 8)) & 0x1ff;
|
|
out[op++] = (in7 >>> 1) & 0x1ff;
|
|
out[op++] = (in7 >>> 10) & 0x1ff;
|
|
out[op++] = (in7 >>> 19) & 0x1ff;
|
|
out[op++] = ((in7 >>> 28) | ((in8 & 0x1f) << 4)) & 0x1ff;
|
|
out[op++] = (in8 >>> 5) & 0x1ff;
|
|
out[op++] = (in8 >>> 14) & 0x1ff;
|
|
out[op] = (in8 >>> 23) & 0x1ff;
|
|
}
|
|
export function fastUnpack32_10(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
const in7 = inValues[inPos + 7] >>> 0;
|
|
const in8 = inValues[inPos + 8] >>> 0;
|
|
const in9 = inValues[inPos + 9] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x3ff;
|
|
out[op++] = (in0 >>> 10) & 0x3ff;
|
|
out[op++] = (in0 >>> 20) & 0x3ff;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0xff) << 2)) & 0x3ff;
|
|
out[op++] = (in1 >>> 8) & 0x3ff;
|
|
out[op++] = (in1 >>> 18) & 0x3ff;
|
|
out[op++] = ((in1 >>> 28) | ((in2 & 0x3f) << 4)) & 0x3ff;
|
|
out[op++] = (in2 >>> 6) & 0x3ff;
|
|
out[op++] = (in2 >>> 16) & 0x3ff;
|
|
out[op++] = ((in2 >>> 26) | ((in3 & 0xf) << 6)) & 0x3ff;
|
|
out[op++] = (in3 >>> 4) & 0x3ff;
|
|
out[op++] = (in3 >>> 14) & 0x3ff;
|
|
out[op++] = ((in3 >>> 24) | ((in4 & 0x3) << 8)) & 0x3ff;
|
|
out[op++] = (in4 >>> 2) & 0x3ff;
|
|
out[op++] = (in4 >>> 12) & 0x3ff;
|
|
out[op++] = (in4 >>> 22) & 0x3ff;
|
|
out[op++] = (in5 >>> 0) & 0x3ff;
|
|
out[op++] = (in5 >>> 10) & 0x3ff;
|
|
out[op++] = (in5 >>> 20) & 0x3ff;
|
|
out[op++] = ((in5 >>> 30) | ((in6 & 0xff) << 2)) & 0x3ff;
|
|
out[op++] = (in6 >>> 8) & 0x3ff;
|
|
out[op++] = (in6 >>> 18) & 0x3ff;
|
|
out[op++] = ((in6 >>> 28) | ((in7 & 0x3f) << 4)) & 0x3ff;
|
|
out[op++] = (in7 >>> 6) & 0x3ff;
|
|
out[op++] = (in7 >>> 16) & 0x3ff;
|
|
out[op++] = ((in7 >>> 26) | ((in8 & 0xf) << 6)) & 0x3ff;
|
|
out[op++] = (in8 >>> 4) & 0x3ff;
|
|
out[op++] = (in8 >>> 14) & 0x3ff;
|
|
out[op++] = ((in8 >>> 24) | ((in9 & 0x3) << 8)) & 0x3ff;
|
|
out[op++] = (in9 >>> 2) & 0x3ff;
|
|
out[op++] = (in9 >>> 12) & 0x3ff;
|
|
out[op] = (in9 >>> 22) & 0x3ff;
|
|
}
|
|
export function fastUnpack32_11(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
const in7 = inValues[inPos + 7] >>> 0;
|
|
const in8 = inValues[inPos + 8] >>> 0;
|
|
const in9 = inValues[inPos + 9] >>> 0;
|
|
const in10 = inValues[inPos + 10] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x7ff;
|
|
out[op++] = (in0 >>> 11) & 0x7ff;
|
|
out[op++] = ((in0 >>> 22) | ((in1 & 0x1) << 10)) & 0x7ff;
|
|
out[op++] = (in1 >>> 1) & 0x7ff;
|
|
out[op++] = (in1 >>> 12) & 0x7ff;
|
|
out[op++] = ((in1 >>> 23) | ((in2 & 0x3) << 9)) & 0x7ff;
|
|
out[op++] = (in2 >>> 2) & 0x7ff;
|
|
out[op++] = (in2 >>> 13) & 0x7ff;
|
|
out[op++] = ((in2 >>> 24) | ((in3 & 0x7) << 8)) & 0x7ff;
|
|
out[op++] = (in3 >>> 3) & 0x7ff;
|
|
out[op++] = (in3 >>> 14) & 0x7ff;
|
|
out[op++] = ((in3 >>> 25) | ((in4 & 0xf) << 7)) & 0x7ff;
|
|
out[op++] = (in4 >>> 4) & 0x7ff;
|
|
out[op++] = (in4 >>> 15) & 0x7ff;
|
|
out[op++] = ((in4 >>> 26) | ((in5 & 0x1f) << 6)) & 0x7ff;
|
|
out[op++] = (in5 >>> 5) & 0x7ff;
|
|
out[op++] = (in5 >>> 16) & 0x7ff;
|
|
out[op++] = ((in5 >>> 27) | ((in6 & 0x3f) << 5)) & 0x7ff;
|
|
out[op++] = (in6 >>> 6) & 0x7ff;
|
|
out[op++] = (in6 >>> 17) & 0x7ff;
|
|
out[op++] = ((in6 >>> 28) | ((in7 & 0x7f) << 4)) & 0x7ff;
|
|
out[op++] = (in7 >>> 7) & 0x7ff;
|
|
out[op++] = (in7 >>> 18) & 0x7ff;
|
|
out[op++] = ((in7 >>> 29) | ((in8 & 0xff) << 3)) & 0x7ff;
|
|
out[op++] = (in8 >>> 8) & 0x7ff;
|
|
out[op++] = (in8 >>> 19) & 0x7ff;
|
|
out[op++] = ((in8 >>> 30) | ((in9 & 0x1ff) << 2)) & 0x7ff;
|
|
out[op++] = (in9 >>> 9) & 0x7ff;
|
|
out[op++] = (in9 >>> 20) & 0x7ff;
|
|
out[op++] = ((in9 >>> 31) | ((in10 & 0x3ff) << 1)) & 0x7ff;
|
|
out[op++] = (in10 >>> 10) & 0x7ff;
|
|
out[op] = (in10 >>> 21) & 0x7ff;
|
|
}
|
|
export function fastUnpack32_12(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
const in7 = inValues[inPos + 7] >>> 0;
|
|
const in8 = inValues[inPos + 8] >>> 0;
|
|
const in9 = inValues[inPos + 9] >>> 0;
|
|
const in10 = inValues[inPos + 10] >>> 0;
|
|
const in11 = inValues[inPos + 11] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0xfff;
|
|
out[op++] = (in0 >>> 12) & 0xfff;
|
|
out[op++] = ((in0 >>> 24) | ((in1 & 0xf) << 8)) & 0xfff;
|
|
out[op++] = (in1 >>> 4) & 0xfff;
|
|
out[op++] = (in1 >>> 16) & 0xfff;
|
|
out[op++] = ((in1 >>> 28) | ((in2 & 0xff) << 4)) & 0xfff;
|
|
out[op++] = (in2 >>> 8) & 0xfff;
|
|
out[op++] = (in2 >>> 20) & 0xfff;
|
|
out[op++] = (in3 >>> 0) & 0xfff;
|
|
out[op++] = (in3 >>> 12) & 0xfff;
|
|
out[op++] = ((in3 >>> 24) | ((in4 & 0xf) << 8)) & 0xfff;
|
|
out[op++] = (in4 >>> 4) & 0xfff;
|
|
out[op++] = (in4 >>> 16) & 0xfff;
|
|
out[op++] = ((in4 >>> 28) | ((in5 & 0xff) << 4)) & 0xfff;
|
|
out[op++] = (in5 >>> 8) & 0xfff;
|
|
out[op++] = (in5 >>> 20) & 0xfff;
|
|
out[op++] = (in6 >>> 0) & 0xfff;
|
|
out[op++] = (in6 >>> 12) & 0xfff;
|
|
out[op++] = ((in6 >>> 24) | ((in7 & 0xf) << 8)) & 0xfff;
|
|
out[op++] = (in7 >>> 4) & 0xfff;
|
|
out[op++] = (in7 >>> 16) & 0xfff;
|
|
out[op++] = ((in7 >>> 28) | ((in8 & 0xff) << 4)) & 0xfff;
|
|
out[op++] = (in8 >>> 8) & 0xfff;
|
|
out[op++] = (in8 >>> 20) & 0xfff;
|
|
out[op++] = (in9 >>> 0) & 0xfff;
|
|
out[op++] = (in9 >>> 12) & 0xfff;
|
|
out[op++] = ((in9 >>> 24) | ((in10 & 0xf) << 8)) & 0xfff;
|
|
out[op++] = (in10 >>> 4) & 0xfff;
|
|
out[op++] = (in10 >>> 16) & 0xfff;
|
|
out[op++] = ((in10 >>> 28) | ((in11 & 0xff) << 4)) & 0xfff;
|
|
out[op++] = (in11 >>> 8) & 0xfff;
|
|
out[op] = (in11 >>> 20) & 0xfff;
|
|
}
|
|
export function fastUnpack32_16(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
const in0 = inValues[inPos] >>> 0;
|
|
const in1 = inValues[inPos + 1] >>> 0;
|
|
const in2 = inValues[inPos + 2] >>> 0;
|
|
const in3 = inValues[inPos + 3] >>> 0;
|
|
const in4 = inValues[inPos + 4] >>> 0;
|
|
const in5 = inValues[inPos + 5] >>> 0;
|
|
const in6 = inValues[inPos + 6] >>> 0;
|
|
const in7 = inValues[inPos + 7] >>> 0;
|
|
const in8 = inValues[inPos + 8] >>> 0;
|
|
const in9 = inValues[inPos + 9] >>> 0;
|
|
const in10 = inValues[inPos + 10] >>> 0;
|
|
const in11 = inValues[inPos + 11] >>> 0;
|
|
const in12 = inValues[inPos + 12] >>> 0;
|
|
const in13 = inValues[inPos + 13] >>> 0;
|
|
const in14 = inValues[inPos + 14] >>> 0;
|
|
const in15 = inValues[inPos + 15] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0xffff;
|
|
out[op++] = (in0 >>> 16) & 0xffff;
|
|
out[op++] = (in1 >>> 0) & 0xffff;
|
|
out[op++] = (in1 >>> 16) & 0xffff;
|
|
out[op++] = (in2 >>> 0) & 0xffff;
|
|
out[op++] = (in2 >>> 16) & 0xffff;
|
|
out[op++] = (in3 >>> 0) & 0xffff;
|
|
out[op++] = (in3 >>> 16) & 0xffff;
|
|
out[op++] = (in4 >>> 0) & 0xffff;
|
|
out[op++] = (in4 >>> 16) & 0xffff;
|
|
out[op++] = (in5 >>> 0) & 0xffff;
|
|
out[op++] = (in5 >>> 16) & 0xffff;
|
|
out[op++] = (in6 >>> 0) & 0xffff;
|
|
out[op++] = (in6 >>> 16) & 0xffff;
|
|
out[op++] = (in7 >>> 0) & 0xffff;
|
|
out[op++] = (in7 >>> 16) & 0xffff;
|
|
out[op++] = (in8 >>> 0) & 0xffff;
|
|
out[op++] = (in8 >>> 16) & 0xffff;
|
|
out[op++] = (in9 >>> 0) & 0xffff;
|
|
out[op++] = (in9 >>> 16) & 0xffff;
|
|
out[op++] = (in10 >>> 0) & 0xffff;
|
|
out[op++] = (in10 >>> 16) & 0xffff;
|
|
out[op++] = (in11 >>> 0) & 0xffff;
|
|
out[op++] = (in11 >>> 16) & 0xffff;
|
|
out[op++] = (in12 >>> 0) & 0xffff;
|
|
out[op++] = (in12 >>> 16) & 0xffff;
|
|
out[op++] = (in13 >>> 0) & 0xffff;
|
|
out[op++] = (in13 >>> 16) & 0xffff;
|
|
out[op++] = (in14 >>> 0) & 0xffff;
|
|
out[op++] = (in14 >>> 16) & 0xffff;
|
|
out[op++] = (in15 >>> 0) & 0xffff;
|
|
out[op] = (in15 >>> 16) & 0xffff;
|
|
}
|
|
export function fastUnpack256_1(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x1;
|
|
out[op++] = (in0 >>> 1) & 0x1;
|
|
out[op++] = (in0 >>> 2) & 0x1;
|
|
out[op++] = (in0 >>> 3) & 0x1;
|
|
out[op++] = (in0 >>> 4) & 0x1;
|
|
out[op++] = (in0 >>> 5) & 0x1;
|
|
out[op++] = (in0 >>> 6) & 0x1;
|
|
out[op++] = (in0 >>> 7) & 0x1;
|
|
out[op++] = (in0 >>> 8) & 0x1;
|
|
out[op++] = (in0 >>> 9) & 0x1;
|
|
out[op++] = (in0 >>> 10) & 0x1;
|
|
out[op++] = (in0 >>> 11) & 0x1;
|
|
out[op++] = (in0 >>> 12) & 0x1;
|
|
out[op++] = (in0 >>> 13) & 0x1;
|
|
out[op++] = (in0 >>> 14) & 0x1;
|
|
out[op++] = (in0 >>> 15) & 0x1;
|
|
out[op++] = (in0 >>> 16) & 0x1;
|
|
out[op++] = (in0 >>> 17) & 0x1;
|
|
out[op++] = (in0 >>> 18) & 0x1;
|
|
out[op++] = (in0 >>> 19) & 0x1;
|
|
out[op++] = (in0 >>> 20) & 0x1;
|
|
out[op++] = (in0 >>> 21) & 0x1;
|
|
out[op++] = (in0 >>> 22) & 0x1;
|
|
out[op++] = (in0 >>> 23) & 0x1;
|
|
out[op++] = (in0 >>> 24) & 0x1;
|
|
out[op++] = (in0 >>> 25) & 0x1;
|
|
out[op++] = (in0 >>> 26) & 0x1;
|
|
out[op++] = (in0 >>> 27) & 0x1;
|
|
out[op++] = (in0 >>> 28) & 0x1;
|
|
out[op++] = (in0 >>> 29) & 0x1;
|
|
out[op++] = (in0 >>> 30) & 0x1;
|
|
out[op++] = (in0 >>> 31) & 0x1;
|
|
}
|
|
}
|
|
export function fastUnpack256_2(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x3;
|
|
out[op++] = (in0 >>> 2) & 0x3;
|
|
out[op++] = (in0 >>> 4) & 0x3;
|
|
out[op++] = (in0 >>> 6) & 0x3;
|
|
out[op++] = (in0 >>> 8) & 0x3;
|
|
out[op++] = (in0 >>> 10) & 0x3;
|
|
out[op++] = (in0 >>> 12) & 0x3;
|
|
out[op++] = (in0 >>> 14) & 0x3;
|
|
out[op++] = (in0 >>> 16) & 0x3;
|
|
out[op++] = (in0 >>> 18) & 0x3;
|
|
out[op++] = (in0 >>> 20) & 0x3;
|
|
out[op++] = (in0 >>> 22) & 0x3;
|
|
out[op++] = (in0 >>> 24) & 0x3;
|
|
out[op++] = (in0 >>> 26) & 0x3;
|
|
out[op++] = (in0 >>> 28) & 0x3;
|
|
out[op++] = (in0 >>> 30) & 0x3;
|
|
out[op++] = (in1 >>> 0) & 0x3;
|
|
out[op++] = (in1 >>> 2) & 0x3;
|
|
out[op++] = (in1 >>> 4) & 0x3;
|
|
out[op++] = (in1 >>> 6) & 0x3;
|
|
out[op++] = (in1 >>> 8) & 0x3;
|
|
out[op++] = (in1 >>> 10) & 0x3;
|
|
out[op++] = (in1 >>> 12) & 0x3;
|
|
out[op++] = (in1 >>> 14) & 0x3;
|
|
out[op++] = (in1 >>> 16) & 0x3;
|
|
out[op++] = (in1 >>> 18) & 0x3;
|
|
out[op++] = (in1 >>> 20) & 0x3;
|
|
out[op++] = (in1 >>> 22) & 0x3;
|
|
out[op++] = (in1 >>> 24) & 0x3;
|
|
out[op++] = (in1 >>> 26) & 0x3;
|
|
out[op++] = (in1 >>> 28) & 0x3;
|
|
out[op++] = (in1 >>> 30) & 0x3;
|
|
}
|
|
}
|
|
export function fastUnpack256_3(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
const in2 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x7;
|
|
out[op++] = (in0 >>> 3) & 0x7;
|
|
out[op++] = (in0 >>> 6) & 0x7;
|
|
out[op++] = (in0 >>> 9) & 0x7;
|
|
out[op++] = (in0 >>> 12) & 0x7;
|
|
out[op++] = (in0 >>> 15) & 0x7;
|
|
out[op++] = (in0 >>> 18) & 0x7;
|
|
out[op++] = (in0 >>> 21) & 0x7;
|
|
out[op++] = (in0 >>> 24) & 0x7;
|
|
out[op++] = (in0 >>> 27) & 0x7;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0x1) << 2)) & 0x7;
|
|
out[op++] = (in1 >>> 1) & 0x7;
|
|
out[op++] = (in1 >>> 4) & 0x7;
|
|
out[op++] = (in1 >>> 7) & 0x7;
|
|
out[op++] = (in1 >>> 10) & 0x7;
|
|
out[op++] = (in1 >>> 13) & 0x7;
|
|
out[op++] = (in1 >>> 16) & 0x7;
|
|
out[op++] = (in1 >>> 19) & 0x7;
|
|
out[op++] = (in1 >>> 22) & 0x7;
|
|
out[op++] = (in1 >>> 25) & 0x7;
|
|
out[op++] = (in1 >>> 28) & 0x7;
|
|
out[op++] = ((in1 >>> 31) | ((in2 & 0x3) << 1)) & 0x7;
|
|
out[op++] = (in2 >>> 2) & 0x7;
|
|
out[op++] = (in2 >>> 5) & 0x7;
|
|
out[op++] = (in2 >>> 8) & 0x7;
|
|
out[op++] = (in2 >>> 11) & 0x7;
|
|
out[op++] = (in2 >>> 14) & 0x7;
|
|
out[op++] = (in2 >>> 17) & 0x7;
|
|
out[op++] = (in2 >>> 20) & 0x7;
|
|
out[op++] = (in2 >>> 23) & 0x7;
|
|
out[op++] = (in2 >>> 26) & 0x7;
|
|
out[op++] = (in2 >>> 29) & 0x7;
|
|
}
|
|
}
|
|
export function fastUnpack256_4(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
const in2 = inValues[ip++] >>> 0;
|
|
const in3 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0xf;
|
|
out[op++] = (in0 >>> 4) & 0xf;
|
|
out[op++] = (in0 >>> 8) & 0xf;
|
|
out[op++] = (in0 >>> 12) & 0xf;
|
|
out[op++] = (in0 >>> 16) & 0xf;
|
|
out[op++] = (in0 >>> 20) & 0xf;
|
|
out[op++] = (in0 >>> 24) & 0xf;
|
|
out[op++] = (in0 >>> 28) & 0xf;
|
|
out[op++] = (in1 >>> 0) & 0xf;
|
|
out[op++] = (in1 >>> 4) & 0xf;
|
|
out[op++] = (in1 >>> 8) & 0xf;
|
|
out[op++] = (in1 >>> 12) & 0xf;
|
|
out[op++] = (in1 >>> 16) & 0xf;
|
|
out[op++] = (in1 >>> 20) & 0xf;
|
|
out[op++] = (in1 >>> 24) & 0xf;
|
|
out[op++] = (in1 >>> 28) & 0xf;
|
|
out[op++] = (in2 >>> 0) & 0xf;
|
|
out[op++] = (in2 >>> 4) & 0xf;
|
|
out[op++] = (in2 >>> 8) & 0xf;
|
|
out[op++] = (in2 >>> 12) & 0xf;
|
|
out[op++] = (in2 >>> 16) & 0xf;
|
|
out[op++] = (in2 >>> 20) & 0xf;
|
|
out[op++] = (in2 >>> 24) & 0xf;
|
|
out[op++] = (in2 >>> 28) & 0xf;
|
|
out[op++] = (in3 >>> 0) & 0xf;
|
|
out[op++] = (in3 >>> 4) & 0xf;
|
|
out[op++] = (in3 >>> 8) & 0xf;
|
|
out[op++] = (in3 >>> 12) & 0xf;
|
|
out[op++] = (in3 >>> 16) & 0xf;
|
|
out[op++] = (in3 >>> 20) & 0xf;
|
|
out[op++] = (in3 >>> 24) & 0xf;
|
|
out[op++] = (in3 >>> 28) & 0xf;
|
|
}
|
|
}
|
|
export function fastUnpack256_5(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
const in2 = inValues[ip++] >>> 0;
|
|
const in3 = inValues[ip++] >>> 0;
|
|
const in4 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x1f;
|
|
out[op++] = (in0 >>> 5) & 0x1f;
|
|
out[op++] = (in0 >>> 10) & 0x1f;
|
|
out[op++] = (in0 >>> 15) & 0x1f;
|
|
out[op++] = (in0 >>> 20) & 0x1f;
|
|
out[op++] = (in0 >>> 25) & 0x1f;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0x7) << 2)) & 0x1f;
|
|
out[op++] = (in1 >>> 3) & 0x1f;
|
|
out[op++] = (in1 >>> 8) & 0x1f;
|
|
out[op++] = (in1 >>> 13) & 0x1f;
|
|
out[op++] = (in1 >>> 18) & 0x1f;
|
|
out[op++] = (in1 >>> 23) & 0x1f;
|
|
out[op++] = ((in1 >>> 28) | ((in2 & 0x1) << 4)) & 0x1f;
|
|
out[op++] = (in2 >>> 1) & 0x1f;
|
|
out[op++] = (in2 >>> 6) & 0x1f;
|
|
out[op++] = (in2 >>> 11) & 0x1f;
|
|
out[op++] = (in2 >>> 16) & 0x1f;
|
|
out[op++] = (in2 >>> 21) & 0x1f;
|
|
out[op++] = (in2 >>> 26) & 0x1f;
|
|
out[op++] = ((in2 >>> 31) | ((in3 & 0xf) << 1)) & 0x1f;
|
|
out[op++] = (in3 >>> 4) & 0x1f;
|
|
out[op++] = (in3 >>> 9) & 0x1f;
|
|
out[op++] = (in3 >>> 14) & 0x1f;
|
|
out[op++] = (in3 >>> 19) & 0x1f;
|
|
out[op++] = (in3 >>> 24) & 0x1f;
|
|
out[op++] = ((in3 >>> 29) | ((in4 & 0x3) << 3)) & 0x1f;
|
|
out[op++] = (in4 >>> 2) & 0x1f;
|
|
out[op++] = (in4 >>> 7) & 0x1f;
|
|
out[op++] = (in4 >>> 12) & 0x1f;
|
|
out[op++] = (in4 >>> 17) & 0x1f;
|
|
out[op++] = (in4 >>> 22) & 0x1f;
|
|
out[op++] = (in4 >>> 27) & 0x1f;
|
|
}
|
|
}
|
|
export function fastUnpack256_6(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
const in2 = inValues[ip++] >>> 0;
|
|
const in3 = inValues[ip++] >>> 0;
|
|
const in4 = inValues[ip++] >>> 0;
|
|
const in5 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x3f;
|
|
out[op++] = (in0 >>> 6) & 0x3f;
|
|
out[op++] = (in0 >>> 12) & 0x3f;
|
|
out[op++] = (in0 >>> 18) & 0x3f;
|
|
out[op++] = (in0 >>> 24) & 0x3f;
|
|
out[op++] = ((in0 >>> 30) | ((in1 & 0xf) << 2)) & 0x3f;
|
|
out[op++] = (in1 >>> 4) & 0x3f;
|
|
out[op++] = (in1 >>> 10) & 0x3f;
|
|
out[op++] = (in1 >>> 16) & 0x3f;
|
|
out[op++] = (in1 >>> 22) & 0x3f;
|
|
out[op++] = ((in1 >>> 28) | ((in2 & 0x3) << 4)) & 0x3f;
|
|
out[op++] = (in2 >>> 2) & 0x3f;
|
|
out[op++] = (in2 >>> 8) & 0x3f;
|
|
out[op++] = (in2 >>> 14) & 0x3f;
|
|
out[op++] = (in2 >>> 20) & 0x3f;
|
|
out[op++] = (in2 >>> 26) & 0x3f;
|
|
out[op++] = (in3 >>> 0) & 0x3f;
|
|
out[op++] = (in3 >>> 6) & 0x3f;
|
|
out[op++] = (in3 >>> 12) & 0x3f;
|
|
out[op++] = (in3 >>> 18) & 0x3f;
|
|
out[op++] = (in3 >>> 24) & 0x3f;
|
|
out[op++] = ((in3 >>> 30) | ((in4 & 0xf) << 2)) & 0x3f;
|
|
out[op++] = (in4 >>> 4) & 0x3f;
|
|
out[op++] = (in4 >>> 10) & 0x3f;
|
|
out[op++] = (in4 >>> 16) & 0x3f;
|
|
out[op++] = (in4 >>> 22) & 0x3f;
|
|
out[op++] = ((in4 >>> 28) | ((in5 & 0x3) << 4)) & 0x3f;
|
|
out[op++] = (in5 >>> 2) & 0x3f;
|
|
out[op++] = (in5 >>> 8) & 0x3f;
|
|
out[op++] = (in5 >>> 14) & 0x3f;
|
|
out[op++] = (in5 >>> 20) & 0x3f;
|
|
out[op++] = (in5 >>> 26) & 0x3f;
|
|
}
|
|
}
|
|
export function fastUnpack256_7(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
const in2 = inValues[ip++] >>> 0;
|
|
const in3 = inValues[ip++] >>> 0;
|
|
const in4 = inValues[ip++] >>> 0;
|
|
const in5 = inValues[ip++] >>> 0;
|
|
const in6 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0x7f;
|
|
out[op++] = (in0 >>> 7) & 0x7f;
|
|
out[op++] = (in0 >>> 14) & 0x7f;
|
|
out[op++] = (in0 >>> 21) & 0x7f;
|
|
out[op++] = ((in0 >>> 28) | ((in1 & 0x7) << 4)) & 0x7f;
|
|
out[op++] = (in1 >>> 3) & 0x7f;
|
|
out[op++] = (in1 >>> 10) & 0x7f;
|
|
out[op++] = (in1 >>> 17) & 0x7f;
|
|
out[op++] = (in1 >>> 24) & 0x7f;
|
|
out[op++] = ((in1 >>> 31) | ((in2 & 0x3f) << 1)) & 0x7f;
|
|
out[op++] = (in2 >>> 6) & 0x7f;
|
|
out[op++] = (in2 >>> 13) & 0x7f;
|
|
out[op++] = (in2 >>> 20) & 0x7f;
|
|
out[op++] = ((in2 >>> 27) | ((in3 & 0x3) << 5)) & 0x7f;
|
|
out[op++] = (in3 >>> 2) & 0x7f;
|
|
out[op++] = (in3 >>> 9) & 0x7f;
|
|
out[op++] = (in3 >>> 16) & 0x7f;
|
|
out[op++] = (in3 >>> 23) & 0x7f;
|
|
out[op++] = ((in3 >>> 30) | ((in4 & 0x1f) << 2)) & 0x7f;
|
|
out[op++] = (in4 >>> 5) & 0x7f;
|
|
out[op++] = (in4 >>> 12) & 0x7f;
|
|
out[op++] = (in4 >>> 19) & 0x7f;
|
|
out[op++] = ((in4 >>> 26) | ((in5 & 0x1) << 6)) & 0x7f;
|
|
out[op++] = (in5 >>> 1) & 0x7f;
|
|
out[op++] = (in5 >>> 8) & 0x7f;
|
|
out[op++] = (in5 >>> 15) & 0x7f;
|
|
out[op++] = (in5 >>> 22) & 0x7f;
|
|
out[op++] = ((in5 >>> 29) | ((in6 & 0xf) << 3)) & 0x7f;
|
|
out[op++] = (in6 >>> 4) & 0x7f;
|
|
out[op++] = (in6 >>> 11) & 0x7f;
|
|
out[op++] = (in6 >>> 18) & 0x7f;
|
|
out[op++] = (in6 >>> 25) & 0x7f;
|
|
}
|
|
}
|
|
export function fastUnpack256_8(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
const in1 = inValues[ip++] >>> 0;
|
|
const in2 = inValues[ip++] >>> 0;
|
|
const in3 = inValues[ip++] >>> 0;
|
|
const in4 = inValues[ip++] >>> 0;
|
|
const in5 = inValues[ip++] >>> 0;
|
|
const in6 = inValues[ip++] >>> 0;
|
|
const in7 = inValues[ip++] >>> 0;
|
|
out[op++] = (in0 >>> 0) & 0xff;
|
|
out[op++] = (in0 >>> 8) & 0xff;
|
|
out[op++] = (in0 >>> 16) & 0xff;
|
|
out[op++] = (in0 >>> 24) & 0xff;
|
|
out[op++] = (in1 >>> 0) & 0xff;
|
|
out[op++] = (in1 >>> 8) & 0xff;
|
|
out[op++] = (in1 >>> 16) & 0xff;
|
|
out[op++] = (in1 >>> 24) & 0xff;
|
|
out[op++] = (in2 >>> 0) & 0xff;
|
|
out[op++] = (in2 >>> 8) & 0xff;
|
|
out[op++] = (in2 >>> 16) & 0xff;
|
|
out[op++] = (in2 >>> 24) & 0xff;
|
|
out[op++] = (in3 >>> 0) & 0xff;
|
|
out[op++] = (in3 >>> 8) & 0xff;
|
|
out[op++] = (in3 >>> 16) & 0xff;
|
|
out[op++] = (in3 >>> 24) & 0xff;
|
|
out[op++] = (in4 >>> 0) & 0xff;
|
|
out[op++] = (in4 >>> 8) & 0xff;
|
|
out[op++] = (in4 >>> 16) & 0xff;
|
|
out[op++] = (in4 >>> 24) & 0xff;
|
|
out[op++] = (in5 >>> 0) & 0xff;
|
|
out[op++] = (in5 >>> 8) & 0xff;
|
|
out[op++] = (in5 >>> 16) & 0xff;
|
|
out[op++] = (in5 >>> 24) & 0xff;
|
|
out[op++] = (in6 >>> 0) & 0xff;
|
|
out[op++] = (in6 >>> 8) & 0xff;
|
|
out[op++] = (in6 >>> 16) & 0xff;
|
|
out[op++] = (in6 >>> 24) & 0xff;
|
|
out[op++] = (in7 >>> 0) & 0xff;
|
|
out[op++] = (in7 >>> 8) & 0xff;
|
|
out[op++] = (in7 >>> 16) & 0xff;
|
|
out[op++] = (in7 >>> 24) & 0xff;
|
|
}
|
|
}
|
|
export function fastUnpack256_16(inValues, inPos, out, outPos) {
|
|
let op = outPos;
|
|
let ip = inPos;
|
|
for (let i = 0; i < 128; i++) {
|
|
const in0 = inValues[ip++] >>> 0;
|
|
out[op++] = in0 & 0xffff;
|
|
out[op++] = (in0 >>> 16) & 0xffff;
|
|
}
|
|
}
|
|
export function fastUnpack256_Generic(inValues, inPos, out, outPos, bitWidth) {
|
|
const mask = MASKS[bitWidth] >>> 0;
|
|
let inputWordIndex = inPos;
|
|
let bitOffset = 0;
|
|
let currentWord = inValues[inputWordIndex] >>> 0;
|
|
let op = outPos;
|
|
for (let c = 0; c < 8; c++) {
|
|
for (let i = 0; i < 32; i++) {
|
|
if (bitOffset + bitWidth <= 32) {
|
|
const value = (currentWord >>> bitOffset) & mask;
|
|
out[op + i] = value | 0;
|
|
bitOffset += bitWidth;
|
|
if (bitOffset === 32) {
|
|
bitOffset = 0;
|
|
inputWordIndex++;
|
|
if (i !== 31) {
|
|
currentWord = inValues[inputWordIndex] >>> 0;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
const lowBits = 32 - bitOffset;
|
|
const low = currentWord >>> bitOffset;
|
|
inputWordIndex++;
|
|
currentWord = inValues[inputWordIndex] >>> 0;
|
|
const highBits = bitWidth - lowBits;
|
|
const highMask = (-1 >>> (32 - highBits)) >>> 0;
|
|
const high = currentWord & highMask;
|
|
const value = (low | (high << lowBits)) & mask;
|
|
out[op + i] = value | 0;
|
|
bitOffset = highBits;
|
|
}
|
|
}
|
|
op += 32;
|
|
bitOffset = 0;
|
|
if (c < 7) {
|
|
currentWord = inValues[inputWordIndex] >>> 0;
|
|
}
|
|
}
|
|
}
|
|
//# sourceMappingURL=fastPforUnpack.js.map
|