OPENQASM 3.0; include "stdgates.inc"; // A memory round of a code of 9 qubits and 4 parity checks, decoded in the middle of the circuit. extern decode64(bit[4]) -> bit[9]; qubit[9] d; qubit[4] a; qubit[4] c0; bit[4] e0; bit[4] s; bit[9] corr; bit[4] s2; bit[9] fin; h c0; e0 = measure c0; if (e0 == 0) x d[0]; if (e0 == 1) x d[1]; if (e0 == 2) x d[2]; if (e0 == 3) x d[3]; if (e0 == 4) x d[4]; if (e0 == 5) x d[5]; if (e0 == 6) x d[6]; if (e0 == 7) x d[7]; if (e0 == 8) x d[8]; cx d[0], a[0]; cx d[1], a[0]; cx d[3], a[0]; cx d[4], a[0]; cx d[4], a[1]; cx d[5], a[1]; cx d[7], a[1]; cx d[8], a[1]; cx d[3], a[2]; cx d[6], a[2]; cx d[2], a[3]; cx d[5], a[3]; s = measure a; corr = decode64(s); if (corr[0]) x d[0]; if (corr[1]) x d[1]; if (corr[2]) x d[2]; if (corr[3]) x d[3]; if (corr[4]) x d[4]; if (corr[5]) x d[5]; if (corr[6]) x d[6]; if (corr[7]) x d[7]; if (corr[8]) x d[8]; reset a; cx d[0], a[0]; cx d[1], a[0]; cx d[3], a[0]; cx d[4], a[0]; cx d[4], a[1]; cx d[5], a[1]; cx d[7], a[1]; cx d[8], a[1]; cx d[3], a[2]; cx d[6], a[2]; cx d[2], a[3]; cx d[5], a[3]; s2 = measure a; fin = measure d;