An implementation of the [belief-matching](https://arxiv.org/abs/2203.04948) decoder, which is more accurate than the MWPM decoder (its accuracy approaches that of maximum likelihood decoding). Belief-matching is an efficient decoder (expected linear time) however this implementation is not optimised for speed and is slower than [PyMatching v2](https://github.com/oscarhiggott/PyMatching).
Features
A `beliefmatching.BeliefMatching` class which can load from stim circuits and detector error models and decode shot data. Methods include:
* `beliefmatching.BeliefMatching.from_stim_circuit` which loads from a `stim.Circuit`
* `beliefmatching.BeliefMatching.from_detector_error_model` which loads from a `stim.DetectorErrorModel`
* `beliefmatching.BeliefMatching.decode` which decodes a single shot of detector measurements
* `beliefmatching.BeliefMatching.decode_batch` which decodes a batch of detector measurements
A `beliefmatching.BeliefMatchingSinterDecoder` class, which integrates with sinter and subclasses `sinter.Decoder`
A `beliefmatching.detector_error_model_to_check_matrices` method, which converts a `stim.DetectorErrorModel` into a representation as a collection of matrices (a `DemMatrices` dataclass).