QuantumComputer.run_symmetrized_readout(program, trials)[source]

Run a quil program in such a way that the readout error is made collectively symmetric

This means the probability of a bitstring b being mistaken for a bitstring c is the same as the probability of not(b) being mistaken for not(c)

A more general symmetrization would guarantee that the probability of b being mistaken for c depends only on which bit of c are different from b. This would require choosing random subsets of bits to flip.

In a noisy device, the probability of accurately reading the 0 state might be higher than that of the 1 state. This makes correcting for readout more difficult. This function runs the program normally (trials//2) times. The other half of the time, it will insert an X gate prior to any MEASURE instruction and then flip the measured classical bit back.

See run() for this function’s parameter descriptions.

Return type: ndarray