scaling.jl

Public functions

QuantumACES.DepolarisingPlanarScalingType
DepolarisingPlanarScaling

Scaling data for an experimental design for the syndrome extraction circuit of a surface code with depolarising Pauli noise.

Fields

  • dist_range::Vector{Int}: Code distances.
  • merit_scaling::Vector{Merit}: Merit of the design for a range of code distances.
  • G_fit::Function: Gate number fit.
  • G_params::Vector{Int}: Gate number fit parameters; $a + bd + cd^2$.
  • N_fit::Function: Gate eigenvalue number fit.
  • N_params::Vector{Int}: Gate eigenvalue number fit parameters; $a + bd + cd^2$.
  • trace_fit::Function: Trace of the gate eigenvalue estimator covariance matrix fit.
  • trace_params::Vector{Float64}: Trace of the gate eigenvalue estimator covariance matrix fit parameters; $a + bd + cd^2$.
  • trace_sq_fit::Function: Trace of the gate eigenvalue estimator covariance matrix squared fit.
  • trace_sq_params::Vector{Float64}: Trace of the gate eigenvalue estimator covariance matrix squared fit parameters; $a + bd + cd^2$.
  • expectation_fit::Function: Normalised RMS error expectation fit.
  • variance_fit::Function: Normalised RMS error variance fit.
  • circuit_param::AbstractCircuitParameters: Code parameters.
  • noise_param::DepolarisingParameters: Depolarising noise parameters.
  • tuple_set::Vector{Vector{Int}}: Set of tuples which arrange the circuit layers.
  • tuple_set_data::TupleSetData: TupleSetData object that generates the tuple set.
  • shot_weights::Vector{Float64}: Shot weights for each tuple in the set, which add to 1.
  • ls_type::Symbol: Type of least squares estimator for which the merits were calculated.
  • calculation_times::Matrix{Float64}: Time taken to generate the design and calculate the merit, respectively, for each distance.
  • overall_time::Float64: The overall time taken to calculate the merit scaling data for depolarising noise.
source
QuantumACES.LognormalPlanarScalingType
LognormalPlanarScaling

Scaling data for an experimental design for the syndrome extraction circuit of a surface code with log-normal random Pauli noise.

Fields

  • dist_range::Vector{Int}: Code distances.
  • N_fit::Function: Gate eigenvalue number fit.
  • N_params::Vector{Int}: Gate eigenvalue number fit parameters; $a + bd + cd^2$.
  • expectation_scaling::Vector{Vector{Float64}}: Expected normalised RMS error for a range of code distances.
  • expectation_fit::Function: Mean expected normalised RMS error fit.
  • variance_scaling::Vector{Vector{Float64}}: Normalised RMS error variance for a range of code distances.
  • variance_fit::Function: Mean normalised RMS error variance fit.
  • eigenvalues_scaling::Vector{Vector{Vector{Float64}}}: Eigenvalues of the gate log-eigenvalue estimator covariance matrix for a range of code distances.
  • circuit_param::AbstractCircuitParameters: Code parameters.
  • noise_param::LognormalParameters: Log-normal random noise parameters.
  • seeds::Vector{UInt64}: Seeds for the log-normal noise parameters.
  • tuple_set::Vector{Vector{Int}}: Set of tuples which arrange the circuit layers.
  • tuple_set_data::TupleSetData: TupleSetData object that generates the tuple set.
  • shot_weights::Vector{Float64}: Shot weights for each tuple in the set, which add to 1.
  • ls_type::Symbol: Type of least squares estimator for which the merits were calculated.
  • calculation_times::Matrix{Float64}: The time taken to generate the design and calculate the figures of merit for random instances of log-normal Pauli noise, and for depolarising Pauli noise, respectively.
  • overall_time::Float64: The overall time taken to calculate the merit scaling for log-normal random noise.
source
QuantumACES.calc_depolarising_planar_scalingMethod
calc_depolarising_planar_scaling(d::Design, dist_max::Int; kwargs...)
calc_depolarising_planar_scaling(d::Design, dist_range::Vector{Int}; kwargs...)

Returns the scaling data as a DepolarisingPlanarScaling object for the figure of merit of the design d for the syndrome extraction circuit of a surface code with depolarising Pauli noise, as a function of the distance of the code.

Arguments

  • d::Design: Design for which the merit scaling is calculated.
  • dist_max::Int: Maximum code distance for which the merit scaling is calculated.
  • dist_range::Vector{Int}: Vode distances for which the merit scaling is calculated.

Keyword arguments

  • ls_type::Symbol = :none: Type of least squares estimator used to calculate the merit scaling, which defaults to the least squares estimator type of the design, or if that is not specified, :wls.
  • diagnostics::Bool = true: Whether to print diagnostic information.
  • save_data::Bool = false: Whether to save the merit scaling data.
source
QuantumACES.calc_lognormal_planar_scalingMethod
calc_lognormal_planar_scaling(d::Design, dist_max::Int; kwargs...)
calc_lognormal_planar_scaling(d::Design, dist_range::Vector{Int}; kwargs...)

Returns the scaling data as a LognormalPlanarScaling object for the figure of merit of the design d for the syndrome extraction circuit of a surface code with log-normal random Pauli noise, as a function of the distance of the code.

Arguments

  • d::Design: Design for which the merit scaling is calculated.
  • dist_max::Int: Maximum code distance for which the merit scaling is calculated.
  • dist_range::Vector{Int}: Code distances for which the merit scaling is calculated.

Keyword arguments

  • ls_type::Symbol = :none: Type of least squares estimator used to calculate the merit scaling, which defaults to the least squares estimator type of the design, or if that is not specified, :wls.
  • precision::Float64 = 1e-3: Precision to which the figure of merit is estimated, corresponding to the target standard error of the mean.
  • max_repetitions::Int = 10000: Maximum number of random instances of log-normal Pauli noise over which the figure of merit is calculated.
  • min_repetitions::Int = 100: Minimum number of random instances of log-normal Pauli noise over which the figure of merit is calculated.
  • print_repetitions::Int = 100: Number of random instances of log-normal Pauli noise between printing diagnostics.
  • seed::Union{UInt64, Nothing} = nothing: Seeds used to generate instances of log-normal Pauli noise.
  • diagnostics::Bool = true: Whether to print diagnostic information.
  • save_data::Bool = false: Whether to save the merit scaling data.
source

Private functions