When a noise channel injects a non-Clifford gate and the runner has no rotation executor, the gate is dropped without any diagnostic.
// exp/pecos-neo/src/runner.rs:2312-2318
// Non-Clifford gates: delegate to rotation executor
other => {
if let Some(executor) = self.rotation_executor {
executor(sim, GateId::from(other), gate.angles.as_slice(), qubits);
}
// If no rotation executor, silently skip (noise channel injected
// a gate the simulator cant handle).
}
The most direct way to hit this is coherent idle dephasing: IdleChannel in coherent mode
emits RZ(angle), so a runner built without rotation support drops every coherent dephasing
event. The configured noise model reports itself as coherent, the run succeeds, and the
results contain no coherent contribution at all.
Impact: results are quieter than the configured noise model, with no signal that anything was
discarded. A user cannot distinguish "coherent dephasing had little effect" from "coherent
dephasing was never applied".
Suggested direction: fail loudly at configuration time when a noise model can emit gates the
selected simulator cannot execute, or at minimum surface a diagnostic on the first discarded
gate. The comment already acknowledges the situation is anomalous; the code should not treat
it as routine.
Related: #436 covers an unconditional version of the same class of problem in the importance
runner.
Found while reviewing after-2q idle noise in exp/pecos-neo; not addressed there because it
is independent of that change.
When a noise channel injects a non-Clifford gate and the runner has no rotation executor, the gate is dropped without any diagnostic.
The most direct way to hit this is coherent idle dephasing:
IdleChannelin coherent modeemits
RZ(angle), so a runner built without rotation support drops every coherent dephasingevent. The configured noise model reports itself as coherent, the run succeeds, and the
results contain no coherent contribution at all.
Impact: results are quieter than the configured noise model, with no signal that anything was
discarded. A user cannot distinguish "coherent dephasing had little effect" from "coherent
dephasing was never applied".
Suggested direction: fail loudly at configuration time when a noise model can emit gates the
selected simulator cannot execute, or at minimum surface a diagnostic on the first discarded
gate. The comment already acknowledges the situation is anomalous; the code should not treat
it as routine.
Related: #436 covers an unconditional version of the same class of problem in the importance
runner.
Found while reviewing after-2q idle noise in
exp/pecos-neo; not addressed there because itis independent of that change.