See comment 1 and comment 2.
There are essentially two capabilities we want:
- Allowing
NoiseRule to depend on the target qubits of a gate (it currently only depends on the gate name).
- Replacing, say,
DEPOLARIZE2 and PAULI_CHANNEL_2 noise with appropriate DEPOLARIZE1 and PAULI_CHANNEL_1 instructions when only one qubit is immune to noise.
Option 2 is nice because it allows users to use built-in noise models while declaring only some qubits immune to noise. Option 1 is nice because it allows for, say, non-uniform noise models (e.g., if some qubits are noisier than others).
WARNING: When option 2 is implemented, we should make sure that nothing else in the repo breaks, because some code may assume that a two-qubit gate with one immune target gets no noise.
As a possible application of this PR, we can try to:
See comment 1 and comment 2.
There are essentially two capabilities we want:
NoiseRuleto depend on the target qubits of a gate (it currently only depends on the gate name).DEPOLARIZE2andPAULI_CHANNEL_2noise with appropriateDEPOLARIZE1andPAULI_CHANNEL_1instructions when only one qubit is immune to noise.Option 2 is nice because it allows users to use built-in noise models while declaring only some qubits immune to noise. Option 1 is nice because it allows for, say, non-uniform noise models (e.g., if some qubits are noisier than others).
WARNING: When option 2 is implemented, we should make sure that nothing else in the repo breaks, because some code may assume that a two-qubit gate with one immune target gets no noise.
As a possible application of this PR, we can try to:
AlphaSyndrome(see comment), basically undoing this change.