v1.8.0 - Explorable Errors
Flagship changes:
- Search for smallest logical errors directly from a circuit
- Find circuit errors that explain detector error model symptoms
- Helpful error messages when detector error model extraction fails
- Better compatibility with cirq
Notable changes:
- Added
stim.Circuit.shortest_graphlike_error
for finding the smallest set of physical errors that can cause an undetected logical error (as long as they each have at most two detection events) - Added
stim.Circuit.explain_detector_error_model_errors
for listing how detector error model symptoms match up with physical circuit error mechanisms - When
stim.Circuit.detector_error_model
fails due to an anti-commuting detector or observable, the error message now describes in great detail the involved detectors, qubits, and error sensitivities - Added several dataclasses for representing results from
stim.Circuit.explain_detector_error_model_errors
- Added
stim.Circuit.get_detector_coordinates
- Added
stim.Circuit.get_final_qubit_coordinates
- Added
stim.DetectorErrorModel.get_detecetor_coordinates
- Added
stim.Circuit.append
as a shorter more pythonic alias forappend_operation
stim.Circuit.append
now allows the targets argument to be a single target, instead a list of targetsstim.Circuit.append
verifies that a probability argument is given when appending noisy gatesstimcirq
now convertsDETECTOR
annotations (viastimcirq.DetAnnotation
)stimcirq
now convertsOBSERVABLE_INCLUDE
annotations (viastimcirq.CumulativeObservableAnnotation
)stimcirq
now convertsSHIFT_COORDS
annotations (viastimcirq.ShiftCoordsAnnotation
)stimcirq
now convertsREPEAT
blocks (viacirq.CircuitOperation
)stimcirq
now convertsMPP
measurements (viacirq.PauliMeasurementGate
) (inverted results not yet supported due to quantumlib/Cirq#4814)stimcirq
now converts operations controlled by sweep targets (viastimcirq.SweepPauli
)stimcirq
now supports cirq json serialization (viastimcirq.JSON_RESOLVER
andstimcirq.JSON_RESOLVERS_DICT
)- Fixed
stim.CircuitInstruction
,stim.GateTarget
,stim.DemTarget
,stim.DemInstruction
not being hashable - Improved documentation of the file formats for sample results
- Fixed measurement-to-detection conversion going into an infinite loop for circuits with no measurements when using file format
b8
- Development versions of stim are now automatically uploaded to pypi when changes are merged into
main