summaryrefslogtreecommitdiff
path: root/sources/know/concept/quantum-fourier-transform/circuit.tex
diff options
context:
space:
mode:
Diffstat (limited to 'sources/know/concept/quantum-fourier-transform/circuit.tex')
-rw-r--r--sources/know/concept/quantum-fourier-transform/circuit.tex166
1 files changed, 166 insertions, 0 deletions
diff --git a/sources/know/concept/quantum-fourier-transform/circuit.tex b/sources/know/concept/quantum-fourier-transform/circuit.tex
new file mode 100644
index 0000000..41cbd85
--- /dev/null
+++ b/sources/know/concept/quantum-fourier-transform/circuit.tex
@@ -0,0 +1,166 @@
+\documentclass[11pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{physics}
+\usepackage{yquant}
+
+
+\begin{document}
+
+\section{Spacer}
+
+\yquantdefinebox{dots}[inner sep=0pt]{$\vdots$}
+\begin{tikzpicture}
+ \begin{yquant}[register/separation=0mm]
+ qubit {$\ket{x_1}$} x1;
+ qubit {$\ket{x_2}$} x2;
+ qubit {$\ket{x_3}$} x3;
+ nobit xdots;
+ qubit {$\ket{x_{n\!-\!1}}$} xn1;
+ qubit {$\ket{x_n}$} xn;
+
+ h x1;
+ box {$R_2$} x1 | x2;
+ box {$R_3$} x1 | x3;
+ align x1, x2, x3, xdots, xn1, xn;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x1;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x2;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x3;
+ [draw=none]
+ box {$\ddots$} xdots;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} xn1;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} xn;
+ [operator/separation=0mm]
+ box {$R_{n\!-\!1}$} x1 | xn1;
+ box {$R_n$} x1 | xn;
+
+ h x2;
+ box {$R_2$} x2 | x3;
+ align x1, x2, x3, xdots, xn1, xn;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x1;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x2;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x3;
+ [draw=none]
+ box {$\ddots$} xdots;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} xn1;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} xn;
+ [operator/separation=0mm]
+ box {$R_{n\!-\!2}$} x2 | xn1;
+ box {$R_{n\!-\!1}$} x2 | xn;
+
+ align x1, x2, x3, xdots, xn1, xn;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} x1;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} x2;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} x3;
+ [draw=none, operator/separation=3mm]
+ box {$\ddots$} xdots;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} xn1;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} xn;
+
+ align x1, x2, x3, xdots, xn1, xn;
+ [operator/separation=3mm]
+ h xn1;
+ box {$R_2$} xn1 | xn;
+
+ h xn;
+
+ [value=$\ket{k_n}$]
+ output x1;
+ [value=$\ket{k_{n\!-\!1}}$]
+ output x2;
+ [value=$\ket{k_{n\!-\!2}}$]
+ output x3;
+ [value=$\ket{k_2}$]
+ output xn1;
+ [value=$\ket{k_1}$]
+ output xn;
+ \end{yquant}
+\end{tikzpicture}
+
+\section{Spacer}
+
+
+\begin{tikzpicture}
+ \begin{yquant}[register/separation=0mm]
+ qubit {$\ket{x_1}$} x1;
+ qubit {$\ket{x_2}$} x2;
+ qubit {$\ket{x_3}$} x3;
+ nobit xdots;
+ qubit {$\ket{x_{n\!-\!1}}$} xn1;
+ qubit {$\ket{x_n}$} xn;
+
+ h x1;
+ box {$R_2$} x1 | x2;
+ box {$R_3$} x1 | x3;
+ align x1, x2, x3, xdots, xn1, xn;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x1;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x2;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} x3;
+ [draw=none]
+ box {$\ddots$} xdots;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} xn1;
+ [draw=none]
+ box {$\!\cdot\!\cdot\!\cdot\!$} xn;
+ [operator/separation=0mm]
+ box {$R_{n\!-\!1}$} x1 | xn1;
+ box {$R_n$} x1 | xn;
+
+ align x1, x2, x3, xdots, xn1, xn;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} x1;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} x2;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} x3;
+ [draw=none, operator/separation=3mm]
+ box {$\ddots$} xdots;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} xn1;
+ [draw=none, operator/separation=3mm]
+ box {$\cdots$} xn;
+
+ align x1, x2, x3, xdots, xn1, xn;
+ [operator/separation=3mm]
+ h xn1;
+ box {$R_2$} xn1 | xn;
+
+ h xn;
+
+ swap (x1, xn);
+ swap (x2, xn1);
+ swap (x3, xdots);
+
+ [value=$\ket{k_1}$]
+ output x1;
+ [value=$\ket{k_{2}}$]
+ output x2;
+ [value=$\ket{k_{3}}$]
+ output x3;
+ [value=$\ket{k_{n-1}}$]
+ output xn1;
+ [value=$\ket{k_n}$]
+ output xn;
+ \end{yquant}
+\end{tikzpicture}
+
+\end{document}