device.jl

Public functions

QuantumACES.estimate_qiskit_ensembleMethod
estimate_qiskit_ensemble(d_rand::RandDesign, qiskit_qubit_map::Vector{Int}, experiment_shots::Integer; fail_jobs::Vector{Int} = Int[], backend::String = "qiskit", ls_type::Symbol = :fgls, split::Bool = false, min_eigenvalue::Real = 0.1)

Returns estimated circuit eigenvalues, and gate noise estimates from Qiskit data processed with [process_qiskit_ensemble] for the randomised experimental design d_rand with experiment_shots shots per circuit. Avoids attempting to load failed jobs specified by fail_jobs. The simulated data is loaded according to the label implied by the supplied backend, and the estimation procedure uses the least squares estimator ls_type, splitting the gate eigenvalue estimator projection across the gates if split is true, and includes only circuit eigenvalues which are at least min_eigenvalue.

source
QuantumACES.estimate_stim_ensembleMethod
estimate_stim_ensemble(d_rand::RandDesign, experiment_shots::Integer; fail_jobs::Vector{Int} = Int[], simulation_seed::Union{UInt64, Nothing} = nothing, ls_type::Symbol = :fgls, split::Bool = false, min_eigenvalue::Real = 0.1)

Returns estimated circuit eigenvalues and gate noise estimates from simulated Stim data for the randomised experimental design d_rand with experiment_shots shots per circuit produced by simulate_stim_ensemble. Avoids attempting to load failed jobs specified by fail_jobs. The simulated data is loaded according to the label implied by the supplied simulation_seed, and the estimation procedure uses the least squares estimator ls_type, splitting the gate eigenvalue estimator projection across the gates if split is true, and includes only circuit eigenvalues which are at least min_eigenvalue.

source
QuantumACES.process_qiskit_ensembleMethod
process_qiskit_ensemble(d_rand::RandDesign, qiskit_qubit_num::Integer, qiskit_qubit_map::Vector{Int}, experiment_shots::Integer; backend::String = "qiskit", prefix::String = "result")

Saves a processed version of saved Qiskit data for the randomised experimental design d_rand, produced for example by simulate_qiskit_ensemble, whose associated ensemble of Qiskit circuits act on qiskit_qubit_num qubits and are indexed by the mapping qiskit_qubit_map, and which were run with experiment_shots shots for each circuit. The saved data is loaded according to the labelling implied by the supplied backend and prefix.

source
QuantumACES.simulate_qiskit_ensembleMethod
simulate_qiskit_ensemble(d_rand::RandDesign, qiskit_ensemble::Py, experiment_shots::Integer; backend::String = "qiskit", prefix::String = "result", simulator::Py = aer.AerSimulator(; method = "stabilizer"), diagnostics::Bool = true)

Saves data simulated with Qiskit for the randomised experimental design d_rand with an associated ensemble of Qiskit circuits qiskit_ensemble produced by get_stim_qiskit_ensemble, with experiment_shots shots for each circuit. The saved data is labelled according to the supplied backend and prefix, and simulated using the supplied simulator, displaying diagnostics if diagnostics is `true.

source
QuantumACES.simulate_stim_ensembleMethod
simulate_stim_ensemble(d_rand::RandDesign, stim_ensemble::Vector{Vector{String}}, experiment_shots::Integer; seed::Union{UInt64, Nothing} = nothing, diagnostics::Bool = true)

Saves data simulated with Stim for the randomised experimental design d_rand with an associated ensemble of Stim circuits stim_ensemble produced by get_stim_qiskit_ensemble, with experiment_shots shots for each circuit. The simulation uses the random seed seed and displays diagnostics if diagnostics is true.

source

Private functions