rotated_planar.jl
Public functions
QuantumACES.RotatedPlanarParameters
— TypeRotatedPlanarParameters
Parameters for the syndrome extraction circuit of a rotated planar code.
Fields
params::Dict{Symbol, Any}
: Dictionary of the circuit parameters described below.circuit_name::String
: Name of the circuit used for saving data.
Parameters
vertical_dist::Int
: Vertical (Z) distance of the code.horizontal_dist::Int
: Horizontal (X) distance of the code.check_type::Symbol
: Type of stabiliser used in the circuit, either:xzzx
or:standard
.gate_type::Symbol
: Type of two-qubit gate used in the circuit, either:cx
or:cz
.dynamically_decouple::Bool
: Whether to dynamically decouple the circuit;true
is currently only supported for:xzzx
and:cz
.ancilla_measurement::Bool
: Whether to include mid-circuit ancilla measurements.pad_identity::Bool
: Whether to pad layers with single-qubit identity gates.layer_time_dict::Dict{Symbol, Float64}
: Dictionary of layer times.
QuantumACES.get_circuit
— Methodget_circuit(rotated_param::RotatedPlanarParameters, noise_param::AbstractNoiseParameters; kwargs...)
Returns a rotated planar code syndrome extraction circuit in the form of a Circuit
object parameterised by the supplied circuit and noise parameters.
Arguments
rotated_param::RotatedPlanarParameters
: Parameters for a rotated planar code.noise_param::AbstractNoiseParameters
: Noise parameters for the circuit.
Keyword arguments
noisy_prep::Bool = false
: Whether to treat preparations as noisy and characterise the associated noise, defaulting tofalse
; a full-rank design cannot be produced if bothnoisy_prep
andnoisy_meas
aretrue
.noisy_meas::Bool = true
: Whether to treat measurements as noisy and characterise the associated noise, defaulting totrue
; a full-rank design cannot be produced if bothnoisy_prep
andnoisy_meas
aretrue
.combined::Bool = haskey(noise_param.params, :combined) ? noise_param.params[:combined] : false,
: Whether to treat Pauli X, Y, and Z basis SPAM noise as the same.strict::Bool = false
: Whether to be strict about which gates count as estimable to relative precision.
QuantumACES.get_rotated_param
— Methodget_rotated_param(vertical_dist::Integer, horizontal_dist::Integer; kwargs...)
get_rotated_param(dist::Integer; kwargs...)
Returns a RotatedPlanarParameters
object that parameterises the syndrome extraction circuit of a rotated planar code.
Default gate layer times are estimated from Suppressing quantum errors by scaling a surface code logical qubit
by Google Quantum AI (2023).
Arguments
vertical_dist::Int
: Vertical (Z) distance of the code.horizontal_dist::Int
: Horizontal (X) distance of the code.dist::Int
: Distance of the code; this is equivalent to settingvertical_dist = dist
andhorizontal_dist = dist
.
Keyword arguments
check_type::Symbol = :xzzx
: Type of stabiliser used in the circuit, either:xzzx
or:standard
.gate_type::Symbol = :cz
: Type of two-qubit gate used in the circuit, either:cx
or:cz
.dynamically_decouple::Bool = true
: Whether to dynamically decouple the circuit;true
is currently only supported for:xzzx
and:cz
.ancilla_measurement::Bool = true
: Whether to include mid-circuit reset.pad_identity::Bool = true
: Whether to pad layers with single-qubit identity gates.single_qubit_time::Real = 29
: Time taken to implement a single-qubit gate in nanoseconds.two_qubit_time::Real = 29
: Time taken to implement a two-qubit gate in nanoseconds.meas_reset_time::Real = 660
: Time taken to perform measurement and reset at the end of the circuit in nanoseconds.dynamical_decoupling_time::Real = 29
: Time taken to implement a dynamical decoupling layer in nanoseconds.mid_reset_time::Real = 660
: Time taken to perform mid-circuit reset in nanoseconds.
Private functions
QuantumACES.rotated_planar_circuit
— Methodrotated_planar_circuit(rotated_param::RotatedPlanarParameters)
Returns fields used to construct the syndrome extraction circuit of a rotated planar code based on the supplied parameters rotated_param
.