iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.generate_fixed_depth_mrb_circuits

iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.generate_fixed_depth_mrb_circuits#

iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.generate_fixed_depth_mrb_circuits(qubits: list[int], backend_arg: IQMBackendBase | str, mrb_config: list, routing_method: RoutingMethod = RoutingMethod.BASIC, simulation_method: Literal['automatic', 'statevector', 'stabilizer', 'extended_stabilizer', 'matrix_product_state'] = 'automatic') dict[int, dict[str, list[IQMCircuit]]]#

Generates a dictionary of MRB circuits at fixed depth, indexed by sample number.

Parameters:
  • qubits (list[int]) – List of integers specifying physical qubit labels.

  • backend_arg (IQMBackendBase | str) – Backend

  • mrb_config (list) – Wraps the following parameters. circ_samples: number of sets of Pauli-dressed circuit samples. pauli_samples_per_circ: number of Pauli samples per circuit. depth: depth (number of canonical layers) of the circuits. density_2q_gates: expected density of 2Q gates. two_qubit_gate_ensemble: dictionary with keys being str specifying 2Q gates, and values being corresponding probabilities; default is None. clifford_sqg_probability: probability with which to uniformly sample Clifford 1Q gates; default is 1.0. sqg_gate_ensemble: dictionary with keys being str specifying 1Q gates, and values being corresponding probabilities; default is None. qiskit_optim_level: Qiskit transpiler optimization level; default is 1.

  • routing_method (RoutingMethod) – Qiskit transpiler routing method. Default is “basic”.

  • simulation_method (Literal['automatic', 'statevector', 'stabilizer', 'extended_stabilizer', 'matrix_product_state']) – Qiskit’s Aer simulation method. Default is “automatic”.

Returns:

A dictionary of lists of Pauli-dressed quantum circuits corresponding to the circuit sample index.

Return type:

dict[int, dict[str, list[IQMCircuit]]]