unrotated_planar.jl

Public functions

QuantumACES.UnrotatedPlanarParametersType
UnrotatedPlanarParameters

Parameters for the syndrome extraction circuit of an unrotated 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.
  • gate_type::Symbol: Type of two-qubit gate used in the circuit, which must be :cx.
  • 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.
source
QuantumACES.get_circuitMethod
get_circuit(unrotated_param::UnrotatedPlanarParameters, noise_param::AbstractNoiseParameters; kwargs...)

Returns an unrotated planar code syndrome extraction circuit in the form of a Circuit object parameterised by the supplied circuit and noise parameters.

Arguments

  • unrotated_param::UnrotatedPlanarParameters: Parameters for an unrotated 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 to false; a full-rank design cannot be produced if both noisy_prep and noisy_meas are true.
  • noisy_meas::Bool = true: Whether to treat measurements as noisy and characterise the associated noise, defaulting to true; a full-rank design cannot be produced if both noisy_prep and noisy_meas are true.
  • 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.
source
QuantumACES.get_unrotated_paramMethod
get_unrotated_param(vertical_dist::Integer, horizontal_dist::Integer; kwargs...)
get_unrotated_param(dist::Integer; kwargs...)

Returns an UnrotatedPlanarParameters object that parameterises the syndrome extraction circuit of an unrotated 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 setting vertical_dist = dist and horizontal_dist = dist.

Keyword arguments

  • gate_type::Symbol = :cx: Type of two-qubit gate used in the circuit, which must be :cx.
  • 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.
  • mid_reset_time::Real = 660: Time taken to perform mid-circuit reset in nanoseconds.
source

Private functions

QuantumACES.unrotated_planar_circuitMethod
unrotated_planar_circuit(unrotated_param::UnrotatedPlanarParameters)

Returns fields used to construct the syndrome extraction circuit of an unrotated planar code based on the supplied parameters unrotated_param.

source