Skip to content

Commit 91c3f45

Browse files
convert cliffords to xz in qubit characterization (#6420)
1 parent a3eed6b commit 91c3f45

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

cirq-core/cirq/experiments/qubit_characterizations.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -739,13 +739,15 @@ def _two_qubit_clifford_matrices(
739739

740740

741741
def _random_single_q_clifford(
742-
qubit: 'cirq.Qid', num_cfds: int, cfds: Sequence[Sequence['cirq.Gate']]
742+
qubit: 'cirq.Qid', num_cfds: int, cfds: Sequence[Sequence['cirq.ops.SingleQubitCliffordGate']]
743743
) -> List['cirq.Operation']:
744744
clifford_group_size = 24
745-
operations = [[gate(qubit) for gate in gates] for gates in cfds]
745+
operations = [[gate.to_phased_xz_gate()(qubit) for gate in gates] for gates in cfds]
746746
gate_ids = list(np.random.choice(clifford_group_size, num_cfds))
747747
adjoint = _reduce_gate_seq([gate for gate_id in gate_ids for gate in cfds[gate_id]]) ** -1
748-
return [op for gate_id in gate_ids for op in operations[gate_id]] + [adjoint(qubit)]
748+
return [op for gate_id in gate_ids for op in operations[gate_id]] + [
749+
adjoint.to_phased_xz_gate()(qubit)
750+
]
749751

750752

751753
def _random_two_q_clifford(

cirq-core/cirq/experiments/qubit_characterizations_test.py

+12
Original file line numberDiff line numberDiff line change
@@ -227,3 +227,15 @@ def test_tomography_plot_raises_for_incorrect_number_of_axes():
227227
with pytest.raises(ValueError):
228228
_, axes = plt.subplots(1, 3)
229229
result.plot(axes)
230+
231+
232+
def test_single_qubit_cliffords_gateset():
233+
qubit = GridQubit(0, 0)
234+
clifford_group = cirq.experiments.qubit_characterizations._single_qubit_cliffords()
235+
c = cirq.experiments.qubit_characterizations._create_parallel_rb_circuit(
236+
(qubit,), 3, clifford_group.c1_in_xy
237+
)
238+
device = cirq.testing.ValidatingTestDevice(
239+
qubits=(qubit,), allowed_gates=(cirq.ops.PhasedXZGate, cirq.MeasurementGate)
240+
)
241+
device.validate_circuit(c)

0 commit comments

Comments
 (0)