2930313233343536373839
private void precomputePopTable() { for (int i = 0; i < 256; i++) { Polynomial f = Polynomial.createFromLong(i); f = f.shiftLeft(BigInteger.valueOf(bytesPerWindow * 8)); f = f.mod(poly); popTable[i] = f.toBigInteger().longValue(); } } @Override
96979899100101102103104105106
@Override public synchronized void pushByte(byte b) { Polynomial f = fingerprint; f = f.shiftLeft(byteShift); f = f.or(Polynomial.createFromLong(b & 0xFFL)); f = f.mod(poly); fingerprint = f; if (bytesPerWindow > 0) { byteWindow.add(b);
121122123124125126127128129130131
*/ public synchronized void popByte() { byte b = byteWindow.poll(); Polynomial f = Polynomial.createFromLong(b & 0xFFL); f = f.shiftLeft(windowShift); f = f.mod(poly); fingerprint = fingerprint.xor(f); } @Override
5657585960616263646566
*/ private void precomputePushTable() { for (int i = 0; i < 512; i++) { Polynomial f = Polynomial.createFromLong(i); f = f.shiftLeft(poly.degree()); f = f.xor(f.mod(poly)); pushTable[i] = f.toBigInteger().longValue(); } } @Override