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.Flowclass for representing stabilizer flows - Added
stim.target_pauli - Added
stim.target_combined_paulis - Added
stim.PauliStringIterator
- Added
- New
stim.Circuitmethods:- 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.GateDatamethods:- Added
stim.GateData.{__eq__,__ne__,__repr__,__init__,__str__} - Added
stim.GateData.flows - Added
stim.GateData.generalized_inverse - Added
stim.GateData.inverse
- Added
- New
stim.PauliStringmethods: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.Tableaumethods:- 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_stabilizersby over 200x
- Added
- New
stim.FlipSimulatormethods:- Added
stim.FlipSimulator.broadcast_pauli_errors
- Added
- New gates:
- Added
CZSWAPgate (with aliasSWAPCZ) - Added
SPPgate (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 --ymaxcommand line argument - stimcirq now converts
PAULI_CHANNEL_2into 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 --xaxisonly applying to one subplot, instead of all subplots - Fixed build-from-source not working on IBM PowerPC
- Fixed
HERALDED_PAULI_CHANNEL_1targeting the wrong qubits (this fix was also backported to 1.12.1) - Fixed
stim.Circuit.explain_dem_errorsnot supporting all gates - Fixed crumble not allowing
eandqto 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