Loading examples/qcor_demos/pirq_workshop/qir_qasm3/demo1_simple/README.md +11 −1 Original line number Diff line number Diff line Loading @@ -27,3 +27,13 @@ GHZ (nisq) and Bell (ftqc) QASM3 codes, compile and run on simulator, IBM, Riget ## Notes: Count how many qvs instructions in the MLIR text ```bash qcor --emit-mlir trotter_decompose.qasm &> out.log && cat out.log | grep 'qvs.' | tee out2.log | wc -l && rm -rf out*.log ``` and with optimizations ```bash qcor --q-optimize --emit-mlir trotter_decompose.qasm &> out.log && cat out.log | grep 'qvs.' | tee out2.log | wc -l && rm -rf out*.log ``` No newline at end of file examples/qcor_demos/pirq_workshop/qir_qasm3/demo1_simple/trotter_decompose.qasm +704 −36 Original line number Diff line number Diff line OPENQASM 3; def cnot_ladder(bit[4]:operator) qubit[4]:q { for i in [0:2] { if (operator[i] == operator[i+2] && operator[i] != 1) { rx(1.57) q[i]; } else if (operator[i] == 1 && operator[i+2] == 0) { h q[i]; } } for i in [0:3] { cx q[i], q[i+1]; } } def trotter(int[64]:n_steps, double:theta, bit[4]:operator) qubit[4]:qq { for i in [0:n_steps] { cnot_ladder(operator) qq; rz(theta) qq[3]; inv @ cnot_ladder(operator) qq; } } bit x0x1[4] = "1100"; qubit r[4]; double dt = .01; int[64] n_steps = 100; trotter(n_steps, dt, x0x1) r; No newline at end of file OPENQASM 2.0; include "qelib1.inc"; qreg qrg_nWlrB[2]; creg qrg_nWlrB_c[2]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; No newline at end of file examples/qcor_demos/pirq_workshop/qir_qasm3/demo1_simple/trotter_decompose_q3.qasm 0 → 100644 +36 −0 Original line number Diff line number Diff line OPENQASM 3; def cnot_ladder(bit[4]:operator) qubit[4]:q { for i in [0:2] { if (operator[i] == operator[i+2] && operator[i] != 1) { rx(1.57) q[i]; } else if (operator[i] == 1 && operator[i+2] == 0) { h q[i]; } } for i in [0:3] { cx q[i], q[i+1]; } } def trotter(int[64]:n_steps, double:theta, bit[4]:operator) qubit[4]:qq { for i in [0:n_steps] { cnot_ladder(operator) qq; rz(theta) qq[3]; inv @ cnot_ladder(operator) qq; } } bit x0x1[4] = "1100"; qubit r[4]; double dt = .01; int[64] n_steps = 100; trotter(n_steps, dt, x0x1) r; No newline at end of file Loading
examples/qcor_demos/pirq_workshop/qir_qasm3/demo1_simple/README.md +11 −1 Original line number Diff line number Diff line Loading @@ -27,3 +27,13 @@ GHZ (nisq) and Bell (ftqc) QASM3 codes, compile and run on simulator, IBM, Riget ## Notes: Count how many qvs instructions in the MLIR text ```bash qcor --emit-mlir trotter_decompose.qasm &> out.log && cat out.log | grep 'qvs.' | tee out2.log | wc -l && rm -rf out*.log ``` and with optimizations ```bash qcor --q-optimize --emit-mlir trotter_decompose.qasm &> out.log && cat out.log | grep 'qvs.' | tee out2.log | wc -l && rm -rf out*.log ``` No newline at end of file
examples/qcor_demos/pirq_workshop/qir_qasm3/demo1_simple/trotter_decompose.qasm +704 −36 Original line number Diff line number Diff line OPENQASM 3; def cnot_ladder(bit[4]:operator) qubit[4]:q { for i in [0:2] { if (operator[i] == operator[i+2] && operator[i] != 1) { rx(1.57) q[i]; } else if (operator[i] == 1 && operator[i+2] == 0) { h q[i]; } } for i in [0:3] { cx q[i], q[i+1]; } } def trotter(int[64]:n_steps, double:theta, bit[4]:operator) qubit[4]:qq { for i in [0:n_steps] { cnot_ladder(operator) qq; rz(theta) qq[3]; inv @ cnot_ladder(operator) qq; } } bit x0x1[4] = "1100"; qubit r[4]; double dt = .01; int[64] n_steps = 100; trotter(n_steps, dt, x0x1) r; No newline at end of file OPENQASM 2.0; include "qelib1.inc"; qreg qrg_nWlrB[2]; creg qrg_nWlrB_c[2]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; rz(0.0100000000000000) qrg_nWlrB[1]; CX qrg_nWlrB[0], qrg_nWlrB[1]; h qrg_nWlrB[0]; h qrg_nWlrB[1]; No newline at end of file
examples/qcor_demos/pirq_workshop/qir_qasm3/demo1_simple/trotter_decompose_q3.qasm 0 → 100644 +36 −0 Original line number Diff line number Diff line OPENQASM 3; def cnot_ladder(bit[4]:operator) qubit[4]:q { for i in [0:2] { if (operator[i] == operator[i+2] && operator[i] != 1) { rx(1.57) q[i]; } else if (operator[i] == 1 && operator[i+2] == 0) { h q[i]; } } for i in [0:3] { cx q[i], q[i+1]; } } def trotter(int[64]:n_steps, double:theta, bit[4]:operator) qubit[4]:qq { for i in [0:n_steps] { cnot_ladder(operator) qq; rz(theta) qq[3]; inv @ cnot_ladder(operator) qq; } } bit x0x1[4] = "1100"; qubit r[4]; double dt = .01; int[64] n_steps = 100; trotter(n_steps, dt, x0x1) r; No newline at end of file