iqm.benchmarks.randomized_benchmarking.direct_rb.direct_rb.generate_drb_circuits#
- iqm.benchmarks.randomized_benchmarking.direct_rb.direct_rb.generate_drb_circuits(qubits: Sequence[int], depth: int, circ_samples: int, backend_arg: IQMBackendBase | str, density_2q_gates: float = 0.25, two_qubit_gate_ensemble: dict[str, float] | None = None, clifford_sqg_probability: float = 1.0, sqg_gate_ensemble: dict[str, float] | None = None, qiskit_optim_level: int = 1, routing_method: RoutingMethod = RoutingMethod.BASIC) dict[str, list[IQMCircuit]]#
Generates lists of samples of Direct RB circuits.
The structure is: Stabilizer preparation - Layers of canonical randomly sampled gates - Stabilizer measurement
- Parameters:
depth (int) – Depth (number of canonical layers) of the circuit.
circ_samples (int) – Number of circuit samples to generate.
backend_arg (IQMBackendBase | str) – Backend.
density_2q_gates (float) – Expected density of 2Q gates.
two_qubit_gate_ensemble (dict[str, float] | None) – Dictionary with keys being str specifying 2Q gates, and values being corresponding probabilities. Default is None.
clifford_sqg_probability (float) – Probability with which to uniformly sample Clifford 1Q gates. Default is 1.0.
sqg_gate_ensemble (dict[str, float] | None) – Dictionary with keys being str specifying 1Q gates, and values being corresponding probabilities. Default is None.
qiskit_optim_level (int) – Qiskit transpiler optimization level. Default is 1.
routing_method (RoutingMethod) – Qiskit transpiler routing method. Default is “basic”.
- Returns:
Dictionary with keys “transpiled”, “untranspiled” and values as lists of respective DRB circuits.
- Return type:
dict[str, list[IQMCircuit]]