v8.1.20 - PennyLane wire-remap fix, depolarizing noise channel fix
Both bugs found via independent fuzz testing on Colab, verified directly before fixing.
Fixed
from_pennylane/run_pennylane_circuitsilently renumbered qubits whenever wires weren't touched in ascending order — bothqml.to_openqasmand the oldertape.to_openqasm()number exported QASM qubits by first-touch order, not actual wire index. Fuzz test (20 random circuits, 4 wires touched in random order): 9/20 matched PennyLane's own result before this fix, 20/20 after. Fixed by passing an explicitwires=argument to force true wire order into the export.NoiseModel.apply_to_sv'sdepolarizingchannel (andcombined's depolarizing sub-channel) picked X/Y/Z using thresholdsp/3,2p/3against a draw uniform on the full[0,1)range, instead of the fixed1/3,2/3— skewed every depolarizing circuit heavily toward Z regardless ofp(verified: atp=0.3,P(Z|fire)=80%instead of the documented 33.3%, confirmed both via isolated branch-logic trace and full statevector simulation).
Tracked, not fixed here
- Unrecognized gate names are silently dropped everywhere in the simulator instead of raising — a breaking-change decision, tracked in #4.