From 171a0ca9b615463bfdbc762ad3579388e4826ec5 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 11 Mar 2026 17:33:22 -0500 Subject: [PATCH 1/4] Relocate `readme` figures --- README.md | 4 ++-- .../{readme_figure_1.png => readme/figure_1.png} | Bin .../{readme_figure_2.png => readme/figure_2.png} | Bin .../readme_figure_1.py => readme/src/figure_1.py} | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename figures/{readme_figure_1.png => readme/figure_1.png} (100%) rename figures/{readme_figure_2.png => readme/figure_2.png} (100%) rename figures/{src/readme_figure_1.py => readme/src/figure_1.py} (100%) 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/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 From 48917124ff4084b5873937d31f3999908f659f1f Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Wed, 11 Mar 2026 17:37:42 -0500 Subject: [PATCH 2/4] Add LaTeX build file exception rules in `.gitignore` --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) 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 From 80ae7ed05fee89e7eb52975341085831ae1efc9a Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Fri, 20 Mar 2026 11:03:30 -0500 Subject: [PATCH 3/4] Add `figure_1` in `random` --- demos/random/README.md | 5 +++++ figures/random/figure_1.pdf | Bin 0 -> 43538 bytes figures/random/figure_1.tex | 14 ++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 figures/random/figure_1.pdf create mode 100644 figures/random/figure_1.tex diff --git a/demos/random/README.md b/demos/random/README.md index ea84090..afa76fe 100644 --- a/demos/random/README.md +++ b/demos/random/README.md @@ -1 +1,6 @@ # Quantum Random Number Generator + +## Algorithm Description + +## Quantum Circuit Represenation + diff --git a/figures/random/figure_1.pdf b/figures/random/figure_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9a3341daf6a5d945309fd6b59d1309d573249774 GIT binary patch literal 43538 zcma&NLy#_9(5?BFZQD3y+qQA4PT96?+qP}nwr$(4{%%MA9nl!vJ<1&H9OjCZPbQgy zh!`y+9V;~1+|uwGG#eoUp{;=hG!G9ny^OJqsgoHYBP#BY>goQxd^>BX${ zos30{4Q-8#q51fr9i1GE^{t`ZHm)_LV>j6ldp_0g)(Qv*Uk^J38bxhv(9ejb%@;}G z4gllDzP$vx#AN(NlAVmepm#O29&gijCLFs8OcVr=6tCQT?ig>g;e-i}CMtyFpeMm3 zv7y`Qz~!C^BCc8GdvNcuL;Kzz{9RPwstFpF;SDklctoIs?8mjgUv7kkZ{EUx2%GY+ zxTBS|W9)BRDzF9U%nO8=4F|-u;f@MwDD3y0@sDtt?;4?lOu5RQp+DYBQ6a~(&@b=J z5f~^X(rdhBoM*J`w1#2>x`;a)h>s&Ji;4W`W1P0nOdCAC!E{#WhcV?Cs!3b+l$uPm zr%W$LT9WIFQ=Ao+Ym6nPD-xEJV&NV-zsHaHQGe_jyQ zw^_&RU)yQ3z>Mg!>MKKuAbWJNWNh~ZkOIR&C$>@w|9qICms2GL+>a_UkSiUUp(>j< zKU>k%giX&oUr!-Yg_=yE038-Hl2;6qqmzSOdW&@`eb6_20-Fy;HR4*^Yxzl4GaUuP zgBuFeAwMA7GwDp)fSziQ1>m0Wmeeq)Dx(IpfhEI9(C%Gdy%>t$%hDe7?bMAvukh)SZ^9WW3n}lL;sq; zaa66UDwqYf-){#i;l*e5+mHd*AboR^QwnXC2}~&qGM|8Az)ot5gN<1X7i&&{We#YR z?>TT#qv(B>SF7|1mN1LNiI|w>4P+7fTbwl32}C8ZQwFNn_eDJgfytnXK|j+VDuB*6 z!{aK{QiCjUqJYmKV(dJD5+V{8cWX%l2EPcR0VV-lZRbB z8y_4Ovsm6nnDFZ~;3zbiF)ZjZp;=j=Y{pU4xs=WXV3r9@g*s0xh&c*QL@ihRJTp+* zT@O-*6k(0FDNxljCJZNqQLDKqZ+td^zN*IfrrLr)ta~T|h2y__Ty01sL(HYiNJfOg zHf0Y&ncVsznEYOQg@b~iapdG%QVwPSeq8RUp(9-0xl&F-EoZ(wC1!dy0z_=7SG_Xn z2g>hjka2>auHEi&R>qx@zD{v<)xeHIWXTK82FOr&q^hx4_Yg%34ixFR3pn$1>KnNlL*qG9w8?Cvo zBT*#o?NJ<(gI)!F`4!%134Kr^namBQN$5g<;c<+<{b~yf!xXml5GB;b+6AhejK(7= z79wh7us%6R#F8o&!_aXn3f5j-;h-#&UPF*QxRI}p96&K3VaJdWqdz}&su$sI=43SU zn;~^37<0qtFGFFLL?I!Mi}x3b3ia=29xt%0Ds9d1G&JF76eW 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 kgy>(Y Date: Tue, 24 Mar 2026 00:35:39 -0500 Subject: [PATCH 4/4] Add formulas in `random` --- demos/random/README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/demos/random/README.md b/demos/random/README.md index afa76fe..4a3c399 100644 --- a/demos/random/README.md +++ b/demos/random/README.md @@ -2,5 +2,22 @@ ## Algorithm Description -## Quantum Circuit Represenation +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