Skip to content

v1.8.0 - Explorable Errors

Compare
Choose a tag to compare
@Strilanc Strilanc released this 30 Jan 08:41
· 320 commits to main since this release
a0ae2eb

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 for append_operation
  • stim.Circuit.append now allows the targets argument to be a single target, instead a list of targets
  • stim.Circuit.append verifies that a probability argument is given when appending noisy gates
  • stimcirq now converts DETECTOR annotations (via stimcirq.DetAnnotation)
  • stimcirq now converts OBSERVABLE_INCLUDE annotations (via stimcirq.CumulativeObservableAnnotation)
  • stimcirq now converts SHIFT_COORDS annotations (via stimcirq.ShiftCoordsAnnotation)
  • stimcirq now converts REPEAT blocks (via cirq.CircuitOperation)
  • stimcirq now converts MPP measurements (via cirq.PauliMeasurementGate) (inverted results not yet supported due to quantumlib/Cirq#4814)
  • stimcirq now converts operations controlled by sweep targets (via stimcirq.SweepPauli)
  • stimcirq now supports cirq json serialization (via stimcirq.JSON_RESOLVER and stimcirq.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