For this program define a classical bit flip readout error channel parametrized by
        ``p00`` and ``p11``. This models the effect of thermal noise that corrupts the readout
        signal **after** it has interrogated the qubit.

        :param int|QubitPlaceholder qubit: The qubit with noisy readout.
        :param float p00: The probability of obtaining the measurement result 0 given that the qubit
          is in state 0.
        :param float p11: The probability of obtaining the measurement result 1 given that the qubit
          is in state 1.
        :return: The Program with an appended READOUT-POVM Pragma.
        :rtype: Program

def define_noisy_readout(self, qubit, p00, p11):
        """
        For this program define a classical bit flip readout error channel parametrized by
        ``p00`` and ``p11``. This models the effect of thermal noise that corrupts the readout
        signal **after** it has interrogated the qubit.

        :param int|QubitPlaceholder qubit: The qubit with noisy readout.
        :param float p00: The probability of obtaining the measurement result 0 given that the qubit
          is in state 0.
        :param float p11: The probability of obtaining the measurement result 1 given that the qubit
          is in state 1.
        :return: The Program with an appended READOUT-POVM Pragma.
        :rtype: Program
        """
        if not 0. <= p00 <= 1.:
            raise ValueError("p00 must be in the interval [0,1].")
        if not 0. <= p11 <= 1.:
            raise ValueError("p11 must be in the interval [0,1].")
        if not (isinstance(qubit, int) or isinstance(qubit, QubitPlaceholder)):
            raise TypeError("qubit must be a non-negative integer, or QubitPlaceholder.")
        if isinstance(qubit, int) and qubit < 0:
            raise ValueError("qubit cannot be negative.")
        p00 = float(p00)
        p11 = float(p11)
        aprobs = [p00, 1. - p11, 1. - p00, p11]
        aprobs_str = "({})".format(" ".join(format_parameter(p) for p in aprobs))
        pragma = Pragma("READOUT-POVM", [qubit], aprobs_str)
        return self.inst(pragma)