public static int xorPack( int[] inBuf, int inOff, int[] outBuf, int outOff, int validBits, int context, int[] work) { work[0] = inBuf[inOff] ^ context; for (int i = 1, p = inOff + 1; i < 32; ++i, ++p) { work[i] = inBuf[p] ^ inBuf[p - 1]; } if (DEBUG_DISABLE_BITPACKING) { for (int i = 0; i < 32; ++i) { outBuf[outOff + i] = work[i]; } } else { BitPacking.fastpackwithoutmask(work, 0, outBuf, outOff, validBits); } return validBits; }
public static int xorUnpack( int[] inBuf, int inOff, int[] outBuf, int outOff, int validBits, int context, int[] work) { if (DEBUG_DISABLE_BITPACKING) { for (int i = 0; i < 32; ++i) { work[i] = inBuf[inOff + i]; } } else { BitPacking.fastunpack(inBuf, inOff, work, 0, validBits); } outBuf[outOff] = context = work[0] ^ context; for (int i = 1, p = outOff + 1; i < 32; ++i, ++p) { outBuf[p] = context = work[i] ^ context; } return validBits; }