def _define(self): definition = [] # q = c, x, z, anc q = QuantumRegister(self.total_n, "q") rule = [ (CMULTaModNGate(self.a, self.N, self.n), [q[i] for i in range(self.total_n)], []), ] for i in range(self.n): rule.append((FredkinGate(), [q[0], q[i + 1], q[self.n + 1 + i]], [])), rule.append( (CMULTaModNGate(modInverse(self.a, self.N), self.N, self.n, inverse=True), [q[i] for i in range(self.total_n)], [])) for inst in rule: definition.append(inst) self.definition = definition
def test_controlled_swap(self): """Test creation of controlled swap gate""" self.assertEqual(SwapGate().control(), FredkinGate())