def build_circuit(self, qubit_ops): program = Program() self.qubits = [program.alloc() for _ in range(len(qubit_ops))] program_readout_reg = program.declare("ro", memory_type="BIT", memory_size=len(self.qubits)) for qb, gatestr in zip(self.qubits, qubit_ops): if gatestr == "I": pass elif gatestr == "X": program.gate("X", qubits=[qb], params=[]) elif gatestr == "H": program.gate("H", qubits=[qb], params=[]) elif gatestr == "K": # our one char CX label program.gate( "CNOT", qubits=[self.qubits[self.qubits.index(qb) - 1], qb], params=[]) program.measure_all(*zip(self.qubits, program_readout_reg)) program = address_qubits(program) program.wrap_in_numshots_loop(shots=10) self.program = program