@@ -13,20 +13,92 @@ Here we demonstrate the utility of the QIR for enabling the integration of code
- Demonstrate OpenQASM3-calls-Q#
## Outline
- Demonstrate Q#-calls-OpenQASM3
1. Start off with the phase estimation example whereby qcor calls a Q# inverse quantum fourier transform function. Show off the code (both files), and `qir_nisq_kernel_utils.hpp` enabling one to decorate a Q# function with a qcor `QuantumKernel`.
2. Compile the code (use alpha version and in VERBOSE mode), passing the Q# file and the QCOR driver cpp file. Note the command line calls.
3. Run the executable, noting the correct result, and that the Q# code printed Hello World.
4. Show the lowered `qft.qs` LLVM file, point to the `QCOR__IQFT__body` function. Note how in C++ we can mark a function as `extern`.
5. Move to the qcor-to-qasm3 code...
6. ...
7. Move to the qasm3-calls-Q# code, a quantum random number generator in Q#, called from OpenQASM3 code. Note how we use `kernel` keyword in the language to mark function as `extern`. Show off the Q# code.
8. Compile and run (run multiple times to show random numbers)