7 Commits

12 changed files with 2152 additions and 56 deletions

9
.tmux_session.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
SESSION=$1
tmux send-keys -t "$SESSION:1" "cd ~/workspace/private/ma-thesis/" Enter
tmux send-keys -t "$SESSION:1" "./.setup_local_env.sh" Enter
# tmux send-keys -t "$SESSION:1" "export TEXINPUTS=./lib/cel-slides-template-2025:\$TEXINPUTS" C-m
tmux send-keys -t "$SESSION:1" "trap './.clean_local_env.sh' EXIT" Enter
tmux send-keys -t "$SESSION:1" "nvim" Enter
tmux send-keys -t "$SESSION:1" "\\ll" Enter

View File

@@ -156,6 +156,11 @@
long=spatially-coupled low-density parity-check
}
\DeclareAcronym{ler}{
short=LER,
long=logical error rate,
}
%
%
% Document body
@@ -401,7 +406,7 @@
\citereferencemanual{NC10}
}
\visible<3>{
\item Superposition $\rightarrow$ multiple solutions to the
\item Superposition $\rightarrow$ Multiple solutions to the
decoding problem
(\schlagwort{quantum degeneracy})
\citereferencemanual{RWB$^+$20}}
@@ -520,7 +525,7 @@
\begin{subfigure}{0.15\textwidth}
\centering
\begin{align*}
\bm{H} \bm{y}^\text{T} = \bm{s}
\bm{H} \bm{y}^\text{T} = \bm{H} \bm{e}^\text{T} = \bm{s}
\end{align*}
\vspace*{-5mm}
\end{subfigure}
@@ -1568,6 +1573,7 @@
\citereferencemanual{HP23}
\citereferencemanual{GCR24}
\end{itemize}
\visible<2>{
\item Degraded \ac{bp} performance addressed with
modification or extension
\begin{itemize}
@@ -1580,6 +1586,7 @@
\item Ensemble decoding
\citereferencemanual{KSW$^+$25}
\end{itemize}
}
\end{itemize}
\vspace*{15mm}
@@ -1737,7 +1744,7 @@
\begin{frame}
\frametitle{Future Work}
\vspace*{-12mm}
\vspace*{-15mm}
\begin{itemize}
\item Completed work
@@ -1745,6 +1752,7 @@
\item Review literature on fault-tolerant \ac{qec}
using \acp{dem}
\item Identify research gap
\item Familiarize with software toolboxes
\end{itemize}
\vspace*{7mm}
\item Research gap
@@ -1787,32 +1795,166 @@
% TODO: Organize sections properly
%%%%%%%%%%%%%%%%
\section{Simulation Methodology}
\label{sec:Simulation Methodology}
\section{Remarks on Evaluation}
\label{sec:Remarks on Evaluation}
%%%%%%%%%%%%%%%%
\subsection{The Code and Other Parameters}
\label{subsec:The Code and Other Parameters}
\subsection{Figures of Merit}
\label{subsec:Figures of Merit}
\begin{frame}
\frametitle{Noise Models and Figures of Merit}
\frametitle{Performance Evaluation}
% - Gong et al. don't actually analyze the latency ->
% Benchmarking against other methods would be interesting
% \item For circuit-level noise, use same
% \schlagwort{physical error rate} for all error
% locations \citereferencemanual{FSG09}
\vspace*{-15mm}
\begin{minipage}{0.35\textwidth}
\only<1>{
\begin{itemize}
\item \red{For circuit-level noise, often, all error probabilities
are set to the same value for simulations
\citereferencemanual{FSG09}}
\item \red{There are other approaches (e.g., SDMB noise, SI noise)
\citereferencemanual{DTB$^+$25}}
\item Independent variables
\begin{itemize}
\item Physical error rate
\item CNOT infidelity
\item Total qubit count
\item \ldots
\end{itemize}
\end{itemize}
}
\only<2->{
\begin{itemize}
\item Independent variables
\begin{itemize}
\item \textbf{Physical error rate}
\item CNOT infidelity
\item \textbf{Total qubit count}
\item \ldots
\end{itemize}
\end{itemize}
}
\end{minipage}%
\begin{minipage}{0.65\textwidth}
\begin{itemize}
\only<1>{
\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}
}
\only<2->{
\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{5mm}
\visible<3->{
\begin{itemize}
\item Degeneracy, information stored in correlations
$\rightarrow$ Consider \schlagwort{\acl{ler}} (LER)
\end{itemize}
}
\visible<4->{
\begin{itemize}
\item Types of benchmarking plots
\end{itemize}
\vspace*{10mm}
\vspace*{5mm}
\begin{itemize}
\item \red{Footprint plots}
\item \red{Other figure of merit (Look into ECCentric?)}
\end{itemize}
\begin{figure}[H]
\centering
\begin{subfigure}{0.35\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
domain=-5:5,
width=7cm,
height=5.5cm,
xticklabels=\empty,
yticklabels=\empty,
xlabel={Physical error rate},
xlabel style={yshift=5mm},
ylabel={LER},
ylabel style={yshift=-5mm},
grid,
]
\vspace*{15mm}
\addplot+[
mark=none,
kit-red,
line width=2pt,
]
table[row sep=crcr] {
x y \\
1.134800559068837 0.5575221183357257 \\
2.0632737437615223 0.9764009116710485 \\
2.861072612292603 1.7787608707489788 \\
3.7551580964997053 2.8407080379684153 \\
4.264098875196703 3.513274267363004 \\
4.573589936760932 3.9911505302955272 \\
4.903713970055305 4.268436552233389 \\
};
\end{axis}
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}{0.35\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
domain=-5:5,
width=7cm,
height=5.5cm,
xticklabels=\empty,
yticklabels=\empty,
xlabel={Total qubit count},
xlabel style={yshift=5mm},
ylabel={LER},
ylabel style={yshift=-5mm},
grid,
]
\addplot+[
mark=none,
kit-blue,
line width=2pt,
]
table[row sep=crcr] {
x y \\
1.147643096789246 3.8430493581808607 \\
1.7245658892318043 2.762331811591747 \\
2.3573205843145306 2.3587443650766753 \\
2.9156332708646624 1.560537992857378 \\
3.6352360073136527 1.0403588210329737 \\
4.392060012189421 0.7130042787942606 \\
};
\end{axis}
\end{tikzpicture}
\end{subfigure}
\end{figure}
}
\vspace*{4mm}
\addreferencesmanual
{FSG09}{
@@ -1820,30 +1962,44 @@
``High-threshold universal quantum computation on the surface
code,'' \emph{Physical Review}, 2009.
}
{DTB$^+$25}{
P.- J. H. S. Derks et al., ``Designing fault-tolerant
circuits using detector error models,'' \emph{Quantum}, 2025.
{GNF$^+$21}{
C. Gidney et al., ``A Fault-Tolerant Honeycomb Memory'',
\emph{Quantum}, 2021.
}
\stopreferencesmanual
\end{frame}
%%%%%%%%%%%%%%%%
\subsection{Proposed Methodology}
\label{subsec:Proposed Methodology}
\subsection{Conclusion and Outlook}
\label{subsec:Conclusion and Outlook}
\begin{frame}
\frametitle{Conclusion}
\frametitle{Conclusion and Outlook}
\vspace*{-15mm}
\vspace*{-10mm}
\begin{minipage}[c]{0.65\textwidth}
\begin{itemize}
\item \red{Noise model}
\item \red{Memory or stability experiment}
\item \red{Figure of merit: Footprint plot}
\item \red{Comparison with BB code also simulated by
\citereferencemanual{GCR24}}
\item \red{Comparison with surface code}
\item Problem setting
\begin{itemize}
\item Research area: Decoder design for \acp{dem}
under circuit-level noise
\item Research gap: Consideration of \acp{dem} as
\ac{scldpc} codes
\end{itemize}
\vspace*{5mm}
\item Future work
\begin{itemize}
\item Modify existing decoder to pass soft information
\item Test different \ac{bp} variations
\item \ldots
\end{itemize}
\vspace*{5mm}
\item Parameters
\begin{itemize}
\item Use standard depolarizing noise for comparability
\item Compare performance with other \ac{bb} code decoders
\end{itemize}
\end{itemize}
\end{minipage}%
\begin{minipage}[c]{0.35\textwidth}
@@ -1852,9 +2008,13 @@
\begin{figure}[H]
\centering
\begin{tikzpicture}[every node/.style={scale=10}]
\node at (0, 0)
\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}
@@ -1868,7 +2028,7 @@
\begin{frame}
\frametitle{System Level Overview}
\vspace*{-15mm}
\vspace*{-10mm}
\begin{figure}[H]
\centering
@@ -1933,7 +2093,7 @@
\end{subfigure}
\end{figure}
% \vspace*{-2mm}
\vspace*{5mm}
\addreferencesmanual
{ZZC$^+$23}{
@@ -1952,11 +2112,30 @@
\begin{frame}
\frametitle{Guided Decimation Guessing Decoding}
\begin{minipage}{0.57\textwidth}
\begin{itemize}
\item \red{Explain paper}
\item BP guided decimation (BPGD) \\
$\rightarrow$ Iteratively fix most reliable variable node (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*{25mm}
\vspace*{30mm}
\addreferencesmanual
{GCR24}{
@@ -1967,6 +2146,52 @@
\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}
% TODO: Is this really necessary?
% \begin{frame}
% \frametitle{The Quantum Error Correction Landscape}

Binary file not shown.

Binary file not shown.

1436
src/thesis/MA.bib Normal file

File diff suppressed because it is too large Load Diff

19
src/thesis/acronyms.tex Normal file
View File

@@ -0,0 +1,19 @@
\DeclareAcronym{qec}{
short=QEC,
long=quantum error correction
}
\DeclareAcronym{bp}{
short=BP,
long=belief propagation
}
\DeclareAcronym{sc}{
short=SC,
long=spatially coupled
}
\DeclareAcronym{ldpc}{
short=LDPC,
long=low-density parity-check
}

View File

@@ -0,0 +1 @@
\chapter{Introduction}

View File

@@ -0,0 +1,321 @@
\chapter{Fundamentals}
\label{ch:Fundamentals}
\Ac{qec} is a field of research combining ``classical''
communications engineering and quantum information science.
This chapter provides the relevant theoretical background on both of
these topics and subsequently introduces the the fundamentals of \ac{qec}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Classical Error Correction}
\label{sec:Classical Error Correction}
% TODO: Maybe rephrase: The core concept is not the realization, its's the
% thing itself
The core concept underpinning error correcting codes is the
realization that a finite amount of redundancy, introduced
deliberately and systematically to information before its
tranmission, can be utilized to reduce the error rate of a
communications system considerably.
This idea has been expanded upon significantly since it was first
brought forward by Claude Shannon in 1948 \cite{shannon_mathematical_1948}.
In this section, we explore the concepts of ``classical'' (as in non-quantum)
error correction that are central to this work.
We start by looking at different ways of encoding information,
first considering binary linear block codes in general and then \ac{ldpc} and
\ac{sc}-\ac{ldpc} codes.
Finally, we pivot to the decoding process, specifically the \ac{bp}
algorithm.
% TODO: Is an explanation of BP with guided decimation needed here?
% TODO: Is an explanation of OSD needed here?
\subsection{Binary Linear Block Codes}
\red{
\begin{itemize}
\item Note that binary linear codes are not the only coding
scheme out there
\end{itemize}
}
Binary linear block codes split the information to be protected into
separate blocks.
Each block is encoded, transmitted, and decoded separately.
The encoding step introduces redundancy by mapping \textit{data words} of
length $k \in \mathbb{N}$ onto \textit{codewords} of length $n \in \mathbb{N}$
with $n > k$.
The number of words stays the same, but they are mapped into an
expanded Hilbert space where they are ``further appart'', giving rise
to the error correcting properties of the coding scheme.
Figure \ref{fig:Diagram of a transmission system} visualizes the
entire communication process.
A data word $\bm{u}\in \mathbb{F}_2^k$ is mapped onto a codeword $\bm{x}
\in \mathbb{F}_2^n$. This is passed on to a transmitter, which
interacts with the physical channel.
A receiver acquires the message $\bm{y} \in \mathbb{R}^n$ and
forwards it to a decoder.
Finally, the decoder is responsible for obtaining an estimate
$\hat{\bm{u}} \in \mathbb{F}_2^k$ of the original codeword from the
received message.
\vspace{10mm}
For linear codes, this encoding process can be described as%
%
\begin{align*}
\bm{x} = \bm{u}\bm{G},
\end{align*}%
%
using a generator matrix $\bm{G} \in \mathbb{F}_2^{k\times n}$.
% We call the set of all codewords the codespace $\mathcal{C}$.
% $\mathcal{C} = \left\{ \bm{x} \in \mathbb{F}_2^n :
% \bm{H}\bm{x}^\text{T} = \bm{0} \right\}$.
\begin{figure}[H]
\centering
\begin{tikzpicture}
\node[] (in) {$\bm{u}$};
\node[rectangle, draw=black, right=of in] (enc) {Encoder};
\node[rectangle, draw=black, right=of enc] (tra) {Transmitter};
\node[rectangle, draw=black, right=of tra] (cha) {Channel};
\node[rectangle, draw=black, right=of cha] (rec) {Receiver};
\node[rectangle, draw=black, right=of rec] (dec) {Decoder};
\node[right=of dec] (out) {$\hat{\bm{u}}$};
\draw[-{latex}] (in) -- (enc);
\draw[-{latex}] (enc) -- (tra);
\draw[-{latex}] (tra) -- (cha);
\draw[-{latex}] (cha) -- (rec);
\draw[-{latex}] (rec) -- (dec);
\draw[-{latex}] (dec) -- (out);
\end{tikzpicture}
\caption{Diagram of a transmission system}
\label{fig:Diagram of a transmission system}
\end{figure}
\red{
\textbf{Topics to cover}
\begin{itemize}
\item Parity checks and describing a code by $H$ rather than
$\mathcal{C}$
\item G, H, notation
\item Minimum distance, [] - notation
\item The syndrome
\item The decoding problem
\item Soft vs. Hard information
\end{itemize}
}
\red{
\textbf{General Notes:}
\begin{itemize}
\item Make sure all coding concepts used later on have been
introduced (e.g., code rate?)
\end{itemize}
}
\subsection{Low-Density Parity-Check Codes}
\red{
\begin{itemize}
\item Core concept (Large $n$ with manageable complexity)
\item Tanner graphs, VNs and CNs
\end{itemize}
}
\subsection{Spatially-Coupled LDPC Codes}
\red{
\begin{itemize}
\item Core idea
\item Mathematical description (H)
\end{itemize}
}
\subsection{Belief Propagation}
\red{
\begin{itemize}
\item Core idea
\item BP for SC-LDPC codes
\end{itemize}
}
\section{Quantum Mechanics and Quantum Information Science}
\label{sec:Quantum Mechanics and Quantum Information Science}
% TODO: Should the brief intro to QC be made later on or here?
%%%%%%%%%%%%%%%%
\subsection{Core Concepts and Notation}
\label{subsec:Notation}
\ldots can be very elegantly expressed using the language of
linear algebra.
\todo{Mention that we model the state of a quantum mechanical system
as a vector}
The so called Bra-ket or Dirac notation is especially appropriate,
having been proposed by Paul Dirac in 1939 for the express purpose
of simplifying quantum mechanical notation \cite{dirac_new_1939}.
Two new symbols are defined, \emph{bra}s $\bra{\cdot}$ and
\emph{ket}s $\ket{\cdot}$.
Kets denote ordinary vectors, while bras denote their Hermitian conjugates.
For example, two vectors specified by the labels $a$ and $b$
respectively are written as $\ket{a}$ and $\ket{b}$.
Their inner product is $\braket{a\vert b}$.
\red{\textbf{Tensor product}}
\red{\ldots
\todo{Introduce determinate state or use a different word?}
Take for example two systems with the determinate states $\ket{0}$
and $\ket{1}$. In general, the state of each can be written as the
superposition%
%
\begin{align*}
\alpha \ket{0} + \beta \ket{1}
.%
\end{align*}
%
Combining these two sytems into one, the overall state becomes%
%
\begin{align*}
&\mleft( \alpha_1 \ket{0} + \beta_1 \ket{1} \mright) \otimes
\mleft( \alpha_2 \ket{0} + \beta_2 \ket{1} \mright) \\
= &\alpha_1 \alpha_2 \ket{0} \ket{0}
+ \alpha_1 \alpha_2 \ket{0} \ket{1}
+ \beta_1 \alpha_2 \ket{1} \ket{0}
+ \beta_1 \beta_2 \ket{1} \ket{1}
% =: &\alpha_{00} \ket{00}
% + \alpha_{01} \ket{01}
% + \alpha_{10} \ket{10}
% + \alpha_{11} \ket{11}
.%
\end{align*}%
%
\ldots When not ambiguous in the context, the tensor product
symbol may be omitted, e.g.,
\begin{align*}
\ket{0} \otimes \ket{0} = \ket{0}\ket{0}
.%
\end{align*}
}
As we will see, the core concept that gives quantum computing its
power is entanglement. When two quantum mechanical systems are
entangled, measuring the state of one will collapse that of the other.
Take for example two subsystems with the overall state
%
\begin{align*}
\ket{\psi} = \frac{1}{\sqrt{2}} \mleft( \ket{0}\ket{0} +
\ket{1}\ket{1} \mright)
.%
\end{align*}
%
If we measure the first subsystem as being in $\ket{0}$, we can
be certain that a measurement of the second subsystem will also yield $\ket{0}$.
Introducing a new notation for entangled states, we can write%
%
\begin{align*}
\ket{\psi} = \frac{1}{\sqrt{2}} \left( \ket{00} + \ket{11} \right)
.%
\end{align*}
%
\subsection{Projective Measurements}
\label{subsec:Projective Measurements}
% TODO: Write
%%%%%%%%%%%%%%%%
\subsection{Quantum Gates}
\label{subsec:Quantum Gates}
\red{
\textbf{Content:}
\begin{itemize}
\item Bra-ket notation
\item The tensor product
\item Projective measurements (the related operators,
eigenvalues/eigenspaces, etc.)
\begin{itemize}
\item First explain what an operator is
\end{itemize}
\item Abstract intro to QC: Use gates to process qubit
states, similar to classical case
\item X, Z, Y operators/gates
\item Hadamard gate (+ X and Z are the same thing in differt bases)
\item Notation of operators on multi-qubit states
\item The Pauli, Clifford and Magic groups
\end{itemize}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Quantum Error Correction}
\label{sec:Quantum Error Correction}
\red{
\textbf{Content:}
\begin{itemize}
\item General context
\begin{itemize}
\item Why we want QC
\item Why we need QEC (correcting errors due to noisy gates)
\item Main challenges of QEC compared to classical
error correction
\end{itemize}
\item Stabilizer codes
\begin{itemize}
\item Definition of a stabilizer code
\item The stabilizer its generators (note somewhere
that the generators have to commute to be able to
be measured without disturbing each other)
\item syndrome extraction circuit
\item Stabilizer codes are effectively the QM
% TODO: Actually binary linear codes or just linear codes?
equivalent of binary linear codes (e.g.,
expressible via check matrix)
\end{itemize}
\item Digitization of errors
\item CSS codes
\item Color codes?
\item Surface codes?
\item Fault tolerant error correction (gates with which we do
error correction are also noisy)
\begin{itemize}
\item Transversal operations
\item \dots
\end{itemize}
\item Circuit level noise
\item Detector error model
\begin{itemize}
\item Columns of the check matrix represent different
possible error patterns $\rightarrow$ Check matrix
doesn't quite correspond to the codewords we used
initially anymore, but some similar structure ist
still there (compare with syndrome)
\end{itemize}
\end{itemize}
\textbf{General Notes:}
\begin{itemize}
\item Give a brief overview of the history of QEC
\item Note (and research if this is actually correct) that QC
was developed on an abstract level before thinking of
what hardware to use
\item Note that there are other codes than stabilizer codes
(and research and give some examples), but only
stabilizer codes are considered in this work
\item Degeneracy
\item The QEC decoding problem (considering degeneracy)
\end{itemize}
}
\subsection{Stabilizer Codes}
\subsection{CSS Codes}
\subsection{Quantum Low-Density Parity-Check Codes}

View File

@@ -0,0 +1,13 @@
\chapter{Fault Tolerant QEC}
\section{Fault Tolerance}
\section{Noise Models}
\subsection{Depolarizing Channel}
\subsection{Phenomenological Noise}
\subsection{Circuit-Level Noise}
\section{Detector Error Models}
\subsection{Measurement Syndrome Matrix}
\subsection{Detector Error Matrix}
\subsection{Detector Error Models}
\section{Practical Considerations}
\subsection{Practical Methodology}
\subsection{Stim}

View File

@@ -0,0 +1,5 @@
\chapter{Decoding under Detector Error Models}
\section{Sliding-Window Decoding}
\section{Treating Detector Error Matrices like SC-LDPC Codes}
\section{Soft-Information Aware Sliding-Window Decoding}
\section{Numerical Results and Analysis}

View File

@@ -0,0 +1 @@
\chapter{Conclusion and Outlook}

66
src/thesis/main.tex Normal file
View File

@@ -0,0 +1,66 @@
\documentclass[dvipsnames]{report}
\usepackage[a4paper,left=3cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{float}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mleftright}
\usepackage{bm}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{acro}
\usepackage{braket}
\usepackage[
backend=biber,
style=ieee,
sorting=nty,
]{biblatex}
\usepackage{todonotes}
\usetikzlibrary{calc, positioning, arrows}
%
%
% Custom commands
%
%
\newcommand{\red}[1]{\textcolor{red}{#1}}
%
%
% Acronyms
%
%
\input{acronyms.tex}
\addbibresource{src/thesis/MA.bib}
%
%
% Content
%
%
\title{Fault Tolerant Quantum Error Correction}
% \subtitle{Master's Thesis}
\author{Andreas Tsouchlos}
\begin{document}
\maketitle
\tableofcontents
\newpage
\input{chapters/1_introduction.tex}
\input{chapters/2_fundamentals.tex}
\input{chapters/3_fault_tolerant_qec.tex}
\input{chapters/4_decoding_under_dems.tex}
\input{chapters/5_conclusion_and_outlook.tex}
\printbibliography
\end{document}