Commit 32102bba authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

latest from demo1

parent 19ae80d7
Loading
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -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
+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
+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