|
Coto
Abstract additive quantum diagrams
|
Theoretical research, experiments and implementation of abstract additive quantum decision diagrams, as part of a student research project.
The author-facing ACM manuscript, reproducibility commands, and known-limitations report are in paper/. Checked-in raw benchmark/fidelity data and paper figures are under analysis/results/; the longer-form theoretical notes remain in doc/.
To build the project, you must have Clang, CMake and Ninja installed. The code uses some C++23 features, so a recent version of clang++ is required. Other versions probably work, but I personally use the following on my machine:
After building the project (steps 1. and 2. above), simply run ./build/prompt. You can then enter QASM instructions, for example
This prompt utility comes with a few available run statements that should be ;-terminated:
@build, @inst, @instantiate - create a new diagram@list, @actions - list the actions (gate applicaitons) to be performed@display, @evaluate, @eval - display the evaluation of the current diagram@intervals - emit machine-readable certified interval amplitudes (limited to 16 qubits)@describe, @desc - display the description of the current diagram@memory, @mem - display the memory usage of the current diagram@reduce(N) - enable approximate simulation and cap each nonterminal level at N nodes after every gate@exact - disable automatic reduction (the default)@help, @man, @manual - display a help messageApplying gates to qubits is deferred until a statement needs the diagram. @display, @describe, and @memory all simulate every queued gate first.
The prompt executable can also take a .qasm file path as an argument, in this case it quits after executing all statements in the file, without entering interactive mode.
Presentation of this repository's main directories:
.github/workflows GitHub actions continuous integration (CI) and continous deployment (CD) configuration filestest directory and marked as ready for testing in CMakeLists.txtarchives Legacy documents or code, that still should be indexeddoc Theory documents (basically, LaTeX)include Code header files (.h C++ files)ref References, code or case studies that can be used as exampless6 Final report and presentation for semester 6 (in French)s7 Final report and presentation for semester 6 (in French)src Source code (.cpp C++ files, not headers)test Test code (.cpp C++ files)