Flagship features:
- Convert circuits into detector error models, suitable for configuring decoders with.
- Generate annotated error correction circuits using the repetition code, surface code, or color code.
Notable changes:
- Added `stim.Circuit.generated(...)` to generate common error corrected circuits.
- Added `stim.Circuit.detector_error_model(...)` to simplify circuits into detector error models.
- Added `stim.DetectorErrorModel` and related classes such as `stim.DemTarget`.
- Made inspecting `stim.Circuit`easier. You can now index into and iterate over its instructions and blocks.
- Made inspecting `stim.Tableau`easier. Added efficient methods for getting single Pauli terms or inverse terms.
- New supported circuit instructions:
- XYZ measurement/reset gates: `MX`, `MY`, `MZ`, `RX`, `RY`, `RZ`, `MRX`, `MRY`, `MRZ`
- Period 3 rotations around X+Y+Z: `C_XYZ` and `C_ZYX`.
- Ion trap gates: `SQRT_XX`, `SQRT_XX_DAG`, `SQRT_YY`, `SQRT_YY_DAG`, `SQRT_ZZ`, `SQRT_ZZ_DAG`
- Coordinate annotations: `QUBIT_COORDS` and `SHIFT_COORDS` (and `DETECTOR` now takes optional coordinate arguments).
- Custom pauli error channels: `PAULI_CHANNEL_1(x, y, z)` and `PAULI_CHANNEL_2(ix, iy, iz, xi, xx, xy, xz, yi, yx, yy, yz, zi, zx, zy, zz)`
- Increased various repetition limits from tens of millions of iterations to quintillions of iterations.
- Added `stim.TableauSimulator.state_vector` for converting the stabilizer state into a state vector.
- Created better documentation of the circuit format, the detector error model format, and supported gates in the `doc/` directory of the github repo.
- In addition to being exposed to python, error analysis now supports folding loops, decomposing errors, allowing gauge detectors, and optionally approximating disjoint error mechanisms as independent error mechanisms.