if x[i] & q != 0
                        x[0] ^= p # invert
                    else
                        t = (x[0] ^ x[i]) & p;
                        x[0] ^= t;