0.20.0 - 2026-06-23¶
Deprecated¶
The default value for the inject noise site for the
generate_boxing_pass_manager,AddInjectNoise, andInjectNoisehas been updated from'before'toNone, which results in a future warning and sets the value to'before'. In a future release, the default will be updated to'after'. (#372)
Added¶
Added support for propagating Pauli twirls past single-qubit Clifford gates (
s,sx,sdg,sxdg, and compositions withh) and through single-qubit rotations (rz,p,rx) at Clifford angles when they appear between entangling gates inside aTwirlbox. (#351)Exposed three primitives that together let consumers of
build()evaluate deterministic template parameters (e.g.,RZZangles) without invokingSamplex.sample:Samplex.param_table— return the underlyingParameterExpressionTable.Samplex.passthrough_params— a tuple(template_idxs, expression_idxs)mapping each passthrough template parameter to its expression-table index.ParameterExpressionTable.evaluate— gained an optionalindicesargument so callers can evaluate only a chosen subset of the table’s expressions.
(#367)
Random phases are now applied to qubits after mid-circuit measurement twirling. (#369)
Added reset twirling. Rather than propagating virtual registers, a reset in a twirl‑annotated box discards them and instead samples and injects a new random phase following the reset. (#371)
Changed¶
Twirl emissions are now inserted at the easy-hard boundary of boxes with a
Twirlannotation"left"dressing when building. Previously, they were inserted after the content of the box. (#368)
Improved¶
Measurement twirling is now implemented using virtual gate propagation. A virtual Pauli is propagated past a measure by discarding its
zcomponent, while propagating itsxcomponent and recording it as a bit flip. Previously, measurement twirling was implemented by collecting bit flips associated with virtual gates exclusively in the right hand side of a left-dressed box. The new approach allows for more flexible measurement twirling, e.g., sequential measurements of the same qubit to different clbits in the same box and measurement twirling in right-dressed boxes. (#369)Removed the restriction of having a single entangler type when using
Group.local_c1. (#370)