def noisy_moment(self, moment: 'cirq.Moment', system_qubits: Sequence['cirq.Qid']) -> 'cirq.OP_TREE': if self.is_virtual_moment(moment): return moment moments = [] if _homogeneous_moment_is_measurements(moment): if self.decay_probs: moments.append( ops.Moment( ops.AmplitudeDampingChannel(self.decay_probs[q])(q) for q in system_qubits)) if self.bitflip_probs: moments.append( ops.Moment( ops.BitFlipChannel(self.bitflip_probs[q])(q) for q in system_qubits)) moments.append(moment) return moments else: moments.append(moment) if self.depol_probs: gated_qubits = [ q for q in system_qubits if moment.operates_on_single_qubit(q) ] if gated_qubits: moments.append( ops.Moment( ops.DepolarizingChannel(self.depol_probs[q])(q) for q in gated_qubits)) return moments
def __init__(self, bitflip_prob: float): """A noise model with readout error. Args: bitflip_prob: Probability of a bit-flip during measurement. """ value.validate_probability(bitflip_prob, 'bitflip prob') self.readout_noise_gate = ops.BitFlipChannel(bitflip_prob)
def __init__(self, depol_prob: float, bitflip_prob: float): """A depolarizing noise model with readout error. Args: depol_prob: Depolarizing probability. bitflip_prob: Probability of a bit-flip during measurement. """ value.validate_probability(depol_prob, 'depol prob') value.validate_probability(bitflip_prob, 'bitflip prob') self.qubit_noise_gate = ops.DepolarizingChannel(depol_prob) self.readout_noise_gate = ops.BitFlipChannel(bitflip_prob)
def __init__(self, bitflip_prob: float, prepend: bool = True): """A noise model with readout error. Args: bitflip_prob: Probability of a bit-flip during measurement. prepend: If True, put noise before affected gates. Default: True. """ value.validate_probability(bitflip_prob, 'bitflip prob') self.readout_noise_gate = ops.BitFlipChannel(bitflip_prob) self._prepend = prepend
def __init__(self, depol_prob: float, bitflip_prob: float, decay_prob: float): """A depolarizing noise model with damped readout error. Args: depol_prob: Depolarizing probability. bitflip_prob: Probability of a bit-flip during measurement. decay_prob: Probability of T1 decay during measurement. Bitflip noise is applied first, then amplitude decay. """ value.validate_probability(depol_prob, 'depol prob') value.validate_probability(bitflip_prob, 'bitflip prob') value.validate_probability(decay_prob, 'decay_prob') self.qubit_noise_gate = ops.DepolarizingChannel(depol_prob) self.readout_noise_gate = ops.BitFlipChannel(bitflip_prob) self.readout_decay_gate = ops.AmplitudeDampingChannel(decay_prob)