private final void isaac() {
		int i, x, y;

		b += ++c;
		for (i = 0; i < SIZE; ++i) {
			x = mem[i];
			switch (i & 3) {
			case 0:
				a ^= a << 13;
				break;
			case 1:
				a ^= a >>> 6;
				break;
			case 2:
				a ^= a << 2;
				break;
			case 3:
				a ^= a >>> 16;
				break;
			}
			a += mem[i + SIZE / 2 & SIZE - 1];
			mem[i] = y = mem[(x & MASK) >> 2] + a + b;
			rsl[i] = b = mem[(y >> SIZEL & MASK) >> 2] + x;
		}
	}