noise.jl

Public functions

QuantumACES.DepolarisingParametersType
DepolarisingParameters

Parameterises a depolarising Pauli noise model.

Fields

  • r_1::Float64: Single-qubit gate entanglement infidelity, the sum of all 3 non-identity Pauli error probabilities.
  • r_2::Float64: Two-qubit gate entanglement infidelity, the sum of all 15 non-identity Pauli error probabilities.
  • r_m::Float64: Measurement entanglement infidelity, the measurement error probability.
  • noise_name::String: Noise parameter name for saving data.
source
QuantumACES.LognormalParametersType
LognormalParameters

Parameterises a log-normally random Pauli noise model.

Fields

  • r_1::Float64: Average single-qubit gate entanglement infidelity, the sum of all 3 non-identity Pauli error probabilities.
  • r_2::Float64: Average two-qubit gate entanglement infidelity, the sum of all 15 non-identity Pauli error probabilities.
  • r_m::Float64: Average measurement entanglement infidelity, the measurement error probability.
  • total_std_log::Float64: Approximate standard deviation of the logarithm of the entanglement infidelity across all gate types.
  • seed::UInt64: Random seed used to generate the noise.
  • noise_name::String: Noise parameter name for saving data.
source
QuantumACES.get_dep_paramMethod
get_dep_param(r_1::Float64, r_2::Float64, r_m::Float64)

Return a DepolarisingParameters object that parameterises a depolarising Pauli noise model with single-qubit, two-qubit, and measurement infidelities r_1, r_2, and r_m, respectively.

source
QuantumACES.get_gate_probabilitiesMethod
get_gate_probabilities(total_gates::Vector{Gate}, noise_param::DepolarisingParameters)
get_gate_probabilities(total_gates::Vector{Gate}, noise_param::LognormalParameters)

Returns a dictionary of the Pauli error probabilities for each gate in total_gates generated according to the noise parameters noise_param.

The order in which Pauli stores Pauli operators as bit strings orders the Pauli error probabilities for each gate. For single-qubit gates, the Pauli error probabilities are ordered as I, X, Z, Y. For two-qubit gates, the Pauli error probabilities are ordered as II, XI, IX, XX, ZI, YI, ZX, YX, IZ, XZ, IY, XY, ZZ, YZ, ZY, YY.

source
QuantumACES.get_log_paramMethod
get_log_param(r_1::Float64, r_2::Float64, r_m::Float64, total_std_log::Float64; seed::Union{UInt64, Nothing} = nothing)

Return a LognormalParameters object that parameterises a log-normally random Pauli noise model with average single-qubit, two-qubit, and measurement infidelities r_1, r_2, and r_m, respectively, approximate standard deviation of the logarithm of the entanglement infidelity total_std_log, and random seed seed, which is randomly generated if not supplied.

source

Private functions

QuantumACES.get_gate_eigenvaluesMethod
get_gate_eigenvalues(gate_probabilities::Dict{Gate, Vector{Float64}}, total_gates::Vector{Gate}, gate_index::Dict{Gate, Int}, N::Int)

Returns the eigenvalues corresponding to the supplied Pauli error probabilities gate_probabilities, ordered by the gates into a vector for the gates total_gates using the index data gate_index and N produced by index_gates.

source