def test_register_noise(): class _FooNoise(Noise): def __init__(self): super().__init__(qubit_count=1, ascii_symbols=["foo"]) Noise.register_noise(_FooNoise) assert Noise._FooNoise().name == _FooNoise().name
target (Qubit, int, or iterable of Qubit / int): Target qubit(s) probability (float): Probability of bit flipping. Returns: Iterable[Instruction]: `Iterable` of BitFlip instructions. Examples: >>> circ = Circuit().bit_flip(0, probability=0.1) """ return [ Instruction(Noise.BitFlip(probability=probability), target=qubit) for qubit in QubitSet(target) ] Noise.register_noise(BitFlip) class PhaseFlip(SingleProbabilisticNoise): """Phase flip noise channel which transforms a density matrix :math:`\\rho` according to: .. math:: \\rho \\Rightarrow (1-p) \\rho + p X \\rho X^{\\dagger} where .. math:: I = \\left( \\begin{matrix} 1 & 0 \\\\ 0 & 1 \\end{matrix} \\right)