def test_conversions() -> None: circ = get_match_circuit() coms = cirq_to_tk(circ) cirq_false = tk_to_cirq(coms, copy_all_qubits=False) cirq_true = tk_to_cirq(coms, copy_all_qubits=True) assert str(circ) == str(cirq_false) assert str(circ) != str(cirq_true) tket_false = cirq_to_tk(cirq_false) tket_true = cirq_to_tk(cirq_true) assert len(tket_false.get_commands()) + len(tket_false.qubits) == len( tket_true.get_commands()) assert tket_true != coms assert tket_false == coms
def run_circuit(self, circuit: Circuit, **kwargs: KwargTypes) -> BackendResult: cirq_circ = tk_to_cirq(circuit) bit_to_qubit_map = {b: q for q, b in circuit.qubit_to_bit_map.items()} if not cirq_circ.has_measurements(): # type: ignore n_shots = cast(int, kwargs.get("n_shots")) return self.empty_result(circuit, n_shots=n_shots) else: run = self._simulator.run(cirq_circ, repetitions=cast(int, kwargs.get("n_shots"))) run_dict = run.data.to_dict() c_bits = [ bit for key in run_dict.keys() for bit in bit_to_qubit_map.keys() if str(bit) == key ] individual_readouts = [ list(readout.values()) for readout in run_dict.values() ] shots = OutcomeArray.from_readouts( [list(r) for r in zip(*individual_readouts)]) return BackendResult(shots=shots, c_bits=c_bits)
def test_conversions() -> None: circ = get_match_circuit() coms = cirq_to_tk(circ) print(str(circ)) print(str(tk_to_cirq(coms))) assert str(circ) == str(tk_to_cirq(coms))
def run_circuit_moments( self, circuit: Circuit, **kwargs: KwargTypes ) -> List[BackendResult]: cirq_circ = tk_to_cirq(circuit) _, q_bits = _get_default_uids(cirq_circ, circuit) return self.package_results(cirq_circ, q_bits)
def run_circuit(self, circuit: Circuit, **kwargs: KwargTypes) -> BackendResult: cirq_circ = tk_to_cirq(circuit, copy_all_qubits=True) _, q_bits = _get_default_uids(cirq_circ, circuit) return self.package_result(cirq_circ, q_bits)
# # We can also view the qubit connectivity graph of a circuit: G.get_qubit_graph() # ### Via Qiskit from pytket.extensions.qiskit import tk_to_qiskit print(tk_to_qiskit(c)) # ### Via Cirq from pytket.extensions.cirq import tk_to_cirq print(tk_to_cirq(c)) # (Note that Cirq cannot represent all gates diagrammatically.) # ### Via Latex # We can create a Latex document containing a diagram of the circuit using the `to_latex_file()` method. This uses the `quantikz` library. The document can be viewed on its own or the Latex can easily be copied and pasted into a larger document. c.to_latex_file("c.tex") # ## Commands # We can retrieve a list of operations comprising a circuit, each represented as a `Command` object: cmds = c.get_commands() print(cmds)