The importance-sampling runner discards any noise gate a channel injects that is not a single-qubit Pauli.
ImportanceRunner::execute_noise_gate matches only X, Y, and Z, with a bare catch-all that does nothing:
// exp/pecos-neo/src/sampling/importance_runner.rs:592-608
match gate.gate_type {
GateType::X => { self.simulator.x(&qubits); }
GateType::Y => { self.simulator.y(&qubits); }
GateType::Z => { self.simulator.z(&qubits); }
_ => {}
}
Anything else a noise channel emits -- RZ from coherent idle dephasing, H, S, or any
multi-qubit noise -- is dropped without a warning or error. The simulation runs to completion
and reports results that are quieter than the configured noise model, with nothing indicating
that noise was discarded.
This is unconditional in this runner: it does not depend on how the runner was constructed.
Impact: importance-sampled results are silently wrong for any noise model configured with
mechanisms outside single-qubit Paulis. Because importance sampling is used specifically to
estimate rare logical failures, understated noise is the failure mode that matters most.
Suggested direction: either execute the remaining gate types, or fail loudly when a noise
channel emits a gate this runner cannot represent. Silently continuing is the one option that
should be off the table.
Found while reviewing after-2q idle noise in exp/pecos-neo; not addressed there because it
is independent of that change.
The importance-sampling runner discards any noise gate a channel injects that is not a single-qubit Pauli.
ImportanceRunner::execute_noise_gatematches onlyX,Y, andZ, with a bare catch-all that does nothing:Anything else a noise channel emits --
RZfrom coherent idle dephasing,H,S, or anymulti-qubit noise -- is dropped without a warning or error. The simulation runs to completion
and reports results that are quieter than the configured noise model, with nothing indicating
that noise was discarded.
This is unconditional in this runner: it does not depend on how the runner was constructed.
Impact: importance-sampled results are silently wrong for any noise model configured with
mechanisms outside single-qubit Paulis. Because importance sampling is used specifically to
estimate rare logical failures, understated noise is the failure mode that matters most.
Suggested direction: either execute the remaining gate types, or fail loudly when a noise
channel emits a gate this runner cannot represent. Silently continuing is the one option that
should be off the table.
Found while reviewing after-2q idle noise in
exp/pecos-neo; not addressed there because itis independent of that change.