diff --git a/.gitignore b/.gitignore index e7b1e52..a817815 100644 --- a/.gitignore +++ b/.gitignore @@ -126,3 +126,10 @@ qasm3Parser.g4 .gitignore config.json + +# LaTeX Builds +*.aux +*.fdb_latexmk +*.fls +*.log +*.gz diff --git a/README.md b/README.md index bb93729..6a3ec11 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Finally, apply a measurement gate to every qubit to convert the quantum data int After this process, we obtain the following quantum circuit.
-![Figure 1](./figures/readme_figure_1.png) +![Figure 1](./figures/readme/figure_1.png)
@@ -79,7 +79,7 @@ meas = measure q;
-![Figure 2](./figures/readme_figure_2.png) +![Figure 2](./figures/readme/figure_2.png)
The general workflow of QuantumC is shown in the diagram above: write a QuantumC program, compile it with the frontend to produce OpenQASM, then run that OpenQASM code to a local simulator or a cloud quantum backend. diff --git a/demos/random/README.md b/demos/random/README.md index ea84090..4a3c399 100644 --- a/demos/random/README.md +++ b/demos/random/README.md @@ -1 +1,23 @@ # Quantum Random Number Generator + +## Algorithm Description + +This quantum algorithm generates a uniformly distributed random number. + +### Generating An Integer $n \in [a, b)$ + +$$ +\begin{equation} + n = a + \left(\sum_{i=0}^{n-1} 2^ib_i \mod (b-a)\right) +\end{equation} +$$ + +### Generating A Floating-Point $f \in [a, b]$ + +$$ +\begin{equation} + f = a + \frac{b-a}{2^n-1} \sum_{i=0}^{n-1} 2^ib_i +\end{equation} +$$ + +## Quantum Circuit Represenation \ No newline at end of file diff --git a/figures/random/figure_1.pdf b/figures/random/figure_1.pdf new file mode 100644 index 0000000..9a3341d Binary files /dev/null and b/figures/random/figure_1.pdf differ diff --git a/figures/random/figure_1.tex b/figures/random/figure_1.tex new file mode 100644 index 0000000..8590c46 --- /dev/null +++ b/figures/random/figure_1.tex @@ -0,0 +1,14 @@ +\documentclass{article} + +\usepackage{amsmath} +\usepackage{tikz} +\usetikzlibrary{quantikz2} + +\begin{document} + \begin{quantikz} + \lstick{$\ket{0}$} \slice{$\ket{0}^{\otimes{n}}$} & \gate{H} \slice{$\ket{+}^{\otimes{n}}$} & \meter{} \\ + \lstick{$\ket{0}$} & \gate{H} & \meter{} \\ + \wave & & \\ + \lstick{$\ket{0}$} & \gate{H} & \meter{} + \end{quantikz} +\end{document} diff --git a/figures/readme_figure_1.png b/figures/readme/figure_1.png similarity index 100% rename from figures/readme_figure_1.png rename to figures/readme/figure_1.png diff --git a/figures/readme_figure_2.png b/figures/readme/figure_2.png similarity index 100% rename from figures/readme_figure_2.png rename to figures/readme/figure_2.png diff --git a/figures/src/readme_figure_1.py b/figures/readme/src/figure_1.py similarity index 100% rename from figures/src/readme_figure_1.py rename to figures/readme/src/figure_1.py