-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Documenter.jl
committed
Oct 18, 2024
1 parent
d33da8c
commit 49a1a66
Showing
67 changed files
with
13,222 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v0.9.11 | ||
v0.9.12 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v0.9.11 | ||
v0.9.12 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-10-18T09:44:32","documenter_version":"1.7.0"}} |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Evaluating codes and decoders · QuantumClifford.jl</title><meta name="title" content="Evaluating codes and decoders · QuantumClifford.jl"/><meta property="og:title" content="Evaluating codes and decoders · QuantumClifford.jl"/><meta property="twitter:title" content="Evaluating codes and decoders · QuantumClifford.jl"/><meta name="description" content="Documentation for QuantumClifford.jl."/><meta property="og:description" content="Documentation for QuantumClifford.jl."/><meta property="twitter:description" content="Documentation for QuantumClifford.jl."/><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-mocha.css" data-theme-name="catppuccin-mocha"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-macchiato.css" data-theme-name="catppuccin-macchiato"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-frappe.css" data-theme-name="catppuccin-frappe"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/catppuccin-latte.css" data-theme-name="catppuccin-latte"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">QuantumClifford.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../">QuantumClifford.jl</a></li><li><span class="tocitem">Stabilizer Tableau Algebra</span><ul><li><a class="tocitem" href="../stab-algebra-manual/">Manual</a></li><li><a class="tocitem" href="../canonicalization/">Canonicalization</a></li><li><a class="tocitem" href="../mixed/">Mixed States</a></li><li><a class="tocitem" href="../graphs/">Graph States</a></li><li><a class="tocitem" href="../datastructures/">Datastructure Choice</a></li><li><a class="tocitem" href="../commonstates/">Useful States</a></li></ul></li><li><span class="tocitem">Noisy Circuits</span><ul><li><a class="tocitem" href="../noisycircuits/">Simulation of Noisy Circuits</a></li><li><a class="tocitem" href="../noisycircuits_mc/">Monte Carlo</a></li><li><a class="tocitem" href="../noisycircuits_perturb/">Perturbative Expansions</a></li><li><a class="tocitem" href="../ecc_example_sim/">ECC example</a></li><li><a class="tocitem" href="../noisycircuits_ops/">Circuit Operations</a></li><li><a class="tocitem" href="../noisycircuits_API/">API</a></li></ul></li><li><span class="tocitem">ECC compendium</span><ul><li class="is-active"><a class="tocitem" href>Evaluating codes and decoders</a></li><li><a class="tocitem" href="../ECC_API/">API</a></li></ul></li><li><a class="tocitem" href="../allops/">All Gates</a></li><li><a class="tocitem" href="../plotting/">Visualizations</a></li><li><a class="tocitem" href="../API/">API</a></li><li><a class="tocitem" href="../tutandpub/">Tutorials and Publications</a></li><li><a class="tocitem" href="../references/">Suggested Readings & References</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">ECC compendium</a></li><li class="is-active"><a href>Evaluating codes and decoders</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Evaluating codes and decoders</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/QuantumSavory/QuantumClifford.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/QuantumSavory/QuantumClifford.jl/blob/master/docs/src/ECC_evaluating.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="ecc_evaluating"><a class="docs-heading-anchor" href="#ecc_evaluating">Evaluating an ECC code and decoders</a><a id="ecc_evaluating-1"></a><a class="docs-heading-anchor-permalink" href="#ecc_evaluating" title="Permalink"></a></h1><div class="admonition is-warning"><header class="admonition-header">The documentation is incomplete</header><div class="admonition-body"><p>While waiting for a better documentation than the small example below, consider looking into <a href="../ECC_API/#QuantumClifford.ECC.evaluate_decoder-Tuple{QuantumClifford.ECC.AbstractSyndromeDecoder, QuantumClifford.ECC.AbstractECCSetup, Int64}"><code>evaluate_decoder</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.TableDecoder"><code>TableDecoder</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.BeliefPropDecoder-Tuple"><code>BeliefPropDecoder</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.PyBeliefPropDecoder-Tuple"><code>PyBeliefPropDecoder</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.PyMatchingDecoder-Tuple"><code>PyMatchingDecoder</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.CommutationCheckECCSetup"><code>CommutationCheckECCSetup</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.NaiveSyndromeECCSetup"><code>NaiveSyndromeECCSetup</code></a>, <a href="../ECC_API/#QuantumClifford.ECC.ShorSyndromeECCSetup"><code>ShorSyndromeECCSetup</code></a></p></div></div><p>This is a quick and durty example on how to use some of the decoders.</p><p>A function to plot the results of </p><pre><code class="language-julia hljs">using CairoMakie | ||
|
||
function make_decoder_figure(phys_errors, results, title="") | ||
minlim = min(minimum(phys_errors),minimum(results[results.!=0])) | ||
maxlim = min(1, max(maximum(phys_errors),maximum(results[results.!=0]))) | ||
|
||
fresults = copy(results) | ||
fresults[results.==0] .= NaN | ||
|
||
f = Figure() | ||
a = Axis(f[1,1], | ||
xscale=log10, yscale=log10, | ||
limits=(minlim,maxlim,minlim,maxlim), | ||
aspect=DataAspect(), | ||
xlabel="physical error rate", | ||
ylabel="logical error rate", | ||
title=title) | ||
lines!(a, [minlim,maxlim],[minlim,maxlim], color=:black) | ||
for (i,sresults) in enumerate(eachslice(fresults, dims=1)) | ||
scatter!(a, phys_errors, sresults[:,1], marker=:+, color=Cycled(i)) | ||
scatter!(a, phys_errors, sresults[:,2], marker=:x, color=Cycled(i)) | ||
end | ||
f | ||
end</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">make_decoder_figure (generic function with 2 methods)</code></pre><p>Testing out a lookup table decoder on a small code.</p><pre><code class="language-julia hljs">using QuantumClifford | ||
using QuantumClifford.ECC | ||
|
||
mem_errors = 0.001:0.0005:0.01 | ||
codes = [Shor9()] | ||
results = zeros(length(codes), length(mem_errors), 2) | ||
|
||
for (ic, c) in pairs(codes) | ||
for (i,m) in pairs(mem_errors) | ||
setup = CommutationCheckECCSetup(m) | ||
decoder = TableDecoder(c) | ||
r = evaluate_decoder(decoder, setup, 10000) | ||
results[ic,i,:] .= r | ||
end | ||
end | ||
|
||
make_decoder_figure(mem_errors, results, "Shor's code with a lookup table decoder")</code></pre><img src="2587f444.png" alt="Example block output"/><p>Testing out the toric code with a decoder provided by the python package <code>pymatching</code> (provided in julia by the meta package <code>PyQDecoders.jl</code>).</p><pre><code class="language-julia hljs">import PyQDecoders | ||
|
||
mem_errors = 0.001:0.005:0.1 | ||
codes = [Toric(4,4), Toric(6,6)] | ||
results = zeros(length(codes), length(mem_errors), 2) | ||
|
||
for (ic, c) in pairs(codes) | ||
for (i,m) in pairs(mem_errors) | ||
setup = ShorSyndromeECCSetup(m, 0) | ||
decoder = PyMatchingDecoder(c) | ||
r = evaluate_decoder(decoder, setup, 1000) | ||
results[ic,i,:] .= r | ||
end | ||
end | ||
|
||
make_decoder_figure(mem_errors, results, "Toric code with a MWPM decoder")</code></pre><img src="0ebe37ea.png" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../noisycircuits_API/">« API</a><a class="docs-footer-nextpage" href="../ECC_API/">API »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.7.0 on <span class="colophon-date" title="Friday 18 October 2024 09:44">Friday 18 October 2024</span>. Using Julia version 1.11.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Large diffs are not rendered by default.
Oops, something went wrong.
Oops, something went wrong.