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_errorfor 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_errorsfor listing how detector error model symptoms match up with physical circuit error mechanisms - When
stim.Circuit.detector_error_modelfails 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.appendas a shorter more pythonic alias forappend_operation stim.Circuit.appendnow allows the targets argument to be a single target, instead a list of targetsstim.Circuit.appendverifies that a probability argument is given when appending noisy gatesstimcirqnow convertsDETECTORannotations (viastimcirq.DetAnnotation)stimcirqnow convertsOBSERVABLE_INCLUDEannotations (viastimcirq.CumulativeObservableAnnotation)stimcirqnow convertsSHIFT_COORDSannotations (viastimcirq.ShiftCoordsAnnotation)stimcirqnow convertsREPEATblocks (viacirq.CircuitOperation)stimcirqnow convertsMPPmeasurements (viacirq.PauliMeasurementGate) (inverted results not yet supported due to quantumlib/Cirq#4814)stimcirqnow converts operations controlled by sweep targets (viastimcirq.SweepPauli)stimcirqnow supports cirq json serialization (viastimcirq.JSON_RESOLVERandstimcirq.JSON_RESOLVERS_DICT)- Fixed
stim.CircuitInstruction,stim.GateTarget,stim.DemTarget,stim.DemInstructionnot 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