this line of c++ in surface code generation says:

// Define interaction orders so that hook errors run against the error grain instead of with it.

So how does the interaction orders in surface code prevent hook errors and what's hook errors?


1 Answer 1


A hook error is an error that occurs in the middle of a stabilizer measurement cycle, producing symptoms that would require multiple data errors when not in the middle of the cycle.

For example, one error on the measurement qubit exactly halfway through the cycle can spread into two data errors by the end of the cycle:

enter image description here

If those two data errors are oriented between Z boundaries, this is a problem. It means you can make an undetectable logical error using half as many physical errors as you thought, by using hook errors (these mid-cycle errors). Their orientation is determined by the order in which the CNOT gates touch the qubits. So it's possible to pick good and bad orders of the CNOT gates.


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.