diff --git a/docs/make.jl b/docs/make.jl index 71c147a59..699924cda 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -21,8 +21,7 @@ clean = true, sitename = "QuantumClifford.jl", format = Documenter.HTML(size_threshold_ignore = ["API.md"]), modules = [QuantumClifford, QuantumClifford.Experimental.NoisyCircuits, QuantumClifford.ECC, QuantumInterface], -warnonly = true, # uncomment if you are having trouble building the docs and are debugging -#warnonly = [:missing_docs], +warnonly = [:missing_docs], authors = "Stefan Krastanov", pages = [ "QuantumClifford.jl" => "index.md", diff --git a/docs/src/ECC_evaluating.md b/docs/src/ECC_evaluating.md index e0c6ace0b..3e3ac1267 100644 --- a/docs/src/ECC_evaluating.md +++ b/docs/src/ECC_evaluating.md @@ -1,5 +1,13 @@ # [Evaluating an ECC code and decoders](@id ecc_evaluating) +```@meta +DocTestSetup = quote + using QuantumClifford + using QuantumClifford.ECC +end +CurrentModule = QuantumClifford.ECC +``` + !!! warning "The documentation is incomplete" While waiting for a better documentation than the small example below, consider looking into [`evaluate_decoder`](@ref), [`TableDecoder`](@ref), [`BeliefPropDecoder`](@ref), [`PyBeliefPropDecoder`](@ref), [`PyMatchingDecoder`](@ref), [`CommutationCheckECCSetup`](@ref), [`NaiveSyndromeECCSetup`](@ref), [`ShorSyndromeECCSetup`](@ref) diff --git a/docs/src/references.md b/docs/src/references.md index 8624e1932..db6d50331 100644 --- a/docs/src/references.md +++ b/docs/src/references.md @@ -22,6 +22,12 @@ These publications describe the uniform sampling of random stabilizer states: - [berg2020simple](@cite) - [li2019measurement](@cite) +For circuit construction routines (for stabilizer measurements for a given code): +- [cleve1997efficient](@cite) +- [gottesman1997stabilizer](@cite) (and its erratum) +- [grassl2002algorithmic](@cite) +- [grassl2011variations](@cite) + # References ```@bibliography diff --git a/src/ecc/circuits.jl b/src/ecc/circuits.jl index f71cc6b99..45aabf1a7 100644 --- a/src/ecc/circuits.jl +++ b/src/ecc/circuits.jl @@ -7,10 +7,10 @@ The initial physical qubits to be encoded have to be at indices `n-k+1:n`. Instead, you should measure the stabilizers of the code and the logical observables, thus projecting into the code space (which can be fault-tolerant). -The canonicalization operation performed on the code may permute the qubits (see [canonicalize_gott!](@ref)). +The canonicalization operation performed on the code may permute the qubits (see [`canonicalize_gott!`](@ref)). That permutation is corrected for with SWAP gates by default (controlled by the `undoperm` keyword argument). -Based on [gottesman1997stabilizer](@cite) and [cleve1997efficient](@cite), +Based on [cleve1997efficient](@cite) and [gottesman1997stabilizer](@cite), however it seems the published algorithm has some errors. Consult the erratum, as well as the more recent [grassl2002algorithmic](@cite) and [grassl2011variations](@cite), and be aware that this implementation also uses H instead of Z gates.