deltakit.circuit.noise_profile_with_inverted_noise#

deltakit.circuit.noise_profile_with_inverted_noise(target_gate_t: type[Gate] | None = None, target_noise_generator: Callable[[Sequence[Qubit | T]], Sequence[PauliXError[T] | PauliYError[T] | PauliZError[T] | PauliChannel1[T] | PauliChannel2[T] | Depolarise1[T] | Depolarise2[T] | CorrelatedError[T] | ElseCorrelatedError[T] | Leakage | Relax]] | None = None, inverse_noise_generator: Callable[[Sequence[Qubit | T]], Sequence[PauliXError[T] | PauliYError[T] | PauliZError[T] | PauliChannel1[T] | PauliChannel2[T] | Depolarise1[T] | Depolarise2[T] | CorrelatedError[T] | ElseCorrelatedError[T] | Leakage | Relax]] | None = None) Callable[[NoiseContext], Sequence[PauliXError[T] | PauliYError[T] | PauliZError[T] | PauliChannel1[T] | PauliChannel2[T] | Depolarise1[T] | Depolarise2[T] | CorrelatedError[T] | ElseCorrelatedError[T] | Leakage | Relax]]#

Generate a noise profile for a given gate, with additional noise across all other qubits in the circuit that are not operated on by the given gate in a given gate layer

Parameters:
  • target_gate (Optional[Type[Gate]]) – The gate type over which noise should be applied. If None inverse_noise_generator will be projected over all qubits that are not acted upon in the given gate layer

  • target_noise_generator (Optional[NoiseChannelGenT]) – A callable that can be used to construct a given noise channel type with a predetermined error probability (or set of probabilities) that should be applied to qubits acted upon by the target_gate. If None, no noise channels will be emitted on the target qubits.

  • inverse_noise_generator (Optional[NoiseChannelGenT]) – A callable that can be used to construct a given noise channel type with a predetermined error probability (or set of probabilities) that should be applied to all qubits in the circuit that are not operated on by target_gate in this gate layer. If None, no noise channels will be emitted. If target_gate is None the callable will be projected over all qubits that are not acted upon in the given gate layer.

Returns:

The noise profile that can be passed to Circuit.apply_gate_noise so as to apply a given error profile over target_gate and another on all other qubits in the circuit that are not operated on by target_gate in a given gate layer

Return type:

Callable[[NoiseContext], Sequence[_NoiseChannel]]