v1.13.0 - Freed Flows
Flagship changes:
- Added support for representing and verifying stabilizer flows (
stim.Flow
,stim.Circuit.has_flow
,stim.Circuit.detecting_regions
)
Notable changes:
- New top-level methods/types:
- Added
stim.Flow
class for representing stabilizer flows - Added
stim.target_pauli
- Added
stim.target_combined_paulis
- Added
stim.PauliStringIterator
- Added
- New
stim.Circuit
methods:- Added
stim.Circuit.decomposed
- Added
stim.Circuit.detecting_regions
- Added
stim.Circuit.to_qasm
- Added
stim.Circuit.has_flow
- Added
stim.Circuit.has_all_flows
- Added
stim.Circuit.shortest_error_sat_problem
- Added
stim.Circuit.likeliest_error_sat_problem
- Added
- New
stim.GateData
methods:- Added
stim.GateData.{__eq__,__ne__,__repr__,__init__,__str__}
- Added
stim.GateData.flows
- Added
stim.GateData.generalized_inverse
- Added
stim.GateData.inverse
- Added
- New
stim.PauliString
methods:stim.PauliString.__init__
now allows sparse syntax (likestim.PauliString("-X50*Z99")
)- Added
stim.PauliString.iter_all
- Added
stim.PauliString.pauli_indices
- Added
stim.PauliString.weight
- Sped up
stim.PauliString.{after,before}
by over 10x
- New
stim.Tableau
methods:- Added
stim.Tableau.to_circuit("graph_state")
- Added
stim.Tableau.to_circuit("mpp_state")
- Added
stim.Tableau.to_circuit("mpp_state_unsigned")
- Added
stim.Tableau.to_stabilizers
- Sped up
stim.Tableau.from_stabilizers
by over 200x
- Added
- New
stim.FlipSimulator
methods:- Added
stim.FlipSimulator.broadcast_pauli_errors
- Added
- New gates:
- Added
CZSWAP
gate (with aliasSWAPCZ
) - Added
SPP
gate (generalized S gate that applies to Pauli products) - Added
SPP_DAG
(inverse ofSPP
)
- Added
- Added
sinter.FusionBlossomCompiledDecoder
, speeding up decoding with fusion blossom - Added
sinter plot --ymax
command line argument - stimcirq now converts
PAULI_CHANNEL_2
into cirq's native asymmetric channel - Added
Bloch Rotation (Euler angles)
to gate documentation - Added prebuilt wheels for python 3.12
- Tweaked
sinter plot
's marker/color ordering to increase how many curves are needed to get two curves that look similar
Notable bug fixes:
- Fixed
sinter plot --xaxis
only applying to one subplot, instead of all subplots - Fixed build-from-source not working on IBM PowerPC
- Fixed
HERALDED_PAULI_CHANNEL_1
targeting the wrong qubits (this fix was also backported to 1.12.1) - Fixed
stim.Circuit.explain_dem_errors
not supporting all gates - Fixed crumble not allowing
e
andq
to repeatedly move between layers when held down - Fixed crumble not falling back to an emulated clipboard when clipboard permissions weren't granted
Special thanks to this release's contributors:
@fdmalone
@markturner289
@mmcewen-g
@nickdgardner
@noajshu
@tomirendo