device.jl
Public functions
QuantumACES.estimate_qiskit_ensemble
— Methodestimate_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
.
QuantumACES.estimate_stim_ensemble
— Methodestimate_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
.
QuantumACES.process_qiskit_ensemble
— Methodprocess_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
.
QuantumACES.simulate_qiskit_ensemble
— Methodsimulate_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.
QuantumACES.simulate_stim_ensemble
— Methodsimulate_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
.