single_qubit_randomized_benchmarking(sampler: cirq.work.sampler.Sampler, qubit: cirq.devices.grid_qubit.GridQubit, use_xy_basis: bool = True, *, num_clifford_range: Sequence[int] = range(10, 100, 10), num_circuits: int = 20, repetitions: int = 1000) → cirq.experiments.qubit_characterizations.RandomizedBenchMarkResult¶
Clifford-based randomized benchmarking (RB) of a single qubit.A total of num_circuits random circuits are generated, each of whichcontains a fixed number of single-qubit Clifford gates plus oneadditional Clifford that inverts the whole sequence and a measurement inthe z-basis. Each circuit is repeated a number of times and the average|0> state population is determined from the measurement outcomes of allof the circuits.The above process is done for different circuit lengths specified by theintegers in num_clifford_range. For example, an integer 10 means therandom circuits will contain 10 Clifford gates each plus one invertingClifford. The user may use the result to extract an average gate fidelity,by analyzing the change in the average |0> state population at differentcircuit lengths. For actual experiments, one should choosenum_clifford_range such that a clear exponential decay is observed in theresults.
See Barends et al., Nature 508, 500 for details.
sampler – The quantum engine or simulator to run the circuits.
qubit – The qubit under test.
use_xy_basis – Determines if the Clifford gates are built with x and y rotations (True) or x and z rotations (False).
num_clifford_range – The different numbers of Cliffords in the RB study.
num_circuits – The number of random circuits generated for each number of Cliffords.
repetitions – The number of repetitions of each circuit.
A RandomizedBenchMarkResult object that stores and plots the result.