We currently need to either decompose or ignore non-graphlike errors to decode with MWPM. As pointed out by @HaoTy, however, pymatching supports correlated decoding of Y errors. We should be able to call the correlated decoder as well.
A note on implementation: pymatching only supports correlated decoding for an observable decoder constructed from a DEM, whereas qldpc currently always calls pymatching.Matching.from_check_matrix. So decoders.SinterDecoder needs to intercept the with_MWPM=True argument to call pymatching.Matching.from_detector_error_model (with enable_correlations=True).
We currently need to either decompose or ignore non-graphlike errors to decode with MWPM. As pointed out by @HaoTy, however,
pymatchingsupports correlated decoding of Y errors. We should be able to call the correlated decoder as well.A note on implementation:
pymatchingonly supports correlated decoding for an observable decoder constructed from a DEM, whereasqldpccurrently always callspymatching.Matching.from_check_matrix. Sodecoders.SinterDecoderneeds to intercept thewith_MWPM=Trueargument to callpymatching.Matching.from_detector_error_model(withenable_correlations=True).