Expose error model sparsification to python module, update sinter decoders dict#257
Merged
Conversation
mhucka
reviewed
Jun 11, 2026
mhucka
left a comment
Contributor
There was a problem hiding this comment.
I'm not qualified to evaluate the algorithmic or theoretical correctness, but I tried to look at this from the a basic code perspective. I had a couple of minor items, noted in-line.
In addition, one thing that I don't see (and this may just be due to ignorance of Tesseract Decoder) is an update to the .pyi files. This PR does seem to introduce new properties on some objects, which suggests the .pyi files may become out of date. Not 100% sure – just flagging it for your attention.
mhucka
approved these changes
Jun 12, 2026
Exposes the per-shot error model sparsification functionality (added in PR 254) to the Python module and Sinter compatibility layer. Changes: - Moved the sparsify reactivate limit (M) heuristic calculation from the CLI to `TesseractConfig::get_sparsify_reactivate_limit()` in C++ core. - Added validation for sparsification parameters in decoder initialization. - Simplified CLI sparsification parameter resolution. - Bound sparsification parameters (`sparsify_errors`, `sparsify_base_degree`, `sparsify_max_degree`, `sparsify_reactivate_limit`) and the heuristic resolution method in `TesseractConfig` Python bindings. - Extended `TesseractSinterDecoder` to support sparsification config, maintaining pickling/serialization compatibility for distributed Sinter runs. - Registered new sparsified decoders in Sinter decoders dictionary: `tesseract-long-beam-sparsify3`, `tesseract-long-beam-sparsify2`, `tesseract-short-beam-sparsify3`, and `tesseract-short-beam-sparsify2`. - Added comprehensive Python unit tests for core sparsify config, validation, and Sinter end-to-end decoding. - Fixed pre-existing CMake build failure under strict compilers by upgrading external HiGHS dependency to v1.14.0. TAG=agy CONV=365755ec-6af0-4d9c-a7e2-4a363289b763
Added recommendations for setting K in various code types.
18e9b14 to
726ad20
Compare
Contributor
Author
|
Thanks Mike and Laleh for the reviews! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Exposes per-shot error model sparsification to the Python module, CLI, and Sinter compatibility layer.
Changes:
sparsify_errors,sparsify_base_degree,sparsify_max_degree, andsparsify_reactivate_limit.tesseract.suggest_sparsify_reactivate_limit(num_detectors, sparsify_base_degree)for documenting and testing the built-in heuristic.sparsify_reactivate_limit == -1only when preparing the decoder, and reports the effective resolved value in CLI stats output.>= -1.--sparsify-reactivate-limitis preserved, while-1or an omitted value uses auto resolution at decoder initialization.--det-order-bfsremains available for the old BFS behavior.TesseractSinterDecoderto support sparsification config while preserving pickle/serialization compatibility for existing distributed Sinter runs.tesseract-long-beam-sparsify-color-code-like,tesseract-long-beam-sparsify-surface-code-like,tesseract-short-beam-sparsify-color-code-like, andtesseract-short-beam-sparsify-surface-code-like.