Encodes a qubit of your choice using the Shor 9-qubit quantum
error-correcting code, then applies an encoded Pauli operation of
your choice to the codeword, and finally decodes the codeword and
measures the result.
The qubit to be encoded is stored in qubit 0. Qubit 1 is 1 if and
only if an X operation should be applied to the codeword, and qubit
2 is 1 if and only if a Z should be applied. So for example, if
you want to encode |0> and then apply a Y=-iXZ operation, type the
following at the command line:
chp qecc9 zZZ
The output in this case should be |1>. Or, if you want to encode
|0>+i|1> and then apply X, type the following:
chp qecc9 yZz
The output in this case should be random (since the final state is
|0>-i|1>). In general:
x for |0>
X for |1>
y for |0>+i|1>
Y for |0>-i|1>
z for |0>+|1>
Z for |0>-|1>
Note that since the measurement is in the standard basis, applying
the Z operator should not have an observable effect.
#
c 0 3
c 3 0
c 3 6
c 3 9
h 3
c 3 4
c 3 5
h 6
c 6 7
c 6 8
h 9
c 9 10
c 9 11
h 3
h 4
h 5
h 6
h 7
h 8
h 9
h 10
h 11
c 1 3
c 1 4
c 1 5
c 1 6
c 1 7
c 1 8
c 1 9
c 1 10
c 1 11
h 3
h 4
h 5
h 6
h 7
h 8
h 9
h 10
h 11
c 2 3
c 2 4
c 2 5
c 2 6
c 2 7
c 2 8
c 2 9
c 2 10
c 2 11
c 9 11
c 9 10
h 9
c 6 8
c 6 7
h 6
c 3 5
c 3 4
h 3
c 3 9
c 3 6
m 3