\documentclass[overviewatsection,en]{CELbeamer}

%
%
% CEL Template
%
%

\newcommand{\templates}{preambles}
\input{\templates/packages.tex}
\input{\templates/macros.tex}

\grouplogo{CEL_logo.pdf}

\groupname{Communications Engineering Lab (CEL)}

\fundinglogos{}

%
%
% Document setup
%
%

\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{spy, external, intersections, positioning, tikzmark}

% \ifdefined\ishandout\else
\tikzexternalize
% \fi

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{fillbetween}
\usepgfplotslibrary{groupplots}

\usepackage{enumerate}
\usepackage{listings}
\usepackage{subcaption}
\usepackage{bbm}
\usepackage{multirow}
\usepackage[table,dvipsnames]{xcolor}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{amssymb}
\usepackage{acro}
\usepackage{braket}
\usepackage{quantikz}
\usepackage{nicematrix}
\usepackage{xpatch}
\usepackage{lmodern}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{stmaryrd}

\title{Fault-Tolerant Quantum Error Correction}
\subtitle{Master's Thesis Final Presentation}
\author[ Andreas]{Andreas Tsouchlos}
\date[]{}

\DeclareFieldFormat{note}{}
\DeclareFieldFormat{issn}{}
\DeclareFieldFormat{url}{}
\DeclareFieldFormat{doi}{}
\DeclareFieldFormat[article,book,inproceedings]{urldate}{}

\addbibresource{src/midterm_presentation/MA.bib}

%
%
% Custom commands
%
%

\newcommand{\red}[1]{\textcolor{red}{#1}}
\newcommand{\res}{src/midterm_presentation/res}

\newcommand{\X}{\textcolor{kit-blue}{\bm{X}}}
\newcommand{\Z}{\textcolor{kit-orange}{\bm{Z}}}
\newcommand{\Y}{\textcolor{kit-red}{\bm{Y}}}
\newcommand{\I}{\bm{I}}

\xpatchcmd{\fullwire}
{\arrow[arrows,start anchor=#2startone,end anchor=#2endone]
{#1}\arrow[arrows,start anchor=#2starttwo,end anchor=#2endtwo,#4] {#1}}
{\arrow[arrows,start anchor=#2startone,end anchor=#2endone,#4]
{#1}\arrow[arrows,start anchor=#2starttwo,end anchor=#2endtwo,#4] {#1}}
{\typeout{Successfully patched fullwire for classical wires}}
{\typeout{Failed to patch fullwire for classical wires}}

\makeatletter

\newcommand{\addreferencesmanual}{%
    \begin{scriptsize}
        \begin{tabular}{lp{0.88\textwidth}}
            \@addreferencesimanual
        }

        \newcommand\@addreferencesimanual{\@ifnextchar\stopreferencesmanual{\@addreferencesendmanual}{\@addreferencesiimanual}}

        \newcommand\@addreferencesiimanual[2]{%
            \textcolor{kit-green100}{[#1]} & \textcolor{kit-green100}{#2} \\
            \@addreferencesimanual % restart the recursion
        }

        \newcommand\@addreferencesendmanual[1]{% The argument is \stopimages
        \end{tabular}
    \end{scriptsize}
}

\makeatother

\newcommand{\citereferencemanual}[1]{\textcolor{kit-green100}{\textbf{\scriptsize{[#1]}}}}

%
%
% Acronyms
%
%

\DeclareAcronym{sced}{
    short=SCED,
    long=sub-code ensemble decoding
}

\DeclareAcronym{qec}{
    short=QEC,
    long=quantum error correction
}

\DeclareAcronym{se}{
    short=SE,
    long=syndrome extraction
}

\DeclareAcronym{css}{
    short=CSS,
    long=Calderbank -- Shor -- Steane
}

\DeclareAcronym{bb}{
    short=BB,
    long=bivariate bicycle
}

\DeclareAcronym{dem}{
    short=DEM,
    long=detector error model
}

\DeclareAcronym{bp}{
    short=BP,
    long=belief propagation
}

\DeclareAcronym{vn}{
    short=VN,
    long=variable node
}

\DeclareAcronym{cn}{
    short=CN,
    long=check node
}

\DeclareAcronym{spa}{
    short=SPA,
    long=sum-product algorithm
}

\DeclareAcronym{gd}{
    short=GD,
    long=guided decimation
}

\DeclareAcronym{gdg}{
    short=GDG,
    long=guided decimation guessing
}

\DeclareAcronym{osd}{
    short=OSD,
    long=ordered statistics decoding,
}

\DeclareAcronym{qldpc}{
    short=QLDPC,
    long=quantum low-density parity-check,
}

\DeclareAcronym{scldpc}{
    short=SC-LDPC,
    long=spatially-coupled low-density parity-check
}

\DeclareAcronym{ler}{
    short=LER,
    long=logical error rate,
}

%
%
% Document body
%
%

\begin{document}

\begin{frame}[title white vertical, picture=images/IMG_7801-cut]
    \titlepage
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction to Quantum Error Correction}
\label{sec:Introduction to Quantum Error Correction}

%%%%%%%%%%%%%%%%
\subsection{Motivation}
\label{subsec:Motivation}

\begin{frame}
    \frametitle{Quantum Computing}

    % Related interesting stuff
    % - Gidney estimates we need 1399 (?) logical qubits to factor a 2048
    %   bit RSA integer
    % - He goes on to estimate that to factor such an integer in less
    %   than a week would require around a million physical qubits
    %   [How to factor 2048 bit RSA integers with less than a million
    %   noisy qubits]

    \vspace*{-15mm}

    \begin{itemize}
        \item Simulating quantum systems on classical hardware
            is exponentially complex \\
            $\implies$ Use quantum hardware to simulate quantum
            systems \citereferencemanual{Fey82}
        \item ``Hard'' to solve problems on classical computers can
            be ``easy''  on quantum computers
            \citereferencemanual{Pre18}
        \item Google Quantum AI's quantum computing roadmap
            \citereferencemanual{Goo23}
    \end{itemize}

    \vspace*{3mm}

    \begin{figure}[H]
        \centering
        \includegraphics[scale=0.43]{res/google_roadmap.png}
    \end{figure}

    \vspace*{3mm}

    \addreferencesmanual
    {Fey82}{
        R. P. Feynman, ``Simulating physics with computers,'',
        \emph{International Journal of Theoretical Physics}, 1982.
    }
    {Pre18}{
        J. Preskill, ``Quantum computing in the NISQ era and
        beyond,'' \emph{Quantum}, 2018.
    }
    {Goo23}{
        Google Quantum AI, \emph{Quantum Computing Roadmap}, URL:
        \url{https://quantumai.google/qecmilestone2023}, 2023.
    }
    \stopreferencesmanual
\end{frame}

% TODO: Where should I quote Preskill? There are multiple bullet
% points with info taken from his work
\begin{frame}
    \frametitle{The Need for Quantum Error Correction}

    \vspace*{-12mm}

    % Related interesting stuff
    % - Qubits differ from bits in that they can be in superpositions
    %   and be entangled with one another
    % - Quantum computers derive their strenght from the exponential
    %   scaling of the state-space because of the way the information is
    %   encoded
    % - Note that while a physical error rate of 10^{-3} may seem ok,
    %   we need a couple trillion operations (~ 10^{13}) to factor a
    %   2048 bit RSA integer
    %   [How to factor 2048 bit RSA integers with less than a million
    %   noisy qubits]
    % - The "physical error rate" is really the value all error rates
    %   in the system are set to for circuit level noise simulations
    %   [High-threshold universal quantum computation on the surface code]
    % - The backlog problem is the fact that an increasing backlog of
    %   syndrome data will lead to an exponential slowdown during the
    %   computation

    \begin{itemize}
            % \item Quantum computers represent information through
            %     correlations of qubits, not their values \\
            %     directly \citereference{preskill_quantum_2018}
        \item Quantum systems are inherently fragile
        \item Interacting with the quantum state disturbs it
        \item Idea: Represent $k\in \mathbb{N} $ \schlagwort{logical
            qubits} using $n \in \mathbb{N}$ \schlagwort{physical qubits},
            $n>k$ \citereferencemanual{Rof19}

            \vspace*{2mm}

            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \node[
                        rectangle,
                        draw, fill=kit-blue!25,
                        minimum height=15mm,
                    ]
                    (enc) {Three-qubit encoder};

                    \node[left=of enc]  (in)
                    {$\ket{\psi} = \alpha\ket{0} + \beta\ket{1}$};

                    \node[right=of enc,yshift=6mm]  (out)
                    {$\alpha\overbrace{\ket{000}}^{\ket{0}_\text{L}}
                        +\; \beta\overbrace{\ket{111}}^{\ket{1}_\text{L}} =
                    \ket{\psi}_\text{L}$};

                    \draw[-{Latex}] (in) -- (enc);
                    \draw[-{Latex}] (enc) -- (enc -| out.west);
                \end{tikzpicture}
            \end{figure}

            \vspace*{5mm}
            \visible<2>{
            \item Typical scales
                \begin{itemize}
                    \item Recent scheme by IBM encodes $12$ logical
                        qubits in $288$ physical ones
                        \citereferencemanual{BCG$^+$24}
                    \item Physical error rate typically set to $\sim 10^{-3}$
                        for simulations (e.g.,
                        \citereferencemanual{BCG$^+$24})
                    \item Decode with ultra-low latency to avoid
                        \schlagwort{backlog problem} (about
                            $\SI{1}{\micro s}$ per data \\
                        extraction round)
                        \citereferencemanual{CSB$^+$24}
                \end{itemize}
            }
    \end{itemize}

    \vspace*{10mm}

    \addreferencesmanual
    {Rof19}{
        J. Roffe, ``Quantum error correction: An introductory
        guide,'' \emph{Contemporary Physics}, 2019.
    }
    {BCG$^+$24}{
        S. Bravyi et al., ``High-threshold and low-overhead
        fault-tolerant quantum memory,'' \emph{Nature}, 2024.
    }
    {CSB$^+$24}{
        L. Caune et al., ``Demonstrating real-time and low-latency
        quantum error correction with superconducting qubits'',
        \emph{arXiv:2410.05202}, 2024.
    }
    \stopreferencesmanual
\end{frame}

%%%%%%%%%%%%%%%%
\subsection{Fundamentals of Quantum Error Correction}
\label{subsec:Fundamentals of Quantum Error Correction}

% TODO: Is this all of this really necessary?
\begin{frame}
    \frametitle{Peculiarities of the Quantum Setting}

    \vspace*{-17mm}

    % Related interesting stuff
    % - No cloning theorem -> Not replication of state, protection
    %   through further entanglement
    % - States are superpositions -> We theoretically need to be able
    %   to correct infinitely many different types of errors. Luckily,
    %   it turns out that in actual fact we only really need to correct
    %   two [Gottesman's Thesis]
    % - Mention that kets are just vectors, used here to represent the state
    % - There are actually infinitely many different errors that can
    %   happen, but we can digitize them and only need to consider X and Z
    % - Not only do we only care about the coset, we specifically
    %   don't want to know more than the syndrome can tell us because
    %   that would mean that "we collapse the quantum mechanical state too
    %   much"

    \begin{itemize}
            % \item \Ac{qec} is actually able to protect the actual
            % quantum state
        \item Classical systems built with bits and gates, quantum
            systems with qubits and quantum gates
        \item Consider phase flip errors in addition to
            bit flip errors \citereferencemanual{Rof19}
    \end{itemize}

    \vspace*{-3mm}

    \begin{figure}[H]
        \centering
        \begin{subfigure}{0.32\textwidth}
            \centering

            \begin{align*}
                \ket{0} &\mapsto \ket{1} \\
                \ket{1} &\mapsto \ket{0}
            \end{align*}

            \caption{Bit flip ($\X$) error}
        \end{subfigure}%
        \begin{subfigure}{0.32\textwidth}
            \centering

            \begin{align*}
                \ket{0} &\mapsto \phantom{-}\ket{0} \\
                \ket{1} &\mapsto -\ket{1}
            \end{align*}

            \caption{Phase flip ($\Z$) error}
        \end{subfigure}%
        \begin{subfigure}{0.32\textwidth}
            \centering

            \begin{align*}
                \ket{0} &\mapsto \phantom{-j}\ket{1} \\
                \ket{1} &\mapsto -j\ket{0}
            \end{align*}

            \caption{$\Y$ error}
        \end{subfigure}
    \end{figure}

    \vspace*{-5mm}

    \begin{itemize}
            \visible<2->{
            \item Measurement-induced wave collapse \\
                $\implies$ Use binary syndrome for decoding
                \citereferencemanual{NC10}
            }
    \end{itemize}

    \vspace*{-5mm}

    \begin{figure}[H]
        \centering

        \begin{minipage}{0.25\textwidth}
            \centering
            \visible<2->{
                \begin{align*}
                    \bm{H} \bm{y}^\text{T} = \bm{H} \bm{e}^\text{T} = \bm{s}
                \end{align*}
            }
        \end{minipage}%
        \hspace*{30mm}
        \begin{minipage}{0.12\textwidth}
            \centering
            \visible<3->{
                \begin{align*}
                    \bm{H} =
                    \begin{pmatrix}
                        1 & 1 & 0 \\
                        0 & 1 & 1
                    \end{pmatrix}
                \end{align*}
            }
        \end{minipage}
        \begin{minipage}{0.3\textwidth}
            \centering
            \visible<3->{
                % tex-fmt: off
                \begin{quantikz}%[row sep=4mm, column sep=4mm]
                                                    & \ctrl{3} &          &          &          &           &                 \\
                    \lstick{$\ket{\psi}$}           &          & \ctrl{2} & \ctrl{3} &          &           &                 \\
                                                    &          &          &          & \ctrl{2} &           &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} & \targ{}  & \targ{}  &          &          &  \meter{} & \setwiretype{c} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &          &          & \targ{}  & \targ{}  &  \meter{} & \setwiretype{c}
                \end{quantikz}
                % tex-fmt: on
            }
        \end{minipage}%
    \end{figure}

    \vspace*{3mm}

    \addreferencesmanual
    {Rof19}{
        J. Roffe, ``Quantum error correction: An introductory
        guide,'' \emph{Contemporary Physics}, 2019.
    }
    {NC10}{
        M. A. Nielsen and I. L. Chuang, ``Quantum computation and
        quantum information'', \emph{Cambridge University Press}, 2010.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}
    \frametitle{Evaluating the Decoding Performance}

    \vspace*{-5mm}

    \begin{itemize}
        \item Quantum \schlagwort{degeneracy}: Multiple solutions to
            the decoding
            problem \citereferencemanual{RWB$^+$20} \\
            $\implies$ Consider \schlagwort{\acl{ler}} (LER)
    \end{itemize}

    \vspace*{15mm}

    \only<1>{
        \phantom{
            \begin{minipage}{0.35\textwidth}
                \begin{itemize}
                    \item Independent variables
                        \begin{itemize}
                            \item \textbf{Physical error rate}
                            \item CNOT infidelity
                            \item Total qubit count
                            \item \ldots
                        \end{itemize}
                \end{itemize}
            \end{minipage}%
            \begin{minipage}{0.65\textwidth}
                \begin{itemize}
                    \item Noise models
                        \begin{itemize}
                            \item \textbf{Standard circuit-based
                                depolarizing noise}
                                \citereferencemanual{FSG09}
                            \item Superconductor inspired (SI1000)
                                \citereferencemanual{GNF$^+$21}
                            \item Entangling Measurements (EM3)
                                \citereferencemanual{GNF$^+$21}
                            \item \ldots
                        \end{itemize}
                \end{itemize}
            \end{minipage}
        }
    }
    \only<2>{
        \begin{minipage}{0.35\textwidth}
            \begin{itemize}
                \item Independent variables
                    \begin{itemize}
                        \item Physical error rate
                        \item CNOT infidelity
                        \item Total qubit count
                        \item \ldots
                    \end{itemize}
            \end{itemize}
        \end{minipage}%
        \begin{minipage}{0.65\textwidth}
            \begin{itemize}
                \item Noise models
                    \begin{itemize}
                        \item Standard circuit-based
                            depolarizing noise
                            \citereferencemanual{FSG09}
                        \item Superconductor inspired (SI1000)
                            \citereferencemanual{GNF$^+$21}
                        \item Entangling Measurements (EM3)
                            \citereferencemanual{GNF$^+$21}
                        \item \ldots
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<3>{
        \begin{minipage}{0.35\textwidth}
            \begin{itemize}
                \item Independent variables
                    \begin{itemize}
                        \item \textbf{Physical error rate}
                        \item CNOT infidelity
                        \item Total qubit count
                        \item \ldots
                    \end{itemize}
            \end{itemize}
        \end{minipage}%
        \begin{minipage}{0.65\textwidth}
            \begin{itemize}
                \item Noise models
                    \begin{itemize}
                        \item \textbf{Standard circuit-based
                            depolarizing noise}
                            \citereferencemanual{FSG09}
                        \item Superconductor inspired (SI1000)
                            \citereferencemanual{GNF$^+$21}
                        \item Entangling Measurements (EM3)
                            \citereferencemanual{GNF$^+$21}
                        \item \ldots
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }

    \vspace*{25mm}

    \addreferencesmanual
    {RWB$^+$20}{
        J. Roffe et al., ``Decoding across the quantum low-density
        parity-check code landscape,'' \emph{Phys. Rev.}, 2020.
    }
    {FSG09}{
        A. G. Fowler, A. M. Stephens, and P. Groszkowski,
        ``High-threshold universal quantum computing on the surface
        code,'' \emph{Phys. Rev.}, 2009.
    }
    {GNF$^+$21}{
        C. Gidney et al., ``A Fault-tolerant honeycomb memory'',
        \emph{Quantum}, 2021.
    }
    \stopreferencesmanual
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Fault Tolerance and Detector Error Models}
\label{sec:Fault Tolerance and Detector Error Models}

%%%%%%%%%%%%%%%%
\subsection{Fault Tolerance}
\label{subsec:Fault Tolerance}

% TODO: Fix journal for {shor_fault-tolerant_1997} not showing
\begin{frame}
    \frametitle{Fault Tolerance}

    \vspace*{-10mm}

    \begin{itemize}
        \item Quantum gates used for syndrome extraction are
            faulty themselves \\
            $\implies$ Need for \schlagwort{fault-tolerant} \acf{qec}
        \item In addition to correcting \schlagwort{input errors},
            limit spread of \schlagwort{internal errors}
            \citereferencemanual{DTB$^+$25}
    \end{itemize}

    \vspace*{3mm}

    \begin{figure}[H]
        \centering

        \begin{tikzpicture}
            \node[rectangle, draw, fill=orange!20, minimum
            height=3cm, minimum width=3.5cm, align=left] at (0,0)
            (internal) {Internal\\ Errors};

            \node[signal, draw, fill=Plum!20, minimum height=3cm,
            minimum width=4cm, align=left, signal pointer angle=140]
            at (-3.7, 0) (input) {Input\\ Errors};

            \node at (2.5,0) {\huge =};

            \node[rectangle, draw, fill=MidnightBlue!20, minimum height=3cm,
            minimum width=3.5cm, align=left] at (5,0) (output)
            {Output\\ Errors};

            \node[above] at (input.north) {\small Input State};
            \node[above] at (internal.north) {\small QEC};
            \node[above] at (output.north) {\small Output State};
        \end{tikzpicture}
    \end{figure}

    \vspace*{3mm}

    \begin{itemize}
            \visible<2->{
            \item Modify syndrome extraction circuitry (e.g., multi-qubit
                    states for each ancilla
                \citereferencemanual{Sho97})
            \item Multiple rounds of \acf{se}
            }
    \end{itemize}

    \vspace*{15mm}

    \addreferencesmanual
    {DTB$^+$25}{
        P.- J. H. S. Derks et al., ``Designing fault-tolerant
        circuits using detector error models,'' \emph{Quantum}, 2025.
    }
    {Sho97}{
        P. W. Shor, ``Fault-tolerant quantum computation,''
        \emph{arXiv:quant-ph/9605011},  1997.
    }
    \stopreferencesmanual
\end{frame}

%%%%%%%%%%%%%%%%
\subsection{Detector Error Models}
\label{subsec:Detector Error Models}

\begin{frame}[fragile]
    \frametitle{The Measurement Syndrome Matrix I}

    \vspace*{-18mm}

    \begin{itemize}
        \item \schlagwort{Measurement syndrome matrix} $\bm{\Omega}$ \\
            contains error patterns \citereferencemanual{DTB$^+$25}
        \item Example: 3-qubit repetition code
    \end{itemize}
    %
    \vspace*{-25mm}

    \centering
    \only<1>{
        \begin{minipage}{0.4\textwidth}
            \centering

            \vspace*{40mm}
            \begin{tikzpicture}
                \node{$%
                    \bm{\Omega} =
                    \left(
                        \begin{array}{ccc}
                            1 & 1 & 0 \\
                            0 & 1 & 1 \\
                            1 & 1 & 0 \\
                            0 & 1 & 1 \\
                            1 & 1 & 0 \\
                            0 & 1 & 1
                        \end{array}
                    \right)$
                };

                \draw [
                    line width=1pt,
                    decorate,
                    decoration={brace,mirror,amplitude=3mm,raise=5mm}
                ]
                (2.5,1.2) -- (2.5,2.85)
                node[midway,right,xshift=10mm]{$\text{SE}_1$};

                \draw [
                    line width=1pt,
                    decorate,
                    decoration={brace,mirror,amplitude=3mm,raise=5mm}
                ]
                (2.5,-0.75) -- (2.5,0.9)
                node[midway,right,xshift=10mm]{$\text{SE}_2$};

                \draw [
                    line width=1pt,
                    decorate,
                    decoration={brace,mirror,amplitude=3mm,raise=5mm}
                ]
                (2.5,-2.7) -- (2.5,-1.1)
                node[midway,right,xshift=10mm]{$\text{SE}_3$};
            \end{tikzpicture}

            \vspace*{-10mm}

            \begin{gather*}
                \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\}
            \end{gather*}
        \end{minipage}%
        \begin{minipage}{0.6\textwidth}
            \begin{figure}[H]
                \newcommand{\preperr}[1]{
                    \gate[style={fill=orange!20}]{\scriptstyle ##1}
                }

                \centering

                \begin{quantikz}[
                        row sep=4mm, column sep=4mm,
                        wire types={q,q,q,q,q,n,n,n,n},
                        execute at end picture={
                            \draw [
                                line width=1pt,
                                decorate,
                                decoration={brace,amplitude=3mm,raise=9mm}
                            ]
                            (\tikzcdmatrixname-4-19.north east)
                            --
                            (\tikzcdmatrixname-5-19.south east)
                            node[midway,right,xshift=14mm]{$\text{SE}_1$};
                            \draw [
                                line width=1pt,
                                decorate,
                                decoration={brace,amplitude=3mm,raise=9mm}
                            ]
                            (\tikzcdmatrixname-6-19.north east)
                            --
                            (\tikzcdmatrixname-7-19.south east)
                            node[midway,right,xshift=14mm]{$\text{SE}_2$};
                            \draw [
                                line width=1pt,
                                decorate,
                                decoration={brace,amplitude=3mm,raise=9mm}
                            ]
                            (\tikzcdmatrixname-8-19.north east)
                            --
                            (\tikzcdmatrixname-9-19.south east)
                            node[midway,right,xshift=14mm]{$\text{SE}_3$};
                        }
                    ]
                    % tex-fmt: off
                                                    & \preperr{E_0}         & \ctrl{3} &           &          &          &                                 &                 & \ctrl{5} &           &          &          &                                 &                 & \ctrl{7} &           &          &          &           &                 \\
                    \lstick{$\ket{\psi}$}           & \preperr{E_1}         &          & \ctrl{2}  & \ctrl{3} &          &                                 &                 &          &  \ctrl{4} & \ctrl{5} &          &                                 &                 &          & \ctrl{6}  & \ctrl{7} &          &           &                 \\
                                                    & \preperr{E_2}         &          &           &          & \ctrl{2} &                                 &                 &          &           &          & \ctrl{4} &                                 &                 &          &           &          & \ctrl{6} &           &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} &                       & \targ{}  & \targ{}   &          &          &                                 &                 &          &           &          &          &                                 &                 &          &           &          &          &  \meter{} & \setwiretype{c} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &                       &          &           & \targ{}  & \targ{}  &                                 &                 &          &           &          &          &                                 &                 &          &           &          &          &  \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{}  &  \targ{}  &          &          &                                 &                 &          &           &          &          &  \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} &          &           &  \targ{} & \targ{}  &                                 &                 &          &           &          &          &  \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          &                                 &                 &          &           &          &          & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{}  &  \targ{}  &          &          &  \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          &                                 &                 &          &           &          &          & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} &          &           &  \targ{} & \targ{}  &  \meter{} & \setwiretype{c}
                    % tex-fmt: on
                \end{quantikz}
            \end{figure}
        \end{minipage}
    }
    \only<2>{
        \begin{minipage}{0.4\textwidth}
            \centering

            \vspace*{40mm}
            \begin{tikzpicture}
                \node{$%
                    \bm{\Omega} =
                    \left(
                        \begin{array}{>{\columncolor{red!20}}ccc}
                            1 & 1 & 0 \\
                            0 & 1 & 1 \\
                            1 & 1 & 0 \\
                            0 & 1 & 1 \\
                            1 & 1 & 0 \\
                            0 & 1 & 1
                        \end{array}
                    \right)$
                };

                \draw [
                    line width=1pt,
                    decorate,
                    decoration={brace,mirror,amplitude=3mm,raise=5mm}
                ]
                (2.5,1.2) -- (2.5,2.85)
                node[midway,right,xshift=10mm]{$\text{SE}_1$};

                \draw [
                    line width=1pt,
                    decorate,
                    decoration={brace,mirror,amplitude=3mm,raise=5mm}
                ]
                (2.5,-0.75) -- (2.5,0.9)
                node[midway,right,xshift=10mm]{$\text{SE}_2$};

                \draw [
                    line width=1pt,
                    decorate,
                    decoration={brace,mirror,amplitude=3mm,raise=5mm}
                ]
                (2.5,-2.7) -- (2.5,-1.1)
                node[midway,right,xshift=10mm]{$\text{SE}_3$};
            \end{tikzpicture}

            \vspace*{-10mm}

            \begin{gather*}
                \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\}
            \end{gather*}
        \end{minipage}%
        \begin{minipage}{0.6\textwidth}
            \begin{figure}[H]
                \newcommand{\preperr}[1]{
                    \gate[style={fill=orange!20}]{\scriptstyle ##1}
                }
                \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}

                \newcommand{\noise}{
                    \gate[style={noisy}]{\text{\small X}}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redwire}[1]{
                    \wire[r][##1][style={draw=red, line width=2pt}]{q}
                }
                \newcommand{\redtarg}{
                    \targ[style={draw=red}]{}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redctrl}[1]{
                    \ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
                }
                \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}

                \tikzset{
                    noisy/.style={
                        starburst,
                        starburst point height=2mm,
                        fill=red!25, draw=red!85!black,
                        line width=2pt,
                        inner xsep=-2pt, inner ysep=-2pt
                    },
                }

                \centering

                \begin{quantikz}[
                        row sep=4mm, column sep=4mm,
                        wire types={q,q,q,q,q,n,n,n,n},
                        execute at end picture={
                            \draw [
                                line width=1pt,
                                decorate,
                                decoration={brace,amplitude=3mm,raise=9mm}
                            ]
                            (\tikzcdmatrixname-4-19.north east)
                            --
                            (\tikzcdmatrixname-5-19.south east)
                            node[midway,right,xshift=14mm]{$\text{SE}_1$};
                            \draw [
                                line width=1pt,
                                decorate,
                                decoration={brace,amplitude=3mm,raise=9mm}
                            ]
                            (\tikzcdmatrixname-6-19.north east)
                            --
                            (\tikzcdmatrixname-7-19.south east)
                            node[midway,right,xshift=14mm]{$\text{SE}_2$};
                            \draw [
                                line width=1pt,
                                decorate,
                                decoration={brace,amplitude=3mm,raise=9mm}
                            ]
                            (\tikzcdmatrixname-8-19.north east)
                            --
                            (\tikzcdmatrixname-9-19.south east)
                            node[midway,right,xshift=14mm]{$\text{SE}_3$};
                        }
                    ]
                    % tex-fmt: off
                                                    & \noise\redwire{18}    & \redctrl{3}            &           &          &          &                                 &                 & \redctrl{5}          &           &          &          &                                 &                 & \redctrl{7}         &           &          &          &                                                                  &                 \\
                    \lstick{$\ket{\psi}$}           & \preperr{E_1}         &                        & \ctrl{2}  & \ctrl{3} &          &                                 &                 &                      &  \ctrl{4} & \ctrl{5} &          &                                 &                 &                     & \ctrl{6}  & \ctrl{7} &          &                                                                  &                 \\
                                                    & \preperr{E_2}         &                        &           &          & \ctrl{2} &                                 &                 &                      &           &          & \ctrl{4} &                                 &                 &                     &           &          & \ctrl{6} &                                                                  &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} &                       & \redtarg{}\redwire{16} & \targ{}   &          &          &                                 &                 &                      &           &          &          &                                 &                 &                     &           &          &          & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &                       &                        &           & \targ{}  & \targ{}  &                                 &                 &                      &           &          &          &                                 &                 &                     &           &          &          & \meter{}                                                         & \setwiretype{c} \\
                                                    &                       &                        &           &          &          & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\redwire{10} &  \targ{}  &          &          &                                 &                 &                     &           &          &          & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &                        &           &          &          & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} &                      &           &  \targ{} & \targ{}  &                                 &                 &                     &           &          &          & \meter{}                                                         & \setwiretype{c} \\
                                                    &                       &                        &           &          &          &                                 &                 &                      &           &          &          & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \redtarg\redwire{4} &  \targ{}  &          &          & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &                        &           &          &          &                                 &                 &                      &           &          &          & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} &                     &           &  \targ{} & \targ{}  & \meter{}                                                         & \setwiretype{c}
                    % tex-fmt: on
                \end{quantikz}
            \end{figure}
        \end{minipage}
    }

    \vspace*{8mm}

    \addreferencesmanual
    {DTB$^+$25}{
        P.- J. H. S. Derks et al., ``Designing fault-tolerant
        circuits using detector error models,'' \emph{Quantum}, 2025.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}[fragile]
    \frametitle{The Measurement Syndrome Matrix}

    \vspace*{-18mm}

    \begin{itemize}
        \item \schlagwort{Measurement syndrome matrix} $\bm{\Omega}$ \\
            contains error patterns \citereferencemanual{DTB$^+$25}\
        \item Example: 3-qubit repetition code
    \end{itemize}

    \vspace*{-29mm}

    \centering
    \only<1>{
        \begin{minipage}{0.4\textwidth}
            \centering

            \vspace*{40mm}
            \hspace*{-75mm}
            \scalebox{0.85}{
                \parbox{.5\linewidth}{%
                    \vspace*{22.6mm}
                    \begin{gather*}
                        \bm{\Omega} =
                        \left(
                            \begin{array}{ccccccccccccccc}
                                1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1
                                & 0 & 0 & 0 & 0 & 0  \\
                                1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0
                                & 1 & 1 & 0 & 1 & 0  \\
                                0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0
                                & 0 & 1 & 1 & 0 & 1
                            \end{array}
                        \right) \\[10mm]
                        \hspace*{50mm} %
                        \bm{s} \in \text{span} \mleft\{
                        \bm{\Omega} \mright\}
                    \end{gather*}
                }
            }
        \end{minipage}%
        \begin{minipage}{0.6\textwidth}
            \begin{figure}[H]
                \newcommand{\preperr}[1]{
                    \gate[style={fill=orange!20}]{\scriptstyle ##1}
                }
                \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}

                \newcommand{\noise}{
                    \gate[style={noisy}]{\text{\small X}}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redwire}[1]{
                    \wire[r][##1][style={draw=red, line width=2pt}]{q}
                }
                \newcommand{\redtarg}{
                    \targ[style={draw=red}]{}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redctrl}[1]{
                    \ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
                }
                \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}

                \tikzset{
                    noisy/.style={
                        starburst,
                        starburst point height=2.5mm,
                        fill=red!25, draw=red!85!black,
                        line width=2pt,
                        inner xsep=-2pt, inner ysep=-2pt
                    },
                }

                \centering

                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}]
                                                    & \preperr{E_0}         & \ctrl{3} &           &          &          & \preperr{E_5}                   &                 & \ctrl{5} &           &          &          & \preperr{E_{10}}                &                 & \ctrl{7} &           &          &          &                  &          &                 \\
                    \lstick{$\ket{\psi}$}           & \preperr{E_1}         &          & \ctrl{2}  & \ctrl{3} &          & \preperr{E_6}                   &                 &          &  \ctrl{4} & \ctrl{5} &          & \preperr{E_{11}}                &                 &          & \ctrl{6}  & \ctrl{7} &          &                  &          &                 \\
                                                    & \preperr{E_2}         &          &           &          & \ctrl{2} & \preperr{E_7}                   &                 &          &           &          & \ctrl{4} & \preperr{E_{12}}                &                 &          &           &          & \ctrl{6} &                  &          &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} &                       & \targ{}  & \targ{}   &          &          &                                 &                 &          &           &          &          &                                 &                 &          &           &          &          & \preperr{E_3}    & \meter{} & \setwiretype{c} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &                       &          &           & \targ{}  & \targ{}  &                                 &                 &          &           &          &          &                                 &                 &          &           &          &          & \preperr{E_4}    & \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{}  &  \targ{}  &          &          &                                 &                 &          &           &          &          & \preperr{E_8}    & \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} &          &           &  \targ{} & \targ{}  &                                 &                 &          &           &          &          & \preperr{E_9}    & \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          &                                 &                 &          &           &          &          & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{}  &  \targ{}  &          &          & \preperr{E_{13}} & \meter{} & \setwiretype{c} \\
                                                    &                       &          &           &          &          &                                 &                 &          &           &          &          & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} &          &           &  \targ{} & \targ{}  & \preperr{E_{14}} & \meter{} & \setwiretype{c}
                \end{quantikz}
                % tex-fmt: on
            \end{figure}
        \end{minipage}
    }
    \only<2>{
        \begin{minipage}{0.4\textwidth}
            \centering

            \vspace*{40mm}
            \hspace*{-75mm}
            \scalebox{0.85}{
                \parbox{.5\linewidth}{%
                    \begin{gather*}
                        \hspace*{54.25mm}%
                        \begin{array}{c}
                            E_5 \\
                            \downarrow
                        \end{array}
                    \end{gather*}
                    \vspace*{-10mm}
                    \begin{gather*}
                        \bm{\Omega} =
                        \left(
                            \begin{array}{
                                    ccccc%
                                    >{\columncolor{red!20}}c%
                                    ccccccccc
                                }
                                1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1
                                & 0 & 0 & 0 & 0 & 0  \\
                                1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0
                                & 1 & 1 & 0 & 1 & 0  \\
                                0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0
                                & 0 & 1 & 1 & 0 & 1
                            \end{array}
                        \right) \\[10mm]
                        \hspace*{50mm} %
                        \bm{s} \in \text{span} \mleft\{
                        \bm{\Omega} \mright\}
                    \end{gather*}
                }
            }
        \end{minipage}%
        \begin{minipage}{0.6\textwidth}
            \begin{figure}[H]
                \newcommand{\preperr}[1]{
                    \gate[style={fill=orange!20}]{\scriptstyle ##1}
                }
                \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}

                \newcommand{\noise}{
                    \gate[style={noisy}]{\text{\small X}}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redwire}[1]{
                    \wire[r][##1][style={draw=red, line width=2pt}]{q}
                }
                \newcommand{\redtarg}{
                    \targ[style={draw=red}]{}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redctrl}[1]{
                    \ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
                }
                \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}

                \tikzset{
                    noisy/.style={
                        starburst,
                        starburst point height=2.5mm,
                        fill=red!25, draw=red!85!black,
                        line width=2pt,
                        inner xsep=-2pt, inner ysep=-2pt
                    },
                }

                \centering

                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}]
                                                    & \preperr{E_0}         & \ctrl{3} &           &          &          & \noise\redwire{14}              &                 & \redctrl{5}          &           &          &          & \preperr{E_{10}}                &                 & \redctrl{7}         &           &          &          &                  &                                                                  &                 \\
                    \lstick{$\ket{\psi}$}           & \preperr{E_1}         &          & \ctrl{2}  & \ctrl{3} &          & \preperr{E_6}                   &                 &                      &  \ctrl{4} & \ctrl{5} &          & \preperr{E_{11}}                &                 &                     & \ctrl{6}  & \ctrl{7} &          &                  &                                                                  &                 \\
                                                    & \preperr{E_2}         &          &           &          & \ctrl{2} & \preperr{E_7}                   &                 &                      &           &          & \ctrl{4} & \preperr{E_{12}}                &                 &                     &           &          & \ctrl{6} &                  &                                                                  &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} &                       & \targ{}  & \targ{}   &          &          &                                 &                 &                      &           &          &          &                                 &                 &                     &           &          &          & \preperr{E_3}    & \meter{}                                                         & \setwiretype{c} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &                       &          &           & \targ{}  & \targ{}  &                                 &                 &                      &           &          &          &                                 &                 &                     &           &          &          & \preperr{E_4}    & \meter{}                                                         & \setwiretype{c} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\redwire{11} &  \targ{}  &          &          &                                 &                 &                     &           &          &          & \preperr{E_8}    & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} &                      &           &  \targ{} & \targ{}  &                                 &                 &                     &           &          &          & \preperr{E_9}    & \meter{}                                                         & \setwiretype{c} \\
                                                    &                       &          &           &          &          &                                 &                 &                      &           &          &          & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \redtarg\redwire{5} &  \targ{}  &          &          & \preperr{E_{13}} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &          &           &          &          &                                 &                 &                      &           &          &          & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} &                     &           &  \targ{} & \targ{}  & \preperr{E_{14}} & \meter{}                                                         & \setwiretype{c}
                \end{quantikz}
                % tex-fmt: on
            \end{figure}
        \end{minipage}
    }
    \only<3>{
        \begin{minipage}{0.4\textwidth}
            \centering

            \vspace*{40mm}
            \hspace*{-75mm}
            \scalebox{0.85}{
                \parbox{.5\linewidth}{%
                    \begin{gather*}
                        \hspace*{61.5mm}%
                        \begin{array}{c}
                            E_6 \\
                            \downarrow
                        \end{array}
                    \end{gather*}
                    \vspace*{-10mm}
                    \begin{gather*}
                        \bm{\Omega} =
                        \left(
                            \begin{array}{
                                    cccccc%
                                    >{\columncolor{red!20}}c%
                                    cccccccc
                                }
                                1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0
                                & 0 & 0 & 0 & 0 & 0  \\
                                0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1
                                & 0 & 0 & 0 & 0 & 0  \\
                                1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0
                                & 1 & 1 & 0 & 1 & 0  \\
                                0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0
                                & 0 & 1 & 1 & 0 & 1
                            \end{array}
                        \right) \\[10mm]
                        \hspace*{50mm} %
                        \bm{s} \in \text{span} \mleft\{
                        \bm{\Omega} \mright\}
                    \end{gather*}
                }
            }
        \end{minipage}%
        \begin{minipage}{0.6\textwidth}
            \begin{figure}[H]
                \newcommand{\preperr}[1]{
                    \gate[style={fill=orange!20}]{\scriptstyle ##1}
                }
                \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}

                \newcommand{\noise}{
                    \gate[style={noisy}]{\text{\small X}}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redwire}[1]{
                    \wire[r][##1][style={draw=red, line width=2pt}]{q}
                }
                \newcommand{\redtarg}{
                    \targ[style={draw=red}]{}%
                    \setwiretype{n}%
                    \wire[l][1]{q}
                }
                \newcommand{\redctrl}[1]{
                    \ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
                }
                \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}

                \tikzset{
                    noisy/.style={
                        starburst,
                        starburst point height=2.5mm,
                        fill=red!25, draw=red!85!black,
                        line width=2pt,
                        inner xsep=-2pt, inner ysep=-2pt
                    },
                }

                \centering

                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}]
                                                    & \preperr{E_0}         & \ctrl{3} &           &          &          & \preperr{E_5}                   &                 & \ctrl{5} &                      &                     &          & \preperr{E_{10}}                &                 & \ctrl{7} &                     &                     &          &                  &                                                                  &                 \\
                    \lstick{$\ket{\psi}$}           & \preperr{E_1}         &          & \ctrl{2}  & \ctrl{3} &          & \noise\redwire{14}              &                 &          & \redctrl{4}          & \redctrl{5}         &          & \preperr{E_{11}}                &                 &          & \redctrl{6}         & \redctrl{7}         &          &                  &                                                                  &                 \\
                                                    & \preperr{E_2}         &          &           &          & \ctrl{2} & \preperr{E_7}                   &                 &          &                      &                     & \ctrl{4} & \preperr{E_{12}}                &                 &          &                     &                     & \ctrl{6} &                  &                                                                  &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} &                       & \targ{}  & \targ{}   &          &          &                                 &                 &          &                      &                     &          &                                 &                 &          &                     &                     &          & \preperr{E_3}    & \meter{}                                                         & \setwiretype{c} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &                       &          &           & \targ{}  & \targ{}  &                                 &                 &          &                      &                     &          &                                 &                 &          &                     &                     &          & \preperr{E_4}    & \meter{}                                                         & \setwiretype{c} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{}  & \redtarg\redwire{10} &                     &          &                                 &                 &          &                     &                     &          & \preperr{E_8}    & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &          &           &          &          & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} &          &                      & \redtarg\redwire{9} & \targ{}  &                                 &                 &          &                     &                     &          & \preperr{E_9}    & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &          &           &          &          &                                 &                 &          &                      &                     &          & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{}  & \redtarg\redwire{4} &                     &          & \preperr{E_{13}} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
                                                    &                       &          &           &          &          &                                 &                 &          &                      &                     &          & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} &          &                     & \redtarg\redwire{3} & \targ{}  & \preperr{E_{14}} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n}
                \end{quantikz}
                % tex-fmt: on
            \end{figure}
        \end{minipage}
    }

    \vspace*{4mm}

    \addreferencesmanual
    {DTB$^+$25}{
        P.- J. H. S. Derks et al., ``Designing fault-tolerant
        circuits using detector error models,'' \emph{Quantum}, 2025.
    }
    \stopreferencesmanual
\end{frame}

% TODO: Journal not showing for derks_designing_2025
\begin{frame}[fragile]
    \frametitle{The Detector Error Matrix}

    \vspace*{-14mm}

    \begin{itemize}
        \item Repetition of errors mitigated by XORing measurements
    \end{itemize}

    \begin{minipage}{0.4\textwidth}
        \begin{figure}[H]
            \newcommand{\redwire}[1]{
                \wire[r][#1][style={draw=red, line width=2pt, double}]{q}
            }
            \newcommand{\inwire}{
                \wire[l][1][style={draw=red, line width=2pt}]{q}
            }
            \newcommand{\redtarg}{
                \targ[style={draw=red,line width=2pt}]{}%
                \setwiretype{n}%
            }
            \newcommand{\redctrl}[1]{
                \ctrl[style={draw=red,fill=red, line width=2pt}]{0}%
                \wire[d][#1][style={draw=red, line width=2pt, double}]{q}
            }
            \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}
            \newcommand{\redgate}[1]{\gate[style={draw=red,fill=red!20}]{\textcolor{red}{#1}}}

            \centering

            \only<1>{
                \hspace*{-46mm}
                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={n,n,n,n,n,n}]
                    & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \\
                    & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \\
                    & \redmeter{}\inwire\redwire{1}        & \\
                    & \redmeter{}\inwire\redwire{1}        & \\
                    & \redmeter{}\inwire\redwire{1}        & \\
                    & \redmeter{}\inwire\redwire{1}        &
                \end{quantikz}
                % tex-fmt: on
            }
            \only<2->{
                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={n,n,n,n,n,n}]
                    & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \setwiretype{c}               &                           &             & \ctrl[vertical wire=c]{2} &                           & \gate{D_1} \\
                    & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \setwiretype{c}               &                           &             &                           & \ctrl[vertical wire=c]{2} & \gate{D_2} \\
                    & \redmeter{}\inwire\redwire{6} &      & \redctrl{2}                   &                           & \targ{}     &                           & \redgate{D_3} \\
                    & \redmeter{}\inwire\redwire{6} &      &                               & \redctrl{2}               &             & \targ{}                   & \redgate{D_4} \\
                    & \redmeter{}\inwire\redwire{2} &      & \redtarg\wire[r][4]{c}        &                           &             &                           & \gate{D_5} \\
                    & \redmeter{}\inwire\redwire{3} &      &                               & \redtarg\wire[r][3]{c}    &             &                           & \gate{D_6}
                \end{quantikz}
                % tex-fmt: on
            }
        \end{figure}
    \end{minipage}%
    \begin{minipage}{0.6\textwidth}
        \newcommand\cc{\cellcolor{blue!20}}

        \visible<3->{
            \begin{align*}
                \bm{H} =
                % tex-fmt: off
                \left(\begin{array}{ccccccccccccccc}
                    1      & 1      & 0      & 1      & 0      & 0      & 0      & 0      & 0      & 0      & 0 & 0 & 0 & 0 & 0  \\
                    0      & 1      & 1      & 0      & 1      & 0      & 0      & 0      & 0      & 0      & 0 & 0 & 0 & 0 & 0  \\
                    \cc{0} & \cc{0} & \cc{0} & \cc{1} & \cc{0} & 1      & 1      & 0      & 1      & 0      & 0 & 0 & 0 & 0 & 0  \\
                    \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{1} & 0      & 1      & 1      & 0      & 1      & 0 & 0 & 0 & 0 & 0  \\
                    \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{1} & \cc{0} & 1 & 1 & 0 & 1 & 0  \\
                    \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{1} & 0 & 1 & 1 & 0 & 1
                \end{array}\right)
                % tex-fmt: on
            \end{align*}
        }
    \end{minipage}

    \vspace*{5mm}

    \visible<3->{
        \begin{itemize}
            \item \schlagwort{Detector}: Parity constraint on a set
                of measurement outcomes
            \item Columns of \schlagwort{detector error matrix}
                $\bm{H}$ are modified error patterns
                \citereferencemanual{DTB$^+$25}\
        \end{itemize}
    }

    \vspace*{10mm}

    \addreferencesmanual
    {DTB$^+$25}{
        P.- J. H. S. Derks et al., ``Designing fault-tolerant
        circuits using detector error models,'' \emph{Quantum}, 2025.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}[fragile]
    \frametitle{Noise Models}

    % Related interesting stuff
    % - The difference between an n-qubit error and multiple
    %   simultaneous single-qubit errors is that in the n-qubit case,
    %   the errors can be correlated (e.g., XX more probable than XI)
    % - There is also work on using soft information at the
    %   measurement outputs (may translate to not-just-X-errors at the
    %   measurements)

    \vspace*{-12mm}

    \begin{itemize}
        \item \schlagwort{Noise model} assigns probabilities to error locations
    \end{itemize}

    \vspace*{1mm}

    \begin{minipage}{0.60\textwidth}
        \begin{itemize}
            \item Types of noise model
                \begin{itemize}
                        \visible<1->{
                        \item \schlagwort{Depolarizing channel}
                            considers \citereferencemanual{NC10}
                            \begin{itemize}
                                \item $\X$, $\Y$ or $\Z$ errors on
                                    the data qubits
                            \end{itemize}
                        }
                        \visible<2->{
                        \item \schlagwort{Phenomenological noise} considers
                            \citereferencemanual{GJ23}
                            \begin{itemize}
                                \item $\X,\Y$ or $\Z$ errors on data qubits
                                    before each \\
                                    measurement round
                                \item $\X$ errors on measurement outcomes
                            \end{itemize}
                        }
                        \visible<3->{
                        \item \schlagwort{Circuit-level noise} considers
                            \citereferencemanual{DTB$^+$25}
                            \begin{itemize}
                                \item $\X$, $\Y$ or $\Z$ errors after
                                    state preparation
                                \item $n$-qubit $\X$, $\Y$ or $\Z$ errors
                                    after any $n$-qubit gate
                                \item $\X$ errors on measurement outcomes
                            \end{itemize}
                        }
                \end{itemize}
        \end{itemize}
    \end{minipage}%
    \hfill%
    \begin{minipage}{0.39\textwidth}
        \begin{figure}[H]
            \newcommand{\xerr}{\gate[style={fill=kit-blue!50}]{\phantom{1}}}
            \newcommand{\xyzerr}{\gate[style={
                        draw=black,
                        fill=kit-red,
                        path picture={
                            \fill[kit-blue!60]
                            ($(path picture bounding box.south
                            west)+(0,0)$) --
                            ($(path picture bounding box.north
                            west)+(0,0)$) --
                            ($(path picture bounding box.north
                            west)+(0.34,0)$) -- cycle;
                            \fill[kit-orange!60]
                            ($(path picture bounding box.north
                            east)+(0,0)$) --
                            ($(path picture bounding box.south
                            east)+(0,0)$) --
                            ($(path picture bounding box.south
                            east)+(-0.34,0)$) -- cycle;
                            \fill[kit-red!60]
                            ($(path picture bounding box.north
                            east)+(0,0)$) --
                            ($(path picture bounding box.south
                            east)+(-0.34,0)$) --
                            ($(path picture bounding box.south
                            west)+(0,0)$) --
                            ($(path picture bounding box.north
                            west)+(0.34,0)$) -- cycle;
                        }
            }]{\phantom{1}}}

            \hspace*{-18mm}
            \only<1>{
                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm]
                                                    & \xyzerr & \ctrl{3} &            &          &           &           &                 \\
                    \lstick{$\ket{\psi}$}           & \xyzerr &          & \ctrl{2}   & \ctrl{3} &           &           &                 \\
                                                    & \xyzerr &          &            &          & \ctrl{2}  &           &                 \\
                    \lstick{$\ket{0}_{\text{A}_1}$} &         & \targ{}  & \targ{}    &          &           &  \meter{} & \setwiretype{c} \\
                    \lstick{$\ket{0}_{\text{A}_2}$} &         &          &            & \targ{}  & \targ{}   &  \meter{} & \setwiretype{c}
                \end{quantikz}
                % tex-fmt: on
            }
            \only<2>{
                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=4mm]
                                                      & \xyzerr & \ctrl{3} &           &          &          &       &           & \xyzerr         & & \setwiretype{n} &                                       \\
                    \lstick{$\ket{\psi}$}             & \xyzerr &          & \ctrl{2}  & \ctrl{3} &          &       &           & \xyzerr         & & \setwiretype{n} & \gate[style={left,draw=none}]{\cdots} \\
                                                      & \xyzerr &          &           &          & \ctrl{2} &       &           & \xyzerr         & & \setwiretype{n} &                                       \\
                    \lstick{$\ket{0}_{\text{A}_1}$}   &         & \targ{}  & \targ{}   &          &          & \xerr &  \meter{} & \setwiretype{c}                                                              \\
                    \lstick{$\ket{0}_{\text{A}_2}$}   &         &          &           & \targ{}  & \targ{}  & \xerr &  \meter{} & \setwiretype{c}
                \end{quantikz}
                % tex-fmt: on
            }
            \only<3>{
                % tex-fmt: off
                \begin{quantikz}[row sep=4mm, column sep=2mm]
                                                      & \xyzerr & \ctrl{3} & \xyzerr \wire[d][3]{q} &           &                        &          &                        &          &                        &       &           & \xyzerr          & & \setwiretype{n} &                                                    \\
                    \lstick{$\ket{\psi}$}             & \xyzerr &          &                        & \ctrl{2}  & \xyzerr \wire[d][2]{q} & \ctrl{3} & \xyzerr \wire[d][3]{q} &          &                        &       &           & \xyzerr          & & \setwiretype{n} & \gate[style={left,draw=none,xshift=3.5mm}]{\cdots} \\
                                                      & \xyzerr &          &                        &           &                        &          &                        & \ctrl{2} & \xyzerr \wire[d][2]{q} &       &           & \xyzerr          & & \setwiretype{n} &                                                    \\
                    \lstick{$\ket{0}_{\text{A}_1}$}   & \xyzerr & \targ{}  & \xyzerr                & \targ{}   & \xyzerr                &          &                        &          &                        & \xerr &  \meter{} & \setwiretype{c}                                                                           \\
                    \lstick{$\ket{0}_{\text{A}_2}$}   & \xyzerr &          &                        &           &                        & \targ{}  & \xyzerr                & \targ{}  & \xyzerr                & \xerr &  \meter{} & \setwiretype{c}
                \end{quantikz}
                % tex-fmt: on
            }
        \end{figure}
    \end{minipage}

    \vspace*{8mm}

    \addreferencesmanual
    {NC10}{
        M. A. Nielsen and I. L. Chuang, ``Quantum computation and
        quantum information'', \emph{Cambridge University Press}, 2010.
    }
    {GJ23}
    {
        C. Gidney and C. Jones, ``New circuits and an open source
        decoder for the color code,'' \emph{arXiv:2312.08813}, 2023.
    }
    {DTB$^+$25}{
        P.- J. H. S. Derks et al., ``Designing fault-tolerant
        circuits using detector error models,'' \emph{Quantum}, 2025.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}
    \frametitle{Decoding using Detector Error Models}

    % Related interesting stuff
    % - Roffe et al. use the min-sum variant of BP.
    % - Babar et al. use the SPA
    % - A lot of publications use Roffe's ldpc package -> min-sum

    \vspace*{-18mm}

    \begin{itemize}
        \item \schlagwort{Detector error model} (DEM) combines
            detector error matrix and noise model
            \visible<2->{
            \item Tanner graph of detector error matrix of bivariate
                bicycle (\acs{bb}) code \citereferencemanual{KSW$^+$25}
            }
    \end{itemize}

    \only<1>{\vspace*{-0.4mm}}
    \vspace*{5mm}

    \visible<2->{
        \begin{figure}[H]
            \centering
            \includegraphics[scale=5,angle=90]{res/stergios_tanner_graph}
        \end{figure}
    }

    \vspace*{-5mm}

    \begin{itemize}
            \visible<2->{
            \item Challenges
            }
            \begin{itemize}
                    \visible<2->{
                    \item Fault tolerance: Additional error locations \\
                        $\implies$ \schlagwort{Increased decoding
                        complexity} \citereferencemanual{GCR24}
                    }
                    \visible<3->{
                    \item Quantum setting: Degeneracy and short
                        cycles \\
                        $\implies$ \schlagwort{Degraded performance}
                        of belief propagation (BP)
                        \citereferencemanual{BBA$^+$15}
                    }
            \end{itemize}
    \end{itemize}

    \vspace*{8mm}

    \addreferencesmanual
    {KSW$^+$25}{
        S. Koutsioumpas et al., ``Automorphism ensemble decoding of
        quantum LDPC codes,'' \emph{arXiv:2503.01738}, 2025.
    }
    {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding
        of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024.
    }
    {BBA$^+$15}{
        Z. Babar et al., ``Fifteen years of
        quantum LDPC coding and improved decoding strategies,''
        \emph{IEEE Access}, 2015.
    }
    \stopreferencesmanual
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Sliding-Window Decoding}
\label{sec:Sliding-Window Decoding}

%%%%%%%%%%%%%%%%
\subsection{State of the Art}
\label{subsec:State of the Art}

% % TODO: Mention somewhere that we are particularly interested in QLDPC codes
% \begin{frame}
%     \frametitle{Addressing the Challenges}
%
%     \vspace*{-14mm}
%
%     \begin{itemize}
%         \item Decoding complexity addressed with window-based approaches
%             \begin{itemize}
%                 \item Parallel decoding \citereferencemanual{SBB$^+$23}
%                 \item Sliding windows
%                     \citereferencemanual{HP23}
%                     \citereferencemanual{GCR24}
%             \end{itemize}
%             \visible<2>{
%             \item Degraded \ac{bp} performance addressed with
%                 modification or extension
%                 \begin{itemize}
%                     \item \Ac{osd} post-processing
%                         \citereferencemanual{RWB$^+$20}
%                     \item Guided decimation \citereferencemanual{GCR24}
%                     \item Neural approaches
%                         \citereferencemanual{KL22}
%                         \citereferencemanual{MSL$^+$25}
%                     \item Ensemble decoding
%                         \citereferencemanual{KSW$^+$25}
%                 \end{itemize}
%             }
%     \end{itemize}
%
%     \vspace*{15mm}
%
%     \addreferencesmanual
%     {SBB$^+$23}{
%         L. Skoric et al., ``Parallel window decoding enables scalable
%         fault tolerant quantum computation,'' \emph{Nature
%         Communications}, 2023.
%     }
% {HP23}{
%     S. Huang and S. Puri, ``Improved noisy syndrome decoding of
%     quantum LDPC codes with sliding window,'' \emph{arXiv:2311.03307}, 2023.
% }
% {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding
%     of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024.
% }
% {RWB$^+$20}{
%     J. Roffe et al., ``Decoding across the quantum low-density
%     parity-check code landscape,'' \emph{Phys. Rev.}, 2020.
% }
%     {KL22}{
%         K.- Y. Kuo and C.- Y. Lai, ``Exploiting degeneracy in belief
%         propagation decoding of quantum codes,'' \emph{npj Quantum
%         Information}, 2022.
%     }
% {MSL$^+$25}{
%     S. Miao et al., ``Quaternary neural belief propagation
%     decoding of quantum LDPC codes with overcomplete
%     check matrices'', \emph{IEEE Access}, 2025.
% }
% {KSW$^+$25}{
%     S. Koutsioumpas et al., ``Automorphism ensemble decoding of
%     quantum LDPC codes,'' \emph{arXiv:2503.01738}, 2025.
% }
%     \stopreferencesmanual
% \end{frame}

\begin{frame}
    \frametitle{Sliding-Window Decoding}

    \vspace*{-13mm}

    \begin{itemize}
        \item Detector error matrix of $\llbracket 72,6,6 \rrbracket$
            \ac{bb} code
    \end{itemize}

    \visible<3->{
        \hspace*{21mm}%
        \begin{tikzpicture}
            \draw[decorate, decoration={brace, amplitude=10pt}, line width=1pt]
            (0,0) -- (6,0) node[midway, above=4mm] {Commit region};
        \end{tikzpicture}
    }

    \vspace*{-2mm}

    \only<1> {
        \begin{figure}[H]
            \centering
            \includegraphics[scale=1.4]{res/72_bb_dem_no_windows.pdf}
        \end{figure}
    }

    \only<2-> {
        \begin{figure}[H]
            \centering
            \includegraphics[scale=1.4]{res/72_bb_dem.pdf}
        \end{figure}
    }

    \vspace*{-50.85mm}

    \visible<4->{
        \hspace*{-8mm}%
        \begin{tikzpicture}
            \draw[{Latex}-{Latex}, line width=1pt] (0,0) -- (0,1);
            \draw[line width=1pt] (-1mm,0) -- (3mm,0);
            \draw[line width=1pt] (-1mm,1) -- (3mm,1);
            \node[left] at (-2mm,0.5) {$\sim W$};

            \draw[{Latex}-{Latex}, line width=1pt] (11.5cm,0.4) -- (11.5cm,1);
            \draw[line width=1pt] (11.5cm,0.98) -- (11.5cm,1.5);
            \node[above] at (11.5cm,1.5) {$\sim F$};
        \end{tikzpicture}
    }

    \vspace*{27mm}

    \begin{itemize}
            \visible<2->{
            \item Split matrix into \schlagwort{overlapping windows}
                \citereferencemanual{HP23} \citereferencemanual{GCR24}
            }
            \visible<3->{
            \item After decoding a window
                \begin{itemize}
                    \item Store error estimates in
                        \schlagwort{commit region}
                    \item \schlagwort{Update syndrome} of overlapping region
                    \item Move to next window
                \end{itemize}
            }
    \end{itemize}

    \vspace*{12mm}

    \addreferencesmanual
    {HP23}{
        S. Huang and S. Puri, ``Improved noisy syndrome decoding of
        quantum LDPC codes with sliding window,'' \emph{arXiv:2311.03307}, 2023.
    }
    {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding
        of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024.
    }
    \stopreferencesmanual
\end{frame}

%%%%%%%%%%%%%%%%
\subsection{Warm-Start Sliding-Window Decoding}
\label{subsec:Soft-Information-Aware Sliding-Window Decoding}

\begin{frame}
    \frametitle{BP: Warm-Start Sliding-Window Decoding}

    \vspace*{-15mm}

    \begin{itemize}
        \item Contribution: \schlagwort{Warm-start} by initializing
            with soft information from previous window
    \end{itemize}

    \vspace*{-5mm}

    \begin{figure}[H]
        \centering

        \tikzset{
            VN/.style={
                circle, fill=kit-green,
                inner sep=1.5mm,
            },
            CN/.style={
                rectangle, fill=kit-blue,
                inner sep=1.8mm,
            },
        }

        \only<1>{
            \begin{tikzpicture}[node distance = 7mm]
                \node[VN]                  (vn00) {};
                \node[VN, below = of vn00] (vn01) {};
                \node[VN, below = of vn01] (vn02) {};
                \node[VN, below = of vn02] (vn03) {};
                \node[VN, below = of vn03] (vn04) {};

                \coordinate (temp) at ($(vn01)!0.5!(vn02)$);

                \node[CN, left =15mm of temp] (cn00) {};
                \node[CN, below = of cn00] (cn01) {};

                \draw (vn00) -- (cn00);
                \draw (vn01) -- (cn00);
                \draw (vn03) -- (cn00);
                \draw (vn01) -- (cn01);
                \draw (vn02) -- (cn01);
                \draw (vn04) -- (cn01);

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \node[VN, right = 35mm of vn\prev 0] (vn\i0) {};
                    \node[VN, below = of vn\i0]          (vn\i1) {};
                    \node[VN, below = of vn\i1]          (vn\i2) {};
                    \node[VN, below = of vn\i2]          (vn\i3) {};
                    \node[VN, below = of vn\i3]          (vn\i4) {};

                    \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);

                    \node[CN, left = 15mm of temp] (cn\i0) {};
                    \node[CN, below = of cn\i0]     (cn\i1) {};

                    \draw (vn\i0) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i0);
                    \draw (vn\i3) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i1);
                    \draw (vn\i2) -- (cn\i1);
                    \draw (vn\i4) -- (cn\i1);
                }

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \draw (vn\prev 3) -- (cn\i 0);
                    \draw (vn\prev 4) -- (cn\i 1);
                }

                \node[
                    draw, inner sep=5mm,line width=1pt,
                    fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
                ]
                (box1) {};
                \node[
                    draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
                    fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
                ]
                (box2) {};

                % Marker for solid box (positions 0–2)
                \draw[line width=1pt] ([yshift=-5mm, line
                width=1pt]box1.south west)
                -- ++(0,-4mm)
                coordinate (dim1l);
                \draw[line width=1pt] ([yshift=-5mm]box1.south east)
                -- ++(0,-4mm)
                coordinate (dim1r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r)
                node[midway, below=2pt] {$W$};

                % Marker for step size F on top
                \draw[line width=1pt] ([yshift=3mm]box2.north west)
                -- ++(0,4mm)
                coordinate (dim3l);
                \draw[line width=1pt] ([yshift=3mm]box2.north west -|
                box1.north west)
                -- ++(0,4mm)
                coordinate (dim3r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r)
                node[midway, above=2pt] {$F$};

                \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north
                east) -- ++(35mm,0);
            \end{tikzpicture}
        }%
        \only<2->{
            \begin{tikzpicture}[node distance = 7mm]
                \node[VN]                  (vn00) {};
                \node[VN, below = of vn00] (vn01) {};
                \node[VN, below = of vn01] (vn02) {};
                \node[VN, below = of vn02] (vn03) {};
                \node[VN, below = of vn03] (vn04) {};

                \coordinate (temp) at ($(vn01)!0.5!(vn02)$);

                \node[CN, left =15mm of temp] (cn00) {};
                \node[CN, below = of cn00] (cn01) {};

                \draw (vn00) -- (cn00);
                \draw (vn01) -- (cn00);
                \draw (vn03) -- (cn00);
                \draw (vn01) -- (cn01);
                \draw (vn02) -- (cn01);
                \draw (vn04) -- (cn01);

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \node[VN, right = 35mm of vn\prev 0] (vn\i0) {};
                    \node[VN, below = of vn\i0]          (vn\i1) {};
                    \node[VN, below = of vn\i1]          (vn\i2) {};
                    \node[VN, below = of vn\i2]          (vn\i3) {};
                    \node[VN, below = of vn\i3]          (vn\i4) {};

                    \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);

                    \node[CN, left = 15mm of temp] (cn\i0) {};
                    \node[CN, below = of cn\i0]     (cn\i1) {};

                    \draw (vn\i0) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i0);
                    \draw (vn\i3) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i1);
                    \draw (vn\i2) -- (cn\i1);
                    \draw (vn\i4) -- (cn\i1);
                }

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \draw (vn\prev 3) -- (cn\i 0);
                    \draw (vn\prev 4) -- (cn\i 1);
                }

                \node[
                    draw, inner sep=5mm,line width=1pt,
                    fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
                ]
                (box1) {};
                \node[
                    draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
                    fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
                ]
                (box2) {};

                \draw[kit-orange, line width=2pt] (cn10) -- (vn10);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn13);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn12);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn14);

                \draw[kit-orange, line width=2pt] (vn13) -- (cn20);
                \draw[kit-orange, line width=2pt] (vn14) -- (cn21);

                \draw[kit-orange, line width=2pt] (cn20) -- (vn20);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn23);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn22);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn24);

                % Marker for solid box (positions 0–2)
                \draw[line width=1pt] ([yshift=-5mm, line
                width=1pt]box1.south west)
                -- ++(0,-4mm)
                coordinate (dim1l);
                \draw[line width=1pt] ([yshift=-5mm]box1.south east)
                -- ++(0,-4mm)
                coordinate (dim1r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r)
                node[midway, below=2pt] {$W$};

                % Marker for step size F on top
                \draw[line width=1pt] ([yshift=3mm]box2.north west)
                -- ++(0,4mm)
                coordinate (dim3l);
                \draw[line width=1pt] ([yshift=3mm]box2.north west -|
                box1.north west)
                -- ++(0,4mm)
                coordinate (dim3r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r)
                node[midway, above=2pt] {$F$};

                \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north
                east) -- ++(35mm,0);
            \end{tikzpicture}
        }
    \end{figure}

    \vspace*{-5mm}

    \begin{itemize}
        \item Pass messages from overlapping region to next window
    \end{itemize}
\end{frame}

\begin{frame}
    \frametitle{BP Performance: Window Size}

    \vspace*{-18mm}

    % Idea for why lower error rate -> larger improvement
    %   - Lower error rate
    %     -> soft info more accurate earlier
    %     -> passed info worth more

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BP}
        \item Larger improvement for lower error rate
    \end{itemize}

    \vspace*{5mm}

    \only<1>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \foreach \W/\col/\mark in
                        {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, mark options={fill=\col},
                                    line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 32$
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<2>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \addplot+[mark=square, line width=3pt, black,
                            legend image code/.code={
                                \draw[black, solid, line width=3pt]
                                (0.5mm,0mm) -- (5.5mm,0mm);
                        }]
                        table[
                            col sep=comma, x=physical_p,
                            y=LER_per_round,
                        ]
                        {res/sim/one-shot/SyndromeMinSumDecoder/max_iter_32/LERs.csv};

                        \addlegendentry{Whole}

                        \foreach \W/\col/\mark in
                        {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, mark options={fill=\col},
                                    line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \addplot+[mark=square, line width=3pt,
                        densely dashed, black]
                        table[
                            col sep=comma, x=physical_p,
                            y=LER_per_round,
                        ]
                        {res/sim/one-shot/SyndromeMinSumDecoder/max_iter_32/LERs.csv};
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 32$
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<3>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \foreach \W/\col/\mark in
                        {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, mark options={fill=gray},
                                    line width=2pt, solid, gray, opacity=0.35,
                                    forget plot,
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, line width=2pt,
                                    densely dashed, gray, opacity=0.35,
                                    forget plot
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, mark options={fill=\col},
                                    line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 200$
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<4>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \foreach \W/\col/\mark in
                        {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, mark options={fill=gray},
                                    line width=2pt, solid, gray, opacity=0.35,
                                    forget plot,
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, line width=2pt,
                                    densely dashed, gray, opacity=0.35,
                                    forget plot
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, mark options={fill=\col},
                                    line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col/\mark in
                        {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 5000$
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
\end{frame}

\begin{frame}
    \frametitle{BP Performance: Step Size}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BP}
        \item Similar behavior to before
            % \item Larger improvement for lower error rate
    \end{itemize}

    \vspace*{6.6mm}

    \only<1> {
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \foreach \F/\col/\mark in
                        {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, mark options={fill=\col},
                                    line width=2pt, solid, \col
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$F = \F$}
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                    \vspace*{-20mm}
                \item Smaller step size\\
                    $\implies$ More overlap
                    \vspace*{10mm}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 32$
                        \item $W = 5$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<2> {
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \foreach \F/\col/\mark in
                        {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                forget plot, solid, gray, opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                    forget plot, densely dashed, gray,
                                opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, mark options={fill=\col},
                                    line width=2pt, solid, \col
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$F = \F$}
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                    \vspace*{-20mm}
                \item Smaller step size\\
                    $\implies$ More overlap
                    \vspace*{10mm}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 200$
                        \item $W = 5$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<3> {
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                                minimum width=25mm,
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                        ]

                        \foreach \F/\col/\mark in
                        {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                forget plot, solid, gray, opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square}
                        {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                    forget plot, densely dashed, gray,
                                opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                        {
                            \edef\temp{\noexpand
                                \addplot+[
                                    mark=\mark, mark options={fill=\col},
                                    line width=2pt, solid, \col
                                ]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$F = \F$}
                        }

                        \foreach \F/\col/\mark in
                        {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} {
                            \edef\temp{\noexpand
                                \addplot+[mark=\mark, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}

                    \setlength{\tabcolsep}{3pt}

                    \node[
                        draw, fill=white,
                        anchor=south east, at={(current axis.south east)},
                        xshift=-40mm, yshift=3.15mm,
                        inner xsep=1mm,
                    ] (linestyle legend) {
                        \begin{tabular}{ll}
                            \raisebox{4pt}{%
                                \tikz{%
                                    \draw[black, densely dashed, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                            \raisebox{5pt}{%
                                \tikz{%
                                    \draw[black, solid, line width=2pt]
                                    (0,0) -- (0.6cm,0);%
                                }%
                            } & \raisebox{-1pt}{Warm start}
                        \end{tabular}
                    };
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                    \vspace*{-20mm}
                \item Smaller step size\\
                    $\implies$ More overlap
                    \vspace*{10mm}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
                \item $12$ \ac{se} rounds
                \item Min-sum decoder
                \item Parameters
                    \begin{itemize}
                        \item $n_\text{iterations} = 5000$
                        \item $W = 5$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
\end{frame}

\begin{frame}[fragile]
    \frametitle{BP with Guided Decimation}

    \begin{minipage}{0.5\textwidth}
        \vspace*{-10mm}
        \centering
        \begin{itemize}
                \only<1>{\vspace*{10mm}}
            \item Most errors due to non-convergence
                \vspace*{10mm}
                \visible<2-> {
                \item BP with guided decimation (BPGD)
                    \citereferencemanual{YLH+24}
                    \begin{enumerate}
                        \item Perform $T$ \schlagwort{BP iterations}
                        \item Hard decision on \schlagwort{most
                            reliable \ac{vn}}
                        \item \schlagwort{Exclude \ac{vn}} from
                            further processing
                        \item Go back to step 1
                    \end{enumerate}
                    \vspace*{10mm}
                \item Mitigates convergence problems
                }
        \end{itemize}
    \end{minipage}%
    \begin{minipage}{0.5\textwidth}
        \visible<3->{
            \centering
            \vspace*{-10mm}

            \begin{itemize}
                \item $\llbracket 882, 24, 18 \le d \le 24
                    \rrbracket$ generalized hypergraph product (GHP) code,
                    bit-flip noise \citereferencemanual{YLH+24}
            \end{itemize}

            % \vspace*{-5mm}

            \begin{figure}[H]
                \centering

                \begin{tikzpicture}
                    \begin{axis}[
                            width=13cm,
                            height=9cm,
                            ymode=log,
                            legend pos = south east,
                            ymin=1e-6, ymax=1,
                            enlargelimits=false,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            xlabel = {Physical error rate},
                            ylabel = {Frame error rate},
                            xtick={0.04,0.05,...,0.1},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            grid=both,
                        ]
                        \addplot+[mark=pentagon, mark
                        options={fill=black}, line width=2pt, black]
                        table[col sep=comma, x=p, y=FER]
                        {res/literature/yao_bp.csv};
                        \addlegendentry{BP}

                        \addplot+[mark=diamond*, mark
                        options={fill=kit-green}, line width=2pt, kit-green]
                        table[col sep=comma, x=p, y=FER]
                        {res/literature/yao_bpgd_1.csv};
                        \addlegendentry{BPGD, $T = 1$}

                        \addplot+[mark=*, mark
                        options={fill=kit-red}, line width=2pt, kit-red]
                        table[col sep=comma, x=p, y=FER]
                        {res/literature/yao_bpgd_10.csv};
                        \addlegendentry{BPGD, $T = 10$}

                        \addplot+[mark=triangle*, mark
                        options={fill=kit-blue}, line width=2pt, kit-blue]
                        table[col sep=comma, x=p, y=FER]
                        {res/literature/yao_bpgd_70.csv};
                        \addlegendentry{BPGD, $T = 70$}

                        \addplot+[mark=square*, mark
                        options={fill=kit-orange}, line width=2pt, kit-orange]
                        table[col sep=comma, x=p, y=FER]
                        {res/literature/yao_bpgd_100.csv};
                        \addlegendentry{BPGD, $T = 100$}

                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        }
    \end{minipage}

    \vspace*{5mm}

    \addreferencesmanual
    {YLH+24}{Hanwen Yao et al. ``Belief propagation decoding of quantum
        LDPC codes with guided decimation,'' 2024 IEEE International
    Symposium on Information Theory (ISIT), 2024.}
    \stopreferencesendmanual
\end{frame}

\begin{frame}
    \frametitle{BPGD: Warm-Start Sliding-Window Decoding I}

    \vspace*{-15mm}

    \begin{itemize}
        \item BPGD: Additional information about overlap region
    \end{itemize}

    \vspace*{-5mm}

    \begin{figure}[H]
        \centering

        \tikzset{
            VN/.style={
                circle, fill=kit-green,
                inner sep=1.5mm,
            },
            CN/.style={
                rectangle, fill=kit-blue,
                inner sep=1.8mm,
            },
        }

        \only<1>{
            \begin{tikzpicture}[node distance = 7mm]
                \node[VN]                  (vn00) {};
                \node[VN, below = of vn00] (vn01) {};
                \node[VN, below = of vn01] (vn02) {};
                \node[VN, below = of vn02] (vn03) {};
                \node[VN, below = of vn03] (vn04) {};

                \coordinate (temp) at ($(vn01)!0.5!(vn02)$);

                \node[CN, left =15mm of temp] (cn00) {};
                \node[CN, below = of cn00] (cn01) {};

                \draw (vn00) -- (cn00);
                \draw (vn01) -- (cn00);
                \draw (vn03) -- (cn00);
                \draw (vn01) -- (cn01);
                \draw (vn02) -- (cn01);
                \draw (vn04) -- (cn01);

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \node[VN, right = 35mm of vn\prev 0] (vn\i0) {};
                    \node[VN, below = of vn\i0]          (vn\i1) {};
                    \node[VN, below = of vn\i1]          (vn\i2) {};
                    \node[VN, below = of vn\i2]          (vn\i3) {};
                    \node[VN, below = of vn\i3]          (vn\i4) {};

                    \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);

                    \node[CN, left = 15mm of temp] (cn\i0) {};
                    \node[CN, below = of cn\i0]     (cn\i1) {};

                    \draw (vn\i0) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i0);
                    \draw (vn\i3) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i1);
                    \draw (vn\i2) -- (cn\i1);
                    \draw (vn\i4) -- (cn\i1);
                }

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \draw (vn\prev 3) -- (cn\i 0);
                    \draw (vn\prev 4) -- (cn\i 1);
                }

                \node[
                    draw, inner sep=5mm,line width=1pt,
                    fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
                ]
                (box1) {};
                \node[
                    draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
                    fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
                ]
                (box2) {};

                % Marker for solid box (positions 0–2)
                \draw[line width=1pt] ([yshift=-5mm, line
                width=1pt]box1.south west)
                -- ++(0,-4mm)
                coordinate (dim1l);
                \draw[line width=1pt] ([yshift=-5mm]box1.south east)
                -- ++(0,-4mm)
                coordinate (dim1r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r)
                node[midway, below=2pt] {$W$};

                % Marker for step size F on top
                \draw[line width=1pt] ([yshift=3mm]box2.north west)
                -- ++(0,4mm)
                coordinate (dim3l);
                \draw[line width=1pt] ([yshift=3mm]box2.north west -|
                box1.north west)
                -- ++(0,4mm)
                coordinate (dim3r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r)
                node[midway, above=2pt] {$F$};

                \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north
                east) -- ++(35mm,0);
            \end{tikzpicture}
        }%
        \only<2->{
            \begin{tikzpicture}[node distance = 7mm]
                \node[VN]                  (vn00) {};
                \node[VN, below = of vn00] (vn01) {};
                \node[VN, below = of vn01] (vn02) {};
                \node[VN, below = of vn02] (vn03) {};
                \node[VN, below = of vn03] (vn04) {};

                \coordinate (temp) at ($(vn01)!0.5!(vn02)$);

                \node[CN, left =15mm of temp] (cn00) {};
                \node[CN, below = of cn00] (cn01) {};

                \draw (vn00) -- (cn00);
                \draw (vn01) -- (cn00);
                \draw (vn03) -- (cn00);
                \draw (vn01) -- (cn01);
                \draw (vn02) -- (cn01);
                \draw (vn04) -- (cn01);

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \node[VN, right = 35mm of vn\prev 0] (vn\i0) {};
                    \node[VN, below = of vn\i0]          (vn\i1) {};
                    \node[VN, below = of vn\i1]          (vn\i2) {};
                    \node[VN, below = of vn\i2]          (vn\i3) {};
                    \node[VN, below = of vn\i3]          (vn\i4) {};

                    \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);

                    \node[CN, left = 15mm of temp] (cn\i0) {};
                    \node[CN, below = of cn\i0]     (cn\i1) {};

                    \draw (vn\i0) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i0);
                    \draw (vn\i3) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i1);
                    \draw (vn\i2) -- (cn\i1);
                    \draw (vn\i4) -- (cn\i1);
                }

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \draw (vn\prev 3) -- (cn\i 0);
                    \draw (vn\prev 4) -- (cn\i 1);
                }

                \node[
                    draw, inner sep=5mm,line width=1pt,
                    fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
                ]
                (box1) {};
                \node[
                    draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
                    fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
                ]
                (box2) {};

                \draw[kit-orange, line width=2pt] (cn10) -- (vn10);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn13);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn12);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn14);

                \draw[kit-orange, line width=2pt] (vn13) -- (cn20);
                \draw[kit-orange, line width=2pt] (vn14) -- (cn21);

                \draw[kit-orange, line width=2pt] (cn20) -- (vn20);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn23);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn22);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn24);

                \node[VN, draw=kit-orange, fill=kit-orange] at (vn10) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn11) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn12) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn13) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn14) {};

                \node[VN, draw=kit-orange, fill=kit-orange] at (vn20) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn21) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn22) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn23) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn24) {};

                % Marker for solid box (positions 0–2)
                \draw[line width=1pt] ([yshift=-5mm, line
                width=1pt]box1.south west)
                -- ++(0,-4mm)
                coordinate (dim1l);
                \draw[line width=1pt] ([yshift=-5mm]box1.south east)
                -- ++(0,-4mm)
                coordinate (dim1r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r)
                node[midway, below=2pt] {$W$};

                % Marker for step size F on top
                \draw[line width=1pt] ([yshift=3mm]box2.north west)
                -- ++(0,4mm)
                coordinate (dim3l);
                \draw[line width=1pt] ([yshift=3mm]box2.north west -|
                box1.north west)
                -- ++(0,4mm)
                coordinate (dim3r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r)
                node[midway, above=2pt] {$F$};

                \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north
                east) -- ++(35mm,0);
            \end{tikzpicture}
        }
    \end{figure}

    \vspace*{-5mm}

    \begin{itemize}
        \item Pass messages \schlagwort{and decimation information}
            to next window
    \end{itemize}
\end{frame}

\begin{frame}
    \frametitle{BPGD: Passing Decimation Information}

    \vspace{-19mm}

    \begin{itemize}
        \item Pass \schlagwort{decimation information} in addition to
            CN to VN messages
        \item \schlagwort{Worse performance} in the warm start case
        \item Largest step size yields lowest error rate
    \end{itemize}

    \vspace{2mm}

    \begin{minipage}{0.66\textwidth}
        \centering
        \begin{figure}[H]
            \centering
            \begin{tikzpicture}
                \begin{axis}[
                        width=16cm,
                        height=12cm,
                        ymode=log,
                        legend style={
                            cells={anchor=west},
                            cells={align=left},
                            minimum width=25mm,
                        },
                        enlargelimits=false,
                        ymin=1e-5, ymax=2e-1,
                        grid=both,
                        legend pos = south east,
                        xtick={0.001,0.0015,...,0.004},
                        xticklabel style={/pgf/number format/fixed},
                        xticklabel style={/pgf/number format/precision=4},
                        scaled x ticks=false,
                        xlabel={Physical error rate},
                        ylabel={Per-round-LER},
                    ]
                    \foreach \F/\col/\mark in
                    {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                    {
                        \edef\temp{\noexpand
                            \addplot+[mark=\mark, mark
                                options={fill=\col}, line width=2pt,
                            solid, \col]
                            table[
                                col sep=comma, x=physical_p,
                                y=LER_per_round,
                            ]
                            {res/sim/WF/WindowingSyndromeSpaGdDecoderPassDecimation/max_iter_5000/pass_soft_info_True/F_\F/W_5/LERs.csv};
                        }
                        \temp

                        \addlegendentryexpanded{$F = \F$}
                    }

                    \foreach \F/\col/\mark in
                    {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square}
                    {
                        \edef\temp{\noexpand
                            \addplot+[mark=\mark, line width=2pt,
                            densely dashed, \col]
                            table[
                                col sep=comma, x=physical_p,
                                y=LER_per_round,
                            ]
                            {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_False/F_\F/W_5/LERs.csv};
                        }
                        \temp
                    }
                \end{axis}

                \setlength{\tabcolsep}{3pt}

                \node[
                    draw, fill=white,
                    anchor=south east, at={(current axis.south east)},
                    xshift=-40mm, yshift=3.15mm,
                    inner xsep=1mm,
                ] (linestyle legend) {
                    \begin{tabular}{ll}
                        \raisebox{4pt}{%
                            \tikz{%
                                \draw[black, densely dashed, line width=2pt]
                                (0,0) -- (0.6cm,0);%
                            }%
                        } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                        \raisebox{5pt}{%
                            \tikz{%
                                \draw[black, solid, line width=2pt]
                                (0,0) -- (0.6cm,0);%
                            }%
                        } & \raisebox{-1pt}{Warm start}
                    \end{tabular}
                };
            \end{tikzpicture}
        \end{figure}
    \end{minipage}%
    \begin{minipage}{0.33\textwidth}
        \centering
        \vspace*{-14.5mm}
        \begin{itemize}
            \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
            \item $12$ \ac{se} rounds
            \item \Ac{spa} + \ac{gd}
            \item Parameters
                \begin{itemize}
                    \item $T = 1$
                    \item $n_\text{iterations} = 3{,}600$
                    \item $W = 5$
                \end{itemize}
        \end{itemize}
    \end{minipage}
\end{frame}

\begin{frame}
    \frametitle{BPGD: Warm-Start Sliding-Window Decoding II}

    \vspace*{-15mm}

    \begin{itemize}
        \item Decimation information: \schlagwort{Premature hard
            decision} on VNs
    \end{itemize}

    \vspace*{-5mm}

    \begin{figure}[H]
        \centering

        \tikzset{
            VN/.style={
                circle, fill=kit-green,
                inner sep=1.5mm,
            },
            CN/.style={
                rectangle, fill=kit-blue,
                inner sep=1.8mm,
            },
        }

        \only<1>{
            \begin{tikzpicture}[node distance = 7mm]
                \node[VN]                  (vn00) {};
                \node[VN, below = of vn00] (vn01) {};
                \node[VN, below = of vn01] (vn02) {};
                \node[VN, below = of vn02] (vn03) {};
                \node[VN, below = of vn03] (vn04) {};

                \coordinate (temp) at ($(vn01)!0.5!(vn02)$);

                \node[CN, left =15mm of temp] (cn00) {};
                \node[CN, below = of cn00] (cn01) {};

                \draw (vn00) -- (cn00);
                \draw (vn01) -- (cn00);
                \draw (vn03) -- (cn00);
                \draw (vn01) -- (cn01);
                \draw (vn02) -- (cn01);
                \draw (vn04) -- (cn01);

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \node[VN, right = 35mm of vn\prev 0] (vn\i0) {};
                    \node[VN, below = of vn\i0]          (vn\i1) {};
                    \node[VN, below = of vn\i1]          (vn\i2) {};
                    \node[VN, below = of vn\i2]          (vn\i3) {};
                    \node[VN, below = of vn\i3]          (vn\i4) {};

                    \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);

                    \node[CN, left = 15mm of temp] (cn\i0) {};
                    \node[CN, below = of cn\i0]     (cn\i1) {};

                    \draw (vn\i0) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i0);
                    \draw (vn\i3) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i1);
                    \draw (vn\i2) -- (cn\i1);
                    \draw (vn\i4) -- (cn\i1);
                }

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \draw (vn\prev 3) -- (cn\i 0);
                    \draw (vn\prev 4) -- (cn\i 1);
                }

                \node[
                    draw, inner sep=5mm,line width=1pt,
                    fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
                ]
                (box1) {};
                \node[
                    draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
                    fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
                ]
                (box2) {};

                \draw[kit-orange, line width=2pt] (cn10) -- (vn10);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn13);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn12);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn14);

                \draw[kit-orange, line width=2pt] (vn13) -- (cn20);
                \draw[kit-orange, line width=2pt] (vn14) -- (cn21);

                \draw[kit-orange, line width=2pt] (cn20) -- (vn20);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn23);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn22);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn24);

                \node[VN, draw=kit-orange, fill=kit-orange] at (vn10) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn11) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn12) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn13) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn14) {};

                \node[VN, draw=kit-orange, fill=kit-orange] at (vn20) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn21) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn22) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn23) {};
                \node[VN, draw=kit-orange, fill=kit-orange] at (vn24) {};

                % Marker for solid box (positions 0–2)
                \draw[line width=1pt] ([yshift=-5mm, line
                width=1pt]box1.south west)
                -- ++(0,-4mm)
                coordinate (dim1l);
                \draw[line width=1pt] ([yshift=-5mm]box1.south east)
                -- ++(0,-4mm)
                coordinate (dim1r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r)
                node[midway, below=2pt] {$W$};

                % Marker for step size F on top
                \draw[line width=1pt] ([yshift=3mm]box2.north west)
                -- ++(0,4mm)
                coordinate (dim3l);
                \draw[line width=1pt] ([yshift=3mm]box2.north west -|
                box1.north west)
                -- ++(0,4mm)
                coordinate (dim3r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r)
                node[midway, above=2pt] {$F$};

                \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north
                east) -- ++(35mm,0);
            \end{tikzpicture}
        }%
        \only<2->{
            \begin{tikzpicture}[node distance = 7mm]
                \node[VN]                  (vn00) {};
                \node[VN, below = of vn00] (vn01) {};
                \node[VN, below = of vn01] (vn02) {};
                \node[VN, below = of vn02] (vn03) {};
                \node[VN, below = of vn03] (vn04) {};

                \coordinate (temp) at ($(vn01)!0.5!(vn02)$);

                \node[CN, left =15mm of temp] (cn00) {};
                \node[CN, below = of cn00] (cn01) {};

                \draw (vn00) -- (cn00);
                \draw (vn01) -- (cn00);
                \draw (vn03) -- (cn00);
                \draw (vn01) -- (cn01);
                \draw (vn02) -- (cn01);
                \draw (vn04) -- (cn01);

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \node[VN, right = 35mm of vn\prev 0] (vn\i0) {};
                    \node[VN, below = of vn\i0]          (vn\i1) {};
                    \node[VN, below = of vn\i1]          (vn\i2) {};
                    \node[VN, below = of vn\i2]          (vn\i3) {};
                    \node[VN, below = of vn\i3]          (vn\i4) {};

                    \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);

                    \node[CN, left = 15mm of temp] (cn\i0) {};
                    \node[CN, below = of cn\i0]     (cn\i1) {};

                    \draw (vn\i0) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i0);
                    \draw (vn\i3) -- (cn\i0);
                    \draw (vn\i1) -- (cn\i1);
                    \draw (vn\i2) -- (cn\i1);
                    \draw (vn\i4) -- (cn\i1);
                }

                \foreach \i in {1,2,3,4} {
                    \pgfmathtruncatemacro{\prev}{\i-1}

                    \draw (vn\prev 3) -- (cn\i 0);
                    \draw (vn\prev 4) -- (cn\i 1);
                }

                \node[
                    draw, inner sep=5mm,line width=1pt,
                    fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21)
                ]
                (box1) {};
                \node[
                    draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt,
                    fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31)
                ]
                (box2) {};

                \draw[kit-orange, line width=2pt] (cn10) -- (vn10);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn10) -- (vn13);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn11);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn12);
                \draw[kit-orange, line width=2pt] (cn11) -- (vn14);

                \draw[kit-orange, line width=2pt] (vn13) -- (cn20);
                \draw[kit-orange, line width=2pt] (vn14) -- (cn21);

                \draw[kit-orange, line width=2pt] (cn20) -- (vn20);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn20) -- (vn23);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn21);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn22);
                \draw[kit-orange, line width=2pt] (cn21) -- (vn24);

                % Marker for solid box (positions 0–2)
                \draw[line width=1pt] ([yshift=-5mm, line
                width=1pt]box1.south west)
                -- ++(0,-4mm)
                coordinate (dim1l);
                \draw[line width=1pt] ([yshift=-5mm]box1.south east)
                -- ++(0,-4mm)
                coordinate (dim1r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r)
                node[midway, below=2pt] {$W$};

                % Marker for step size F on top
                \draw[line width=1pt] ([yshift=3mm]box2.north west)
                -- ++(0,4mm)
                coordinate (dim3l);
                \draw[line width=1pt] ([yshift=3mm]box2.north west -|
                box1.north west)
                -- ++(0,4mm)
                coordinate (dim3r);
                \draw[{Latex}-{Latex}, line width=1pt]
                ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r)
                node[midway, above=2pt] {$F$};

                \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north
                east) -- ++(35mm,0);
            \end{tikzpicture}
        }
    \end{figure}

    \vspace*{-5mm}

    \begin{itemize}
        \item Pass \schlagwort{only messages} to next window
    \end{itemize}
\end{frame}

\begin{frame}
    \frametitle{BPGD Performance: Window Size}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BPGD}
        \item Jump in performance when most \acp{vn} are decimated
    \end{itemize}

    \begin{minipage}{0.66\textwidth}
        \centering
        \begin{figure}[H]
            \centering
            \begin{tikzpicture}
                \begin{axis}[
                        width=16cm,
                        height=12cm,
                        ymode=log,
                        % xmode=log,
                        legend style={
                            cells={anchor=west},
                            cells={align=left},
                            minimum width=25mm,
                        },
                        enlargelimits=false,
                        ymin=1e-3, ymax=1e-1,
                        grid=both,
                        legend pos = north east,
                        xticklabels =
                        {$32$,$512$,$1{,}024$,,$2{,}048$,,$3{,}072$,,$4{,}096$},
                        xtick={32, 512, 1024, 1536, 2048, 2560, 3072,
                        3584, 4096},
                        xticklabel style={/pgf/number format/fixed},
                        xticklabel style={/pgf/number format/precision=4},
                        scaled x ticks=false,
                        xlabel={Number of BP iterations},
                        ylabel={Per-round-LER},
                    ]

                    \foreach \W/\col/\mark in
                    {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square}
                    {
                        \edef\temp{\noexpand
                            \addplot+[
                                mark=\mark,
                                line width=2pt, densely dashed,
                                forget plot, \col
                            ]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_False/F_1/W_\W/LERs.csv};
                        }
                        \temp
                    }

                    \foreach \W/\col/\mark in
                    {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*}
                    {
                        \edef\temp{\noexpand
                            \addplot+[
                                mark=\mark, mark options = {fill=\col},
                                line width=2pt, solid, \col
                            ]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_True/F_1/W_\W/LERs.csv};
                        }
                        \temp

                        \addlegendentryexpanded{$W = \W$}
                    }
                \end{axis}

                \setlength{\tabcolsep}{3pt}

                \node[
                    draw, fill=white,
                    anchor=north east, at={(current axis.north east)},
                    xshift=-40mm, yshift=-3.15mm,
                    inner xsep=1mm,
                ] (linestyle legend) {
                    \begin{tabular}{ll}
                        \raisebox{4pt}{%
                            \tikz{%
                                \draw[black, densely dashed, line width=2pt]
                                (0,0) -- (0.6cm,0);%
                            }%
                        } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                        \raisebox{5pt}{%
                            \tikz{%
                                \draw[black, solid, line width=2pt]
                                (0,0) -- (0.6cm,0);%
                            }%
                        } & \raisebox{-1pt}{Warm start}
                    \end{tabular}
                };
            \end{tikzpicture}
        \end{figure}
    \end{minipage}%
    \begin{minipage}{0.33\textwidth}
        \centering
        \begin{itemize}
            \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
            \item $12$ \ac{se} rounds
            \item \ac{spa} + \ac{gd} decoder
            \item Parameters
                \begin{itemize}
                    \item $T = 1$
                    \item $p = 0.0025$
                    \item $F = 1$
                \end{itemize}
        \end{itemize}
    \end{minipage}
\end{frame}

\begin{frame}
    \frametitle{BPGD Performance: Step Size}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BPGD}
        \item Jump in performance when most \acp{vn} are decimated
    \end{itemize}

    \begin{minipage}{0.66\textwidth}
        \centering
        \begin{figure}[H]
            \centering
            \begin{tikzpicture}
                \begin{axis}[
                        width=16cm,
                        height=12cm,
                        ymode=log,
                        % xmode=log,
                        legend style={
                            cells={anchor=west},
                            cells={align=left},
                            minimum width=25mm,
                        },
                        enlargelimits=false,
                        ymin=1e-3, ymax=1e-1,
                        grid=both,
                        legend pos = north east,
                        xticklabels =
                        {$32$,$512$,$1{,}024$,,$2{,}048$,,$3{,}072$,,$4{,}096$},
                        xtick={32, 512, 1024, 1536, 2048, 2560, 3072,
                        3584, 4096},
                        xticklabel style={/pgf/number format/fixed},
                        xticklabel style={/pgf/number format/precision=4},
                        scaled x ticks=false,
                        xlabel={Number of BP iterations},
                        ylabel={Per-round-LER},
                    ]

                    \foreach \F/\col/\mark in
                    {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square}
                    {
                        \edef\temp{\noexpand
                            \addplot+[mark=\mark, line width=2pt,
                            densely dashed, forget plot, \col]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_False/F_\F/W_5/LERs.csv};
                        }
                        \temp
                    }

                    \foreach \F/\col/\mark in
                    {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*}
                    {
                        \edef\temp{\noexpand
                            \addplot+[
                                mark=\mark, mark options={fill=\col},
                                line width=2pt, solid, \col
                            ]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_True/F_\F/W_5/LERs.csv};
                        }
                        \temp

                        \addlegendentryexpanded{$F = \F$}
                    }
                \end{axis}

                \setlength{\tabcolsep}{3pt}

                \node[
                    draw, fill=white,
                    anchor=north east, at={(current axis.north east)},
                    xshift=-40mm, yshift=-3.15mm,
                    inner xsep=1mm,
                ] (linestyle legend) {
                    \begin{tabular}{ll}
                        \raisebox{4pt}{%
                            \tikz{%
                                \draw[black, densely dashed, line width=2pt]
                                (0,0) -- (0.6cm,0);%
                            }%
                        } & \raisebox{-2pt}{Cold start} \\[2.5pt]
                        \raisebox{5pt}{%
                            \tikz{%
                                \draw[black, solid, line width=2pt]
                                (0,0) -- (0.6cm,0);%
                            }%
                        } & \raisebox{-1pt}{Warm start}
                    \end{tabular}
                };
            \end{tikzpicture}
        \end{figure}
    \end{minipage}%
    \begin{minipage}{0.33\textwidth}
        \centering
        \begin{itemize}
            \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code
            \item $12$ \ac{se} rounds
            \item \ac{spa} + \ac{gd} decoder
            \item Parameters
                \begin{itemize}
                    \item $T = 1$
                    \item $p = 0.0025$
                    \item $W = 5$
                \end{itemize}
        \end{itemize}
    \end{minipage}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Conclusion and Outlook}
\label{subsec:Conclusion and Outlook}

\begin{frame}
    \frametitle{Conclusion and Outlook}

    \vspace*{-7mm}

    \begin{minipage}[c]{0.65\textwidth}
        \begin{itemize}
            \item Conclusion
                \begin{itemize}
                    \item \schlagwort{Fault tolerance} important for scalable
                        quantum computing
                    \item Use soft information for warm start \\
                        $\implies$ \schlagwort{More effective
                        iterations}, no additional overhead
                \end{itemize}
                \visible<2->{
                \item Future work
                    \begin{itemize}
                        \item Examine other \schlagwort{inner
                            decoders} (e.g.,
                                guided decimation guesssing
                                \citereferencemanual{GCR24},
                            neural BP4 \citereferencemanual{MSL$^+$25})
                        \item Exploit spatially-coupled structure for
                            \schlagwort{code design} (e.g., increase
                            coupling width)
                    \end{itemize}
                }
        \end{itemize}
    \end{minipage}%
    \begin{minipage}[c]{0.35\textwidth}
        \centering
        \visible<3->{
            \begin{figure}[H]
                \centering

                \vspace*{-25mm}
                \begin{tikzpicture}
                    \node[scale=10] at (0, 0)
                    {\textcolor{kit-blue}{{\fontfamily{phv}\selectfont ?}}};

                    \node[align=center] at (0,-5) {Thank you for your
                    attention! \\ Any questions?};
                \end{tikzpicture}
            \end{figure}
        }
    \end{minipage}

    \vspace*{15mm}

    \addreferencesmanual
    {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding
        of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024.
    }
    {MSL$^+$25}{
        S. Miao et al., ``Quaternary neural belief propagation
        decoding of quantum LDPC codes with overcomplete
        check matrices'', \emph{IEEE Access}, 2025.
    }
    \stopreferencesmanual
\end{frame}

\appendix
\beginbackup

\begin{frame}
    \frametitle{System Level Overview}

    \vspace*{-10mm}

    \begin{figure}[H]
        \centering
        \begin{subfigure}[t]{0.5\textwidth}
            \centering

            \includegraphics[scale=1.1]{res/architecture}

            \vspace*{5mm}

            \caption{Schematic workflow of surface code quantum
            computation \citereferencemanual{ZZC$^+$23}.}
        \end{subfigure}%
        \begin{subfigure}[t]{0.5\textwidth}
            \centering

            \tikzset{
                block/.style={
                    draw, rectangle,
                    fill = kit-blue!25,
                    minimum width=75mm, minimum height=15mm,
                }
            }

            \scalebox{0.7}{
                \begin{tikzpicture}[node distance=15mm and 20mm]
                    \node[block] (encoding) {Encoding};
                    \node[block, below=of encoding] (channel)
                    {Quantum Channel};
                    \node[block, below=of channel] (reverse-op)
                    {Reverse Operation};

                    \node[block, right=of channel] (syn-extr)
                    {Syndrome Extraction};
                    \node[block, below=of syn-extr] (syn-dec)
                    {Syndrome Decoder};

                    \node[above=of encoding] (input) {$\ket{\phi}$};
                    \node[below=of reverse-op] (output)
                    {$\hat{\mathcal{E}}\mathcal{E}\ket{\psi}$};

                    \draw [-{Latex}] (encoding) -- (channel) node[midway,
                    right] {$\ket{\psi}$};
                    \draw [-{Latex}] (channel) -- (reverse-op)
                    node[midway, right] {$\mathcal{E}\ket{\psi}$};
                    \draw [-{Latex}] (channel) -- (syn-extr)
                    node[midway, above] {$\mathcal{E}\ket{\psi}$};
                    \draw [-{Latex}] (syn-extr) -- (syn-dec)
                    node[midway, right] {$z$};
                    \draw [-{Latex}] (syn-dec) -- (reverse-op)
                    node[midway, above] {$\hat{\mathcal{E}}$};

                    \draw [-{Latex}] (input) -- (encoding);
                    \draw [-{Latex}] (reverse-op) -- (output);
                \end{tikzpicture}
            }

            \vspace*{5mm}

            \caption{Block diagram of QEC using stabilizer codes
            \citereferencemanual{MSL$^+$25}.}
        \end{subfigure}
    \end{figure}

    \vspace*{5mm}

    \addreferencesmanual
    {ZZC$^+$23}{
        F. Zhang et al., ``A classical architecture for digital
        quantum computers,'' \emph{ACM Transactions on Quantum
        Computing}, 2023.
    }
    {MSL$^+$25}{
        S. Miao et al., ``Quaternary neural belief propagation
        decoding of quantum LDPC codes with overcomplete
        check matrices'', \emph{IEEE Access}, 2025.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}
    \frametitle{Stabilizer and Calderbank Shor Steane Codes}

    \vspace*{-5mm}

    % Related interesting stuff
    % - Using stabilizers to describe quantum codes is a bit like
    %   using parity check equations to describe classical codes
    %   -> stabilizer codes are the quantum analog of binary linear codes
    % - For CSS codes, "the parity checks for the X errors and the
    %   parity checks for the Z errors can be represented independently
    %   of one another"

    \begin{itemize}
        \item Stabilizer codes \citereferencemanual{NC10}
            \begin{itemize}
                \item Implicitly defined using \schlagwort{stabilizer
                    generators}
                \item Can be represented using parity check matrices
                \item Quantum analog of linear block codes
            \end{itemize}
            \vspace*{10mm}
        \item \Acf{css} codes \citereferencemanual{NC10}
            \begin{itemize}
                \item Subset of stabilizer codes
                \item Able to correct $\X$ and $\Z$ errors independently
                \item Described using two separate parity check
                    matrices $\bm{H}_X$ and $\bm{H}_Z$
                \item Can be constructed from two binary linear codes
                    $\mathcal{C}_1 \left[ n, k_1 \right]$ and
                    $\mathcal{C}_2 \left[ n, k_2 \right]$ with
                    $\mathcal{C}_2 \subset \mathcal{C}_1$
            \end{itemize}
    \end{itemize}

    \vspace*{20mm}

    \addreferencesmanual
    {NC10}{
        M. A. Nielsen and I. L. Chuang, ``Quantum computation and
        quantum information'', \emph{Cambridge University Press}, 2010.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}
    \frametitle{The Quantum Error Correcting Landscape}

    \vspace*{-10mm}

    \begin{itemize}
        \item Taxonomy of main QEC code families
            \citereferencemanual{SPG$^+$25}
    \end{itemize}

    \vspace*{2mm}

    \begin{figure}[H]
        \centering
        \includegraphics[scale=2.5]{res/taxonomy.pdf}
    \end{figure}

    \begin{itemize}
        \item Surface code is the industry standard for
            experimental implementations, but has poor encoding
            efficiency \citereferencemanual{BCG$^+$24}
        \item \Ac{qldpc} codes particularly interesting because of
            \begin{itemize}
                \item Constant overhead scaling \citereferencemanual{Got14}
                \item Linear distance scaling
                    \citereferencemanual{BCG$^+$24}
            \end{itemize}
    \end{itemize}

    \vspace*{15mm}

    \addreferencesmanual
    {SPG$^+$25}{
        A. Swierkowska et al., ``ECCentric: An empirical
        analysis of quantum error correction codes'',
        \emph{arXiv:2511.01062v1}, 2025.
    }
    {BCG$^+$24}{
        S. Bravyi et al., ``High-threshold and low-overhead
        fault-tolerant quantum memory,'' \emph{Nature}, 2024.
    }
    {Got14}{
        D. Gottesman, ``Fault-Tolerant Quantum computation with
        constant overhead'', \emph{arXiv:1310.2984}, 2014.
    }
    \stopreferencesendmanual
\end{frame}

\begin{frame}
    \frametitle{Guided Decimation Guessing Decoding}

    \begin{minipage}{0.57\textwidth}
        \begin{itemize}
            \item BP with guided decimation (BPGD) \\
                $\implies$ Iteratively fix most reliable
                \ac{vn}
                \vspace*{10mm}
            \item \schlagwort{Guided decimation guessing} (GDG)
                \citereferencemanual{GCR24}
                \begin{itemize}
                    \item Choose VN with \schlagwort{lowest}
                        log-likelihood ratio
                    \item Choose VN to fix based on \schlagwort{LLR history}
                    \item Explore both VN values in parallel
                        (\schlagwort{guessing})
                \end{itemize}
        \end{itemize}
    \end{minipage}%
    \begin{minipage}{0.43\textwidth}
        \begin{figure}[H]
            \centering
            \includegraphics[scale=1.3]{res/gdg.pdf}
        \end{figure}
    \end{minipage}%

    \vspace*{30mm}

    \addreferencesmanual
    {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding
        of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}
    \frametitle{The Detector Error Matrix}

    \vspace*{-17mm}

    \begin{itemize}
        \item Visualization of general process
            % \red{Deal with 3-qubit state (somehow represent arbitrary
            % qubit state)}
    \end{itemize}

    \vspace*{2mm}

    \begin{figure}[H]
        \centering

        \tikzset{
            gate/.style={
                draw, %line width=1pt,
                minimum height=2cm,
            }
        }

        % tex-fmt: off
        \begin{quantikz}[row sep=2mm, column sep=4mm, wire types={q,q,q,n,n,n}]
                                  & \gate[3]{\text{SE}_1}          &                & \gate[3]{\text{SE}_2}                   &                & \gate[3]{\text{SE}_3}                   &                & \gate[3]{\text{SE}_4}                   &                            \\
            \lstick{$\ket{\psi}$} &                                &                &                                         &                &                                         &                &                                         & & \setwiretype{n} & \ldots \\
                                  & \wire[d][3]{c}                 &                & \wire[d][1]{c}                          &                & \wire[d][1]{c}                          &                & \wire[d][1]{c}                          &                            \\
                                  & \ctrl[wire=c]{0}\wire[r][1]{c} & \wire[d][1]{c} & \ctrl[vertical wire=c]{1}\wire[r][1]{c} & \wire[d][1]{c} & \ctrl[vertical wire=c]{1}\wire[r][1]{c} & \wire[d][1]{c} & \ctrl[vertical wire=c]{1}\wire[r][1]{c} &                            \\
                                  &                                & \wire[r][1]{c} & \targ{}\wire[d][1]{c}                   & \wire[r][1]{c} & \targ{}\wire[d][1]{c}                   & \wire[r][1]{c} & \targ{}\wire[d][1]{c}                   &                            \\
                                  & \gate[1]{\bm{D}_1}             &                & \gate[1]{\bm{D}_2}                      &                & \gate[1]{\bm{D}_3}                      &                & \gate[1]{\bm{D}_4}                      &                            \\
        \end{quantikz}
        % tex-fmt: on
    \end{figure}

    \begin{itemize}
        \item E.g., for \ac{bb} codes under circuit-level noise
            \citereferencemanual{GCR24}
    \end{itemize}

    \vspace*{-4mm}

    \begin{align*}
        \bm{H} =
        \begin{pmatrix}
            \bm{H}_0 & \bm{H}_1 & & & & & \\
            & \bm{H}_2 & \bm{H}_0 & \bm{H}_1 & & & \\
            & & & \bm{H}_2 & \bm{H}_0 & \bm{H}_1 & \\
            & & & & & \bm{H}_2 & \\
            & & & & & & & \ddots
        \end{pmatrix}
    \end{align*}

    \vspace*{5mm}

    \addreferencesmanual
    {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding
        of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024.
    }
    \stopreferencesmanual
\end{frame}

\begin{frame}
    \frametitle{BP Performance: Window Size II}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BP}
        \item Larger improvement for fewer iterations
    \end{itemize}

    \begin{minipage}{0.66\textwidth}
        \centering
        \begin{figure}[H]
            \centering
            \begin{tikzpicture}
                \begin{axis}[
                        width=16cm,
                        height=12cm,
                        ymode=log,
                        % xmode=log,
                        legend style={
                            cells={anchor=west},
                            cells={align=left},
                        },
                        enlargelimits=false,
                        ymin=1e-3, ymax=1e-1,
                        grid=both,
                        legend pos = north east,
                        xtick={32,512,1024,2048,4096},
                        % xtick={0.001,0.0015,...,0.004},
                        xticklabel style={/pgf/number format/fixed},
                        xticklabel style={/pgf/number format/precision=4},
                        scaled x ticks=false,
                        xlabel={Number of BP iterations},
                        ylabel={Per-round-LER},
                        extra description/.code={
                            \node[rotate=90, anchor=south]
                            at ([xshift=15mm]current axis.east)
                            {Warm s. (---), Cold s. (- - -)};
                        },
                    ]

                    \foreach \W/\col in
                    {3/kit-red,4/kit-blue,5/kit-orange} {
                        \edef\temp{\noexpand
                            \addplot+[mark=o, line width=2pt,
                            densely dashed, forget plot, \col]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_False/F_1/W_\W/LERs.csv};
                        }
                        \temp
                    }

                    \foreach \W/\col in
                    {3/kit-red,4/kit-blue,5/kit-orange} {
                        \edef\temp{\noexpand
                            \addplot+[mark=o, line width=2pt,
                            solid, \col]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_True/F_1/W_\W/LERs.csv};
                        }
                        \temp

                        \addlegendentryexpanded{$W = \W$}
                    }
                \end{axis}
            \end{tikzpicture}
        \end{figure}
    \end{minipage}%
    \begin{minipage}{0.33\textwidth}
        \centering
        \begin{itemize}
            \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                $12$ \ac{se} rounds
            \item Min-sum decoder
            \item Parameters
                \begin{itemize}
                    \item $p = 0.0025$
                    \item $F = 1$
                \end{itemize}
        \end{itemize}
    \end{minipage}
\end{frame}

\begin{frame}
    \frametitle{BP Performance: Step Size II}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BP}
        \item Similar behavior to before
    \end{itemize}

    \begin{minipage}{0.66\textwidth}
        \centering
        \begin{figure}[H]
            \centering
            \begin{tikzpicture}
                \begin{axis}[
                        width=16cm,
                        height=12cm,
                        ymode=log,
                        % xmode=log,
                        legend style={
                            cells={anchor=west},
                            cells={align=left},
                        },
                        enlargelimits=false,
                        ymin=1e-3, ymax=1e-1,
                        grid=both,
                        legend pos = north east,
                        xtick={32,512,1024,2048,4096},
                        % xtick={0.001,0.0015,...,0.004},
                        xticklabel style={/pgf/number format/fixed},
                        xticklabel style={/pgf/number format/precision=4},
                        scaled x ticks=false,
                        xlabel={Number of BP iterations},
                        ylabel={Per-round-LER},
                        extra description/.code={
                            \node[rotate=90, anchor=south]
                            at ([xshift=15mm]current axis.east)
                            {Warm s. (---), Cold s. (- - -)};
                        },
                    ]

                    \foreach \F/\col in
                    {3/kit-red,2/kit-blue,1/kit-orange} {
                        \edef\temp{\noexpand
                            \addplot+[mark=o, line width=2pt,
                            densely dashed, forget plot, \col]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_False/F_\F/W_5/LERs.csv};
                        }
                        \temp
                    }

                    \foreach \F/\col in
                    {3/kit-red,2/kit-blue,1/kit-orange} {
                        \edef\temp{\noexpand
                            \addplot+[mark=o, line width=2pt,
                            solid, \col]
                            table[
                                col sep=comma, x=max_iter,
                                y=LER_per_round,
                            ]
                            {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_True/F_\F/W_5/LERs.csv};
                        }
                        \temp

                        \addlegendentryexpanded{$F = \F$}
                    }
                \end{axis}
            \end{tikzpicture}
        \end{figure}
    \end{minipage}%
    \begin{minipage}{0.33\textwidth}
        \centering
        \begin{itemize}
            \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                $12$ \ac{se} rounds
            \item Min-sum decoder
            \item Parameters
                \begin{itemize}
                    \item $p = 0.0025$
                    \item $W = 5$
                \end{itemize}
        \end{itemize}
    \end{minipage}
\end{frame}

\begin{frame}
    \frametitle{BPGD Performance: Window Size I}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BPGD}
        \item Larger improvement for lower error rate
    \end{itemize}

    \vspace*{5mm}

    \only<1>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                            extra description/.code={
                                \node[rotate=90, anchor=south]
                                at ([xshift=15mm]current axis.east)
                                {Warm s. (---), Cold s. (- - -)};
                            },
                        ]

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                    $12$ \ac{se} rounds
                \item \Ac{spa} + \ac{gd} decoder
                \item Parameters
                    \begin{itemize}
                        \item $T = 1$
                        \item $n_\text{iterations} = 32$
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<2>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                            extra description/.code={
                                \node[rotate=90, anchor=south]
                                at ([xshift=15mm]current axis.east)
                                {Warm s. (---), Cold s. (- - -)};
                            },
                        ]

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, gray, opacity=0.35, forget plot]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                    densely dashed, gray, opacity=0.35,
                                forget plot]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                    $12$ \ac{se} rounds
                \item \ac{spa} + \ac{gd} decoder
                \item Parameters
                    \begin{itemize}
                        \item $T = 1$
                        \item $n_\text{iterations} = 200$
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<3>{
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                            extra description/.code={
                                \node[rotate=90, anchor=south]
                                at ([xshift=15mm]current axis.east)
                                {Warm s. (---), Cold s. (- - -)};
                            },
                        ]

                        % \foreach \W/\col in
                        % {3/kit-red,4/kit-blue,5/kit-orange} {
                        %     \edef\temp{\noexpand
                        %         \addplot+[mark=o, line width=2pt,
                        %         solid, gray, opacity=0.15, forget plot]
                        %         table[
                        %             col sep=comma, x=physical_p,
                        %             y=LER_per_round,
                        %         ]
                        %         {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv};
                        %     }
                        %     \temp
                        % }
                        %
                        % \foreach \W/\col in
                        % {3/kit-red,4/kit-blue,5/kit-orange} {
                        %     \edef\temp{\noexpand
                        %         \addplot+[mark=o, line width=2pt,
                        %         densely dashed, gray, opacity=0.15,
                        % forget plot]
                        %         table[
                        %             col sep=comma, x=physical_p,
                        %             y=LER_per_round,
                        %         ]
                        %         {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv};
                        %     }
                        %     \temp
                        % }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, gray, opacity=0.35, forget plot]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                    densely dashed, gray, opacity=0.35,
                                forget plot]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_True/F_1/W_\W/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$W = \W$}
                        }

                        \foreach \W/\col in
                        {3/kit-red,4/kit-blue,5/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_False/F_1/W_\W/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                    $12$ \ac{se} rounds
                \item \ac{spa} + \ac{gd} decoder
                \item Parameters
                    \begin{itemize}
                        \item $T = 1$
                        \item $n_\text{iterations} = n $
                        \item $F = 1$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
\end{frame}

\begin{frame}
    \frametitle{BPGD Performance: Step Size I}

    \vspace*{-18mm}

    \begin{itemize}
        \item Examine decoding performance for \schlagwort{BPGD}
        \item Similar behavior to before
    \end{itemize}

    \vspace*{5mm}

    \only<1> {
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                            extra description/.code={
                                \node[rotate=90, anchor=south]
                                at ([xshift=15mm]current axis.east)
                                {Warm s. (---), Cold s. (- - -)};
                            },
                        ]

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$F = \F$}
                        }

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                    $12$ \ac{se} rounds
                \item \ac{spa} + \ac{gd} decoder
                \item Parameters
                    \begin{itemize}
                        \item $T = 1$
                        \item $n_\text{iterations} = 32$
                        \item $W = 5$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<2> {
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                            extra description/.code={
                                \node[rotate=90, anchor=south]
                                at ([xshift=15mm]current axis.east)
                                {Warm s. (---), Cold s. (- - -)};
                            },
                        ]

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                forget plot, solid, gray, opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                    forget plot, densely dashed, gray,
                                opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$F = \F$}
                        }

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                    $12$ \ac{se} rounds
                \item \ac{spa} + \ac{gd} decoder
                \item Parameters
                    \begin{itemize}
                        \item $T = 1$
                        \item $n_\text{iterations} = 200$
                        \item $W = 5$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
    \only<3> {
        \begin{minipage}{0.66\textwidth}
            \centering
            \begin{figure}[H]
                \centering
                \begin{tikzpicture}
                    \begin{axis}[
                            width=16cm,
                            height=12cm,
                            ymode=log,
                            legend style={
                                cells={anchor=west},
                                cells={align=left},
                            },
                            enlargelimits=false,
                            ymin=1e-5, ymax=2e-1,
                            grid=both,
                            legend pos = south east,
                            xtick={0.001,0.0015,...,0.004},
                            xticklabel style={/pgf/number format/fixed},
                            xticklabel style={/pgf/number format/precision=4},
                            scaled x ticks=false,
                            xlabel={Physical error rate},
                            ylabel={Per-round-LER},
                            extra description/.code={
                                \node[rotate=90, anchor=south]
                                at ([xshift=15mm]current axis.east)
                                {Warm s. (---), Cold s. (- - -)};
                            },
                        ]

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                forget plot, solid, gray, opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                    forget plot, densely dashed, gray,
                                opacity=0.35]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                solid, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_True/F_\F/W_5/LERs.csv};
                            }
                            \temp

                            \addlegendentryexpanded{$F = \F$}
                        }

                        \foreach \F/\col in
                        {3/kit-red,2/kit-blue,1/kit-orange} {
                            \edef\temp{\noexpand
                                \addplot+[mark=o, line width=2pt,
                                densely dashed, \col]
                                table[
                                    col sep=comma, x=physical_p,
                                    y=LER_per_round,
                                ]
                                {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_False/F_\F/W_5/LERs.csv};
                            }
                            \temp
                        }
                    \end{axis}
                \end{tikzpicture}
            \end{figure}
        \end{minipage}%
        \begin{minipage}{0.33\textwidth}
            \centering
            \begin{itemize}
                \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\
                    $12$ \ac{se} rounds
                \item \ac{spa} + \ac{gd} decoder
                \item Parameters
                    \begin{itemize}
                        \item $T = 1$
                        \item $n_\text{iterations} = 5000$
                        \item $W = 5$
                    \end{itemize}
            \end{itemize}
        \end{minipage}
    }
\end{frame}

\backupend

\end{document}

