Noisy Gates

Pauli Noise

PauliNoiseOp performs Pauli noise of given magnitude (chaces for X, Y, and Z errors). It is used as a primitive inside of noisy operations.

julia> apply!(BellState([0,0]), PauliNoiseOp(1,1,0,0))
BellState(Bool[0, 1])

julia> apply!(BellState([0,0]), PauliNoiseOp(1,0,1,0))
BellState(Bool[1, 1])

julia> apply!(BellState([0,0]), PauliNoiseOp(1,0,0,1))
BellState(Bool[1, 0])

Noisy gate wrapper

PauliNoiseBellGate can be used to wrap a normal gate with a noise process.

Noisy measurements

NoisyBellMeasureNoisyReset performs a BellMeasurement with a chance p to report the opposite result for a coincidence measurement, and chances px, py, and pz to flip the new Bell state to (respectively) one of the other 3 Bell states.

It implements applywstatus! which enables its use with mctrajectories from QuantumClifford.