I was plotting the matching graph from the quantum memory experiment (surface_code:rotated_memory_x) with the circuit diagram command from stim, circuit.diagram('matchgraph-3d').

I noticed there are diagonal edges in the time direction. Can anyone explain this? I don't understand the purpose of these diagonal edges.

enter image description hereCheers!


1 Answer 1


This is easiest to understand in the repetition code, which has the same 'edges-across-time' thing happening in its graph:

import stim

enter image description here

These diagonal edges correspond to errors happening halfway through the cycle, when stabilizer measurements are partially performed. So the error gets caught by some of them, but not by others, creating a spread in time of when it's first seen:

enter image description here

  • $\begingroup$ Thanks. I appreciate that it means mid circuit errors, so those edges correspond to virtual qubits? Is it wrong to think of it that way? If I were to have a decoding graph without these diagonal edges, you would expect the threshold to go down, no? Can you please suggest a resource to systematically construct these additional edges? Thanks! $\endgroup$
    – user29307
    Mar 4 at 21:27
  • $\begingroup$ @quantum_dog_96 what's a virtual qubit? The errors are happening on normal qubits during the circuit. The way you generate the edges is to propagate the error forward and see which pair of detectors it flips. $\endgroup$ Mar 4 at 23:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.