From aab6c0b8f4574cb36285ab5dab3fcfad0cd2b69e Mon Sep 17 00:00:00 2001 From: Chafik Boukhalfa Date: Tue, 13 Oct 2026 15:44:41 +0400 Subject: [PATCH] Prove cubic precision for arbitrary dirty cyclic inverses --- .github/workflows/dirty-cubic-precision.yml | 41 + .../LINUX314-PACKAGE.json | 39 + .../LINUX314-RESULT.json | 3764 +++++++++++++++++ .../LINUX314.log.txt | 16 + .../MACOS311-PACKAGE.json | 39 + .../MACOS311-RESULT.json | 3764 +++++++++++++++++ .../MACOS311.log.txt | 14 + .../README.md | 37 + .../SOURCE-GIT-CHECK.json | 181 + .../VALIDATION.json | 42 + research/dirty-cubic-precision/CLAIM.json | 103 + research/dirty-cubic-precision/EXPECTED.json | 3764 +++++++++++++++++ research/dirty-cubic-precision/MANIFEST.json | 39 + research/dirty-cubic-precision/NOTICE.md | 36 + research/dirty-cubic-precision/PROOF.md | 191 + research/dirty-cubic-precision/README.md | 95 + research/dirty-cubic-precision/SOURCES.json | 181 + .../dirty-cubic-precision/check_algebra.py | 63 + .../dirty-cubic-precision/check_budget.py | 39 + research/dirty-cubic-precision/core.py | 61 + research/dirty-cubic-precision/numeric.py | 63 + research/dirty-cubic-precision/symbolic.py | 45 + .../dirty-cubic-precision/test_package.py | 55 + .../vendor/628/DIRTY-PROOF.md | 128 + .../vendor/628/FACTORS.json | 402 ++ .../vendor/628/NOTICE.md | 24 + .../dirty-cubic-precision/vendor/628/PROOF.md | 269 ++ .../vendor/628/SOURCE.json | 18 + .../dirty-cubic-precision/vendor/628/check.py | 178 + .../vendor/628/check_budgets.py | 59 + .../dirty-cubic-precision/vendor/628/dirty.py | 133 + .../vendor/628/interval_kernel.py | 61 + .../dirty-cubic-precision/vendor/628/scan.py | 123 + .../vendor/628/weighted.py | 118 + .../vendor/862/NOTICE.md | 31 + .../dirty-cubic-precision/vendor/862/PROOF.md | 259 ++ .../vendor/862/SOURCE.json | 96 + .../vendor/862/budget.py | 100 + .../vendor/862/vendor/PR621-NOTICE.md | 21 + .../vendor/862/vendor/PR621-PROOF.md | 212 + .../dirty-cubic-precision/vendor/877/PROOF.md | 173 + .../vendor/877/README.md | 139 + .../vendor/877/SOURCES.json | 96 + .../dirty-cubic-precision/vendor/877/core.py | 106 + .../vendor/877/matrices.py | 124 + research/dirty-cubic-precision/verify.py | 79 + 46 files changed, 15621 insertions(+) create mode 100644 .github/workflows/dirty-cubic-precision.yml create mode 100644 research/dirty-cubic-precision-validation/LINUX314-PACKAGE.json create mode 100644 research/dirty-cubic-precision-validation/LINUX314-RESULT.json create mode 100644 research/dirty-cubic-precision-validation/LINUX314.log.txt create mode 100644 research/dirty-cubic-precision-validation/MACOS311-PACKAGE.json create mode 100644 research/dirty-cubic-precision-validation/MACOS311-RESULT.json create mode 100644 research/dirty-cubic-precision-validation/MACOS311.log.txt create mode 100644 research/dirty-cubic-precision-validation/README.md create mode 100644 research/dirty-cubic-precision-validation/SOURCE-GIT-CHECK.json create mode 100644 research/dirty-cubic-precision-validation/VALIDATION.json create mode 100644 research/dirty-cubic-precision/CLAIM.json create mode 100644 research/dirty-cubic-precision/EXPECTED.json create mode 100644 research/dirty-cubic-precision/MANIFEST.json create mode 100644 research/dirty-cubic-precision/NOTICE.md create mode 100644 research/dirty-cubic-precision/PROOF.md create mode 100644 research/dirty-cubic-precision/README.md create mode 100644 research/dirty-cubic-precision/SOURCES.json create mode 100644 research/dirty-cubic-precision/check_algebra.py create mode 100644 research/dirty-cubic-precision/check_budget.py create mode 100644 research/dirty-cubic-precision/core.py create mode 100644 research/dirty-cubic-precision/numeric.py create mode 100644 research/dirty-cubic-precision/symbolic.py create mode 100644 research/dirty-cubic-precision/test_package.py create mode 100644 research/dirty-cubic-precision/vendor/628/DIRTY-PROOF.md create mode 100644 research/dirty-cubic-precision/vendor/628/FACTORS.json create mode 100644 research/dirty-cubic-precision/vendor/628/NOTICE.md create mode 100644 research/dirty-cubic-precision/vendor/628/PROOF.md create mode 100644 research/dirty-cubic-precision/vendor/628/SOURCE.json create mode 100644 research/dirty-cubic-precision/vendor/628/check.py create mode 100644 research/dirty-cubic-precision/vendor/628/check_budgets.py create mode 100644 research/dirty-cubic-precision/vendor/628/dirty.py create mode 100644 research/dirty-cubic-precision/vendor/628/interval_kernel.py create mode 100644 research/dirty-cubic-precision/vendor/628/scan.py create mode 100644 research/dirty-cubic-precision/vendor/628/weighted.py create mode 100644 research/dirty-cubic-precision/vendor/862/NOTICE.md create mode 100644 research/dirty-cubic-precision/vendor/862/PROOF.md create mode 100644 research/dirty-cubic-precision/vendor/862/SOURCE.json create mode 100644 research/dirty-cubic-precision/vendor/862/budget.py create mode 100644 research/dirty-cubic-precision/vendor/862/vendor/PR621-NOTICE.md create mode 100644 research/dirty-cubic-precision/vendor/862/vendor/PR621-PROOF.md create mode 100644 research/dirty-cubic-precision/vendor/877/PROOF.md create mode 100644 research/dirty-cubic-precision/vendor/877/README.md create mode 100644 research/dirty-cubic-precision/vendor/877/SOURCES.json create mode 100644 research/dirty-cubic-precision/vendor/877/core.py create mode 100644 research/dirty-cubic-precision/vendor/877/matrices.py create mode 100644 research/dirty-cubic-precision/verify.py diff --git a/.github/workflows/dirty-cubic-precision.yml b/.github/workflows/dirty-cubic-precision.yml new file mode 100644 index 0000000000..3a0e9034db --- /dev/null +++ b/.github/workflows/dirty-cubic-precision.yml @@ -0,0 +1,41 @@ +name: Cubic dirty cyclic precision + +on: + workflow_dispatch: + pull_request: + paths: + - 'research/dirty-cubic-precision/**' + - '.github/workflows/dirty-cubic-precision.yml' + push: + branches: ['codex/dirty-cubic-precision-20261013'] + paths: + - 'research/dirty-cubic-precision/**' + - '.github/workflows/dirty-cubic-precision.yml' + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-latest + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: + python: ['3.11', '3.14'] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + - name: Exact free-algebra, budget and rounded-kernel replay + run: python -I -O -B research/dirty-cubic-precision/verify.py --out /tmp/dirty-cubic-math.json + - name: Package controls and read-only binding relocation + run: python -I -O -B research/dirty-cubic-precision/test_package.py --out /tmp/dirty-cubic-bindings.json + - uses: actions/upload-artifact@v4 + if: always() + with: + name: dirty-cubic-python-${{ matrix.python }} + path: | + /tmp/dirty-cubic-math.json + /tmp/dirty-cubic-bindings.json diff --git a/research/dirty-cubic-precision-validation/LINUX314-PACKAGE.json b/research/dirty-cubic-precision-validation/LINUX314-PACKAGE.json new file mode 100644 index 0000000000..5873c1b5b7 --- /dev/null +++ b/research/dirty-cubic-precision-validation/LINUX314-PACKAGE.json @@ -0,0 +1,39 @@ +{ + "status": "PASS_PACKAGE_BINDINGS", + "rejected": [ + { + "control": "core", + "rejected": "ValueError: package hash: core.py" + }, + { + "control": "fixture", + "rejected": "ValueError: package hash: vendor/628/FACTORS.json" + }, + { + "control": "expected", + "rejected": "ValueError: package hash: EXPECTED.json" + }, + { + "control": "source_pins", + "rejected": "ValueError: package hash: SOURCES.json" + }, + { + "control": "missing_source", + "rejected": "ValueError: package file coverage" + }, + { + "control": "extra_file", + "rejected": "ValueError: package file coverage" + }, + { + "control": "manifest_path", + "rejected": "ValueError: package file coverage" + }, + { + "control": "resigned_fixture", + "rejected": "ValueError: retained source SHA: vendor/628/FACTORS.json" + } + ], + "read_only_relocation": true, + "scope": "Integrity and source pin checks only; mathematical replay is verify.py without --bindings-only." +} diff --git a/research/dirty-cubic-precision-validation/LINUX314-RESULT.json b/research/dirty-cubic-precision-validation/LINUX314-RESULT.json new file mode 100644 index 0000000000..4afd7db0f9 --- /dev/null +++ b/research/dirty-cubic-precision-validation/LINUX314-RESULT.json @@ -0,0 +1,3764 @@ +{ + "algebra": { + "dense_prefixes": [ + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 2, + "gaussian_inverse_checks": 1, + "inverse_prefix_maximum": 4, + "leaf_calls": 1, + "n": 1, + "prefix_maximum": 4, + "prefix_stream_sha256": "969a9e9e9f35f9be9f2b2241a6a1c2df623dce362d764e7013f4542f7fc7e3e1", + "sign": -1, + "subset_bound": 3, + "subword_maximum": 4, + "subwords_checked": 1 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 2, + "gaussian_inverse_checks": 1, + "inverse_prefix_maximum": 4, + "leaf_calls": 1, + "n": 1, + "prefix_maximum": 4, + "prefix_stream_sha256": "969a9e9e9f35f9be9f2b2241a6a1c2df623dce362d764e7013f4542f7fc7e3e1", + "sign": 1, + "subset_bound": 3, + "subword_maximum": 4, + "subwords_checked": 1 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 6, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 11, + "leaf_calls": 4, + "n": 2, + "prefix_maximum": 7, + "prefix_stream_sha256": "eac89db41e28af574ba9f40eccea77b4828aa4c4091a1b6a11fc27cfe33631f2", + "sign": -1, + "subset_bound": 6, + "subword_maximum": 11, + "subwords_checked": 10 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 6, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 11, + "leaf_calls": 4, + "n": 2, + "prefix_maximum": 11, + "prefix_stream_sha256": "7d85403a8a334c0295e5d0fdec737a5a39083d94a8305222dce49ec6cf56960d", + "sign": 1, + "subset_bound": 6, + "subword_maximum": 11, + "subwords_checked": 10 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 18, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 17, + "leaf_calls": 10, + "n": 3, + "prefix_maximum": 9, + "prefix_stream_sha256": "1200f51284065a4887135ac46ca73760aea4aaba51ad59c5c0b9171e1ae81d00", + "sign": -1, + "subset_bound": 8, + "subword_maximum": 17, + "subwords_checked": 55 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 18, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 17, + "leaf_calls": 10, + "n": 3, + "prefix_maximum": 17, + "prefix_stream_sha256": "9788c364b5da679492b555e0513a3a3350b5bf3e6e12fc4f174b0bac1212e056", + "sign": 1, + "subset_bound": 8, + "subword_maximum": 17, + "subwords_checked": 55 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 129, + "leaf_calls": 28, + "n": 5, + "prefix_maximum": 69, + "prefix_stream_sha256": "efc540e17ae923e82351ad0a42a138dff7242bed65027d79ab6edfef0b411fba", + "sign": -1, + "subset_bound": 68, + "subword_maximum": 129, + "subwords_checked": 406 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 129, + "leaf_calls": 28, + "n": 5, + "prefix_maximum": 116, + "prefix_stream_sha256": "69efb721a8828a658a04e2b01b7a0d09f375c68ffc33df151618930d2d652ef2", + "sign": 1, + "subset_bound": 68, + "subword_maximum": 129, + "subwords_checked": 406 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 177, + "leaf_calls": 64, + "n": 8, + "prefix_maximum": 97, + "prefix_stream_sha256": "c007ad9fa0a53c137cc65401ea783b64444da5e3f4ea5008aa3c75d761534b2b", + "sign": -1, + "subset_bound": 176, + "subword_maximum": 177, + "subwords_checked": 2080 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 177, + "leaf_calls": 64, + "n": 8, + "prefix_maximum": 117, + "prefix_stream_sha256": "8d11037a48e7cb01db5ee69004f805e3185d10d2ef6083cf6ef33c96ac98113c", + "sign": 1, + "subset_bound": 176, + "subword_maximum": 209, + "subwords_checked": 2080 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 50061, + "leaf_calls": 232, + "n": 15, + "prefix_maximum": 19937, + "prefix_stream_sha256": "f128808bec62ce05767af3cb9b150a268f8137e57cd239cc5ae8e7151ab1fecd", + "sign": -1, + "subset_bound": 35831808, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 50061, + "leaf_calls": 232, + "n": 15, + "prefix_maximum": 21625, + "prefix_stream_sha256": "527623aa8431c1bb6e806c76ebca69bd688f2dd1d12acc92b8a89d5fff87ec67", + "sign": 1, + "subset_bound": 35831808, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 1153, + "leaf_calls": 256, + "n": 16, + "prefix_maximum": 86, + "prefix_stream_sha256": "0d481c556bbc774b98d807bcd1edf6a8dd0f47d05ef581aa52b7d59ec9deee80", + "sign": -1, + "subset_bound": 1679616, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 1153, + "leaf_calls": 256, + "n": 16, + "prefix_maximum": 86, + "prefix_stream_sha256": "40250a806e16655e476f9dc257e76431a7cc025577277757ae01cc9de2d53c69", + "sign": 1, + "subset_bound": 1679616, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 486, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 119703745, + "leaf_calls": 976, + "n": 31, + "prefix_maximum": 79626241, + "prefix_stream_sha256": "2cac4de6f3c493ce44a6aa68090d6dfa95867d8ef7fb767b6af7c0a7631ad742", + "sign": -1, + "subset_bound": 641959232274432, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 486, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 119703745, + "leaf_calls": 976, + "n": 31, + "prefix_maximum": 79628071, + "prefix_stream_sha256": "cbc1c2f1abb4c79aa7d2c33d4df076d8bf01cb1d3e041597d18e9b5a9a9522c5", + "sign": 1, + "subset_bound": 641959232274432, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 1458, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 23224321, + "leaf_calls": 4000, + "n": 63, + "prefix_maximum": 4386947, + "prefix_stream_sha256": "c81c263a55babf19896fd015f934602b8371de4331453aa64b0cb7ed089f2f75", + "sign": -1, + "subset_bound": 19057724291985084082777227264, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 1458, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 23224321, + "leaf_calls": 4000, + "n": 63, + "prefix_maximum": 4386947, + "prefix_stream_sha256": "b359eb73a856e8f1407eff002eec1ae7b916fd35d53f11845d6f6cbe457172aa", + "sign": 1, + "subset_bound": 19057724291985084082777227264, + "subword_maximum": 1, + "subwords_checked": 0 + } + ], + "frozen_words": [ + { + "leaves": 1, + "n": 1, + "sha256": "57a72175c72e98144f507728f8ea97a5d4acb234d745690c00f743d1a59d5611", + "sign": -1 + }, + { + "leaves": 1, + "n": 1, + "sha256": "5518a65c40f6c5664df81f579e5ce430d9d47106f63a5940b9025b825379ec3e", + "sign": 1 + }, + { + "leaves": 4, + "n": 2, + "sha256": "6719b802844ca359533f48de09a8a62c03ec75e009626f6ca2ef31ae5e11700a", + "sign": -1 + }, + { + "leaves": 4, + "n": 2, + "sha256": "a3fc004bbb17a4d13fd404e6c27d3c8b4c6b34e6245c868f0b043ec3268dd8a2", + "sign": 1 + }, + { + "leaves": 10, + "n": 3, + "sha256": "593cfabd15798f1f91cb8f227762dfbd73e65722b5082d51567e99208daa61db", + "sign": -1 + }, + { + "leaves": 10, + "n": 3, + "sha256": "a0ca2ce8a9c8ba8fb504de1dc113e54c016aa8f4032647cb30a4ac95e8989ca7", + "sign": 1 + }, + { + "leaves": 16, + "n": 4, + "sha256": "d73513a7343590a8c115aeb2324c58cfd53f98f24a78d6d3f018126624e97813", + "sign": -1 + }, + { + "leaves": 16, + "n": 4, + "sha256": "41b90f5721c4ee01df2020b39aa7d4756d2bf887b33e055562255ab3e9fbdc5f", + "sign": 1 + }, + { + "leaves": 28, + "n": 5, + "sha256": "15cf044dd7b08cc266e65a5683efcde475f175f01bd67ce72ca246e1621fe921", + "sign": -1 + }, + { + "leaves": 28, + "n": 5, + "sha256": "737a9a072d0f39ce2aac2dc728c27976b07d6a2fb029ef037ed64e00dc892779", + "sign": 1 + }, + { + "leaves": 40, + "n": 6, + "sha256": "4289b062a0d391739d931f90103a6b805a5cddaea5f53265319b0e3af82cc762", + "sign": -1 + }, + { + "leaves": 40, + "n": 6, + "sha256": "fbe10e6d44342b8c0a1430716091674abfea1a6af40f83903eba90e39dec0fb7", + "sign": 1 + }, + { + "leaves": 52, + "n": 7, + "sha256": "89e1d9fce3a18bde5162327b53a37e177718157a4378068c8cf88c96e90a1d2f", + "sign": -1 + }, + { + "leaves": 52, + "n": 7, + "sha256": "29728ca158ddd42dfde41586046fcdd190f22033d49d4426e4ab84ddd3d8131c", + "sign": 1 + }, + { + "leaves": 64, + "n": 8, + "sha256": "e57f879002a02a4f28fad6fe861fd83af8b4891b317a3e39cf2885ac71426c11", + "sign": -1 + }, + { + "leaves": 64, + "n": 8, + "sha256": "ed51a030d96d00ce14f5dabfbbf24c76387f0cefb54bf925802ada9e0f00e81c", + "sign": 1 + }, + { + "leaves": 88, + "n": 9, + "sha256": "fa0265a6cadce9523bdb222d08478d12f51a1c1d5eac737e5c2c874d788f529f", + "sign": -1 + }, + { + "leaves": 88, + "n": 9, + "sha256": "a76b9aaaedf2c7bc7b2586e8e999d124e872d5a66b0cfdeb6aab47942bb45259", + "sign": 1 + }, + { + "leaves": 112, + "n": 10, + "sha256": "bf9a14999bf3517b3a635db96667b59f5c2c7d7f9d54ce2cb45579e25069bd61", + "sign": -1 + }, + { + "leaves": 112, + "n": 10, + "sha256": "a0f88b03088b26f601b530d31f268978c22e90be184234aea77e2c4ffc718235", + "sign": 1 + }, + { + "leaves": 136, + "n": 11, + "sha256": "50ec504c43b1fb3a62c4cdcf1403f3466a75defd0e2a64835af572a5ba469b60", + "sign": -1 + }, + { + "leaves": 136, + "n": 11, + "sha256": "91c1cd0e89786c18e1909ec892ee44a3786bdb83b36df57344d4369ad345d8da", + "sign": 1 + }, + { + "leaves": 160, + "n": 12, + "sha256": "2394bde92b9b6dc1f61714edfeb7c97073b62047d90398b3a5dbf4222565b2d3", + "sign": -1 + }, + { + "leaves": 160, + "n": 12, + "sha256": "d399f15fd8f820576d50bceedcb5f00947084a356e1a1058078e96bda4827afe", + "sign": 1 + }, + { + "leaves": 184, + "n": 13, + "sha256": "c27e387663e2854402093f67f697a5ce861128ee49144d41f6f2c663bafb0b66", + "sign": -1 + }, + { + "leaves": 184, + "n": 13, + "sha256": "af062aa6d7724c591295d580d966ffd003471f0f74e548875da10bd5627824dc", + "sign": 1 + }, + { + "leaves": 208, + "n": 14, + "sha256": "c5844b19ef69984c7968212ba3d011766ab1226b5b782a349d515733f33190f0", + "sign": -1 + }, + { + "leaves": 208, + "n": 14, + "sha256": "7bfcdced80610276c437b9f567ef75717d4b1ad4392f9ee67ff8b7a69c7f4723", + "sign": 1 + }, + { + "leaves": 232, + "n": 15, + "sha256": "dcf775c02489e6d3383c7329390c4c3519d121334e7841b9dda1996dde58c74b", + "sign": -1 + }, + { + "leaves": 232, + "n": 15, + "sha256": "5fe22f1790e7ca27596d70379117f082b5982ebf5ca9e78b254d125604676d2c", + "sign": 1 + }, + { + "leaves": 256, + "n": 16, + "sha256": "622b6b15d0e265153234d4b78913b197bbdbd9a45471f8be7a23713578cfd8b9", + "sign": -1 + }, + { + "leaves": 256, + "n": 16, + "sha256": "2cf6b46f4ca5431ef6ec996251978a4dc92037e9566a0e456eefc6b132a2c4c0", + "sign": 1 + }, + { + "leaves": 304, + "n": 17, + "sha256": "c7dd0eb36d39a0180d4443539b53812ff63f18a96a43214799dc30b2d45b77d1", + "sign": -1 + }, + { + "leaves": 304, + "n": 17, + "sha256": "8ef3935bd36f1016efa46c281fd2c47c3d138107a51882facc31b2ab03a1a1e2", + "sign": 1 + }, + { + "leaves": 352, + "n": 18, + "sha256": "1086f3cb15bc46e102c43596a1346a0b3757146926932dc48cbfa511c0c75df0", + "sign": -1 + }, + { + "leaves": 352, + "n": 18, + "sha256": "1c0ddd8a0cd6f10ddf2aedf002cf3a1c630235f64a559c2b0ad11f5014d98f4e", + "sign": 1 + }, + { + "leaves": 400, + "n": 19, + "sha256": "45e67b832de0b4e9f8d5622421e1ffd66310fd34dbee674e3c1017337f726092", + "sign": -1 + }, + { + "leaves": 400, + "n": 19, + "sha256": "20d69d061f4751e8b462b56b74c152adc25b02bd7ce7386303431e8c4391e1ae", + "sign": 1 + }, + { + "leaves": 448, + "n": 20, + "sha256": "e31a26ad7b4270dbe130e41237990b921e2ca00ccd5933cf3761dac83926da49", + "sign": -1 + }, + { + "leaves": 448, + "n": 20, + "sha256": "2fc2f530281cd475f8ffc9d76d1f6b7d955c1939c3a004d46b14847b398722b4", + "sign": 1 + }, + { + "leaves": 496, + "n": 21, + "sha256": "b649b796780f8781c62d55472db754adb269079c3777b115c6f8a474d71a7e02", + "sign": -1 + }, + { + "leaves": 496, + "n": 21, + "sha256": "5f116b0b9700571d1ccdb9e24addc233041350af564fe26350616c055fa0510e", + "sign": 1 + }, + { + "leaves": 544, + "n": 22, + "sha256": "f01fdb3bafd20ddde479b578aa05ee23eea661f6082940d15c204e521fbfa3a9", + "sign": -1 + }, + { + "leaves": 544, + "n": 22, + "sha256": "fed64d02a326303a250f657f01574e9a5b40df831bb9c26d5b8ac2c9c901b1bc", + "sign": 1 + }, + { + "leaves": 592, + "n": 23, + "sha256": "e4eb19b6efe4892f40c2e0f410afe3e15047718fb7f43c65abfdd387795c3e61", + "sign": -1 + }, + { + "leaves": 592, + "n": 23, + "sha256": "a35279d7dc7c344ab5fab36af775b99540cf3769b9e1b7ce069165687b255c19", + "sign": 1 + }, + { + "leaves": 640, + "n": 24, + "sha256": "ade1d38fc13e7bf4e402fd4cf2af272edfbfbb2e642a8af7e8697b10800de961", + "sign": -1 + }, + { + "leaves": 640, + "n": 24, + "sha256": "6ec9ec08c5c91e26fbf3aa473fb0bd7a31f0b2b93f53c52437c88756cfbb8a69", + "sign": 1 + }, + { + "leaves": 688, + "n": 25, + "sha256": "fc8f67b8cbcef9c3fac34856688fe6ab6c007c4219b2780a9379021393666782", + "sign": -1 + }, + { + "leaves": 688, + "n": 25, + "sha256": "ce46ad3c23420bff7a867c831dcac3b2d0cba5d953ec5e5f8d4baf521bc6ae4b", + "sign": 1 + }, + { + "leaves": 736, + "n": 26, + "sha256": "c7675f623de8c3987a85ec03905e74bfd9310be76ba2d7fae364f9d62a46115c", + "sign": -1 + }, + { + "leaves": 736, + "n": 26, + "sha256": "c6398a35d2ffaf326f8edf21e0de6f6a262c1f30f47c3027e91280f9a748fd65", + "sign": 1 + }, + { + "leaves": 784, + "n": 27, + "sha256": "071cb19cff89b5e4feda33d5dc3973234c7287c1a16b6c8ce5790f6ab18cd5e7", + "sign": -1 + }, + { + "leaves": 784, + "n": 27, + "sha256": "f4bb36c2aa49abd7d83c622e3d845d165c08cb36613f73f9ab18cb8e7aeb7901", + "sign": 1 + }, + { + "leaves": 832, + "n": 28, + "sha256": "f99251fbacdf30b199f9e1fd30cf504368fd1548f648c98d4298ac338e4ac98b", + "sign": -1 + }, + { + "leaves": 832, + "n": 28, + "sha256": "25a3c3d585c1d714525027a51eff5734390228d773c880c3aa6d8ba49ead89cb", + "sign": 1 + }, + { + "leaves": 880, + "n": 29, + "sha256": "bc8b9d4f48a595138bd4c9cc885106f33cefa8bb9b42d3cfea61f6e4ad20f14c", + "sign": -1 + }, + { + "leaves": 880, + "n": 29, + "sha256": "cdcc821d51b20710fc398e4eca7ecab1412eccc8c7a59b8bb0bbb682431c527d", + "sign": 1 + }, + { + "leaves": 928, + "n": 30, + "sha256": "8fca523b14cb4afa288ed9f3d463036a0e6a37b76d3ea10f148cec8067d8abc7", + "sign": -1 + }, + { + "leaves": 928, + "n": 30, + "sha256": "bc524d20e396f4ddcc0fd5cb8a622d38590807f9fe50d211fa1e46c39a5773fe", + "sign": 1 + }, + { + "leaves": 976, + "n": 31, + "sha256": "55c9af10202e51bdd5602aa9ee8b0dfdf2354179a2e1334833d3c13ffd8d345e", + "sign": -1 + }, + { + "leaves": 976, + "n": 31, + "sha256": "c73c078b0c138d6a0b27bad46f1555ca3309bc048da7998f0f8cbf291366302e", + "sign": 1 + }, + { + "leaves": 1024, + "n": 32, + "sha256": "1447cf76542aab66d66bbf568427dcef5d6ee1ac45adce87fa41061b1175696f", + "sign": -1 + }, + { + "leaves": 1024, + "n": 32, + "sha256": "0805ba64ee7dd3fec7ee1bb57f711d88eea9889e69946ccedadeb535d84f4acb", + "sign": 1 + }, + { + "leaves": 1120, + "n": 33, + "sha256": "aafb7fac7712d77b82ddeaaa5556959150ecf99b9225d0525ac9ce8a6be41bac", + "sign": -1 + }, + { + "leaves": 1120, + "n": 33, + "sha256": "d130fae7b93024789ba31ac9ac9e807d35d40af4e0b015244e93eaf3c09baf45", + "sign": 1 + }, + { + "leaves": 1216, + "n": 34, + "sha256": "19684f5487c8b74ba0660b600a75d6d5d415f9b4c6224395b54d599e2a1aa06e", + "sign": -1 + }, + { + "leaves": 1216, + "n": 34, + "sha256": "a5e0077952eee232b87cd9352b48bd2d2702a5f93eaecfc0054aa5a1f8514b5d", + "sign": 1 + }, + { + "leaves": 1312, + "n": 35, + "sha256": "cb53f0f2aec5dbb112650c783f836c94a7ac882a1639f5025c1282e8875ac8d3", + "sign": -1 + }, + { + "leaves": 1312, + "n": 35, + "sha256": "2d5e45b8739172817ce82e157a211dac4d689cf517e2c65e017d67c0ff4c3d31", + "sign": 1 + }, + { + "leaves": 1408, + "n": 36, + "sha256": "d058b9d09e4ce4614d158fc841df70dcf69628cca09de36dc2bd13db41642bca", + "sign": -1 + }, + { + "leaves": 1408, + "n": 36, + "sha256": "477fbd228d110a5dea53f8554e6d5597f0067cba1adfcd4017f29ffb917ff762", + "sign": 1 + }, + { + "leaves": 1504, + "n": 37, + "sha256": "90cbc7e0bef523387cbba2ef2c5dd08ccf57e6dc20d929a7e1d9a4c0bd775d52", + "sign": -1 + }, + { + "leaves": 1504, + "n": 37, + "sha256": "6487bf71650bfb1161d321262d449e1f7ba250ddf84eb5756fbed3f570b21e86", + "sign": 1 + }, + { + "leaves": 1600, + "n": 38, + "sha256": "6082cf32625a6db4095f9a1c0d2330f8dc2e4e5d52773ae70c554667ce54bc2d", + "sign": -1 + }, + { + "leaves": 1600, + "n": 38, + "sha256": "40fb4922187529b061630bed241e65287bb3f3f5946dce00e66b4b1808312fbf", + "sign": 1 + }, + { + "leaves": 1696, + "n": 39, + "sha256": "dc8f7c619008f252a596e7ccf8137f43e0e94b69c733eaac337dce3184ffc4c5", + "sign": -1 + }, + { + "leaves": 1696, + "n": 39, + "sha256": "3c95bddbe35d0797b3b9486df74fb5f876c5872a656646898b5dc337afa9ca3d", + "sign": 1 + }, + { + "leaves": 1792, + "n": 40, + "sha256": "3693da491ed861a867f88209b073efa6db79f02ba13b130658e53a4a69525079", + "sign": -1 + }, + { + "leaves": 1792, + "n": 40, + "sha256": "9252cd2dae06d5862c6509052dd88009c13b097067a0a6ef975e154bdb854345", + "sign": 1 + }, + { + "leaves": 1888, + "n": 41, + "sha256": "69d8487dad1c5c61cb0f5f78f1b3bcdfdf766855000252235bd20fbf2e5da4ea", + "sign": -1 + }, + { + "leaves": 1888, + "n": 41, + "sha256": "319c4fa082995ac9f6245fd197b1f48c5a7b1cd483e046efac4dd3776a132fbc", + "sign": 1 + }, + { + "leaves": 1984, + "n": 42, + "sha256": "13978d8dbc33863fdc524aac4758b20567f90e19ac56bf8d6b5a9d9ca6daee1e", + "sign": -1 + }, + { + "leaves": 1984, + "n": 42, + "sha256": "27065f6be5e4e334079584d57eebf6b5d02e55ae9ca515e36c6cbee0da330dbd", + "sign": 1 + }, + { + "leaves": 2080, + "n": 43, + "sha256": "dfdaced2d8b6bd668060be19d12a587ea6afb7b26b07960a2cce3900bfda7750", + "sign": -1 + }, + { + "leaves": 2080, + "n": 43, + "sha256": "d8368f40edf1e41dd5e8a37b63000488c590f55590f68fabea92210535969696", + "sign": 1 + }, + { + "leaves": 2176, + "n": 44, + "sha256": "944d2893c1c91427fe25e7e1eb01b0058c6b7db3af74a5c4c14504707fd02c61", + "sign": -1 + }, + { + "leaves": 2176, + "n": 44, + "sha256": "1e657354e50c2a8c80210b1f72d8aa6a1afa3d63f5a25599720d0d4c40b84f1f", + "sign": 1 + }, + { + "leaves": 2272, + "n": 45, + "sha256": "01f9876d3d124ec583c53b8290a2e3dd17ad126611431eb51ca3777e5a9155d2", + "sign": -1 + }, + { + "leaves": 2272, + "n": 45, + "sha256": "4fbf4039a0e5a36af7933568c83ace2ae86315b2740ef74084faba073bc553b1", + "sign": 1 + }, + { + "leaves": 2368, + "n": 46, + "sha256": "61b252e946ed6ee3b371a7bf7a708c191d732adf37b38bfc6ee0e411bc5eb743", + "sign": -1 + }, + { + "leaves": 2368, + "n": 46, + "sha256": "efaec14d15e65276c1fea68a5feed7af27b29dc2900abeb7cca78c3cf2ab4e2c", + "sign": 1 + }, + { + "leaves": 2464, + "n": 47, + "sha256": "61738fb80569fb0513574d007b6a51b99591a114d34aa261b2d06a970d60fa7f", + "sign": -1 + }, + { + "leaves": 2464, + "n": 47, + "sha256": "f4ded0cef26e0ae7d0f0166d0caa11409c1264bd2d906fee57ed683dfd6fa003", + "sign": 1 + }, + { + "leaves": 2560, + "n": 48, + "sha256": "f63c4528ca0ad76482d24039ae2f9fc8b5893b745ff3a06d14bd580896f06adf", + "sign": -1 + }, + { + "leaves": 2560, + "n": 48, + "sha256": "e47e70144a0317d923c65eda9ddf2ea88ec4222a0882ffdf269737bb5906bd08", + "sign": 1 + }, + { + "leaves": 2656, + "n": 49, + "sha256": "9dc68249e130844080971e44904bc488e5cd9bb204447787f9f43b182703ee89", + "sign": -1 + }, + { + "leaves": 2656, + "n": 49, + "sha256": "ae192c0f911feb190e38c8ad3ef15e6d5061541ff13ab5342d1b966e3c8263f4", + "sign": 1 + }, + { + "leaves": 2752, + "n": 50, + "sha256": "1bc5f639709b697a0597417150b8db2a9df612fb7a1d73e7afd1a1e5d8a413f4", + "sign": -1 + }, + { + "leaves": 2752, + "n": 50, + "sha256": "6072d55270511d2364454e99714934697c164fe7c4d57054ec3cd8fc129d5d4b", + "sign": 1 + }, + { + "leaves": 2848, + "n": 51, + "sha256": "2ba069f5ec9fae67d10055b53b5591726912f21c15c86bf12d952736eeb87c86", + "sign": -1 + }, + { + "leaves": 2848, + "n": 51, + "sha256": "ecf6846c94b37be9be96c0966367b6427b4afb9002e9331171a299d60bb68665", + "sign": 1 + }, + { + "leaves": 2944, + "n": 52, + "sha256": "5db8da0c3db9f5c42ab8c187b34859b5cba91cba2970990941a83bba7da141a5", + "sign": -1 + }, + { + "leaves": 2944, + "n": 52, + "sha256": "b6d6680df8a14a455408b9c4cab20c92eaccd7eab064c78946183b84f277799b", + "sign": 1 + }, + { + "leaves": 3040, + "n": 53, + "sha256": "bc1d9523337b7540cc99c808d1ca414b70f396236955e4f95690c4cf5b8d2932", + "sign": -1 + }, + { + "leaves": 3040, + "n": 53, + "sha256": "76f993e9538c8cb9f1dee6ee51470c56309ee13f200d7a08a88854471f76c8ff", + "sign": 1 + }, + { + "leaves": 3136, + "n": 54, + "sha256": "17803879e0420556ecd1df2f9d42409c73394cae6f45bce3dda0d2f5d3d33b99", + "sign": -1 + }, + { + "leaves": 3136, + "n": 54, + "sha256": "6535d843bde1e81e1ebfa67b924e578a4beefc351b1b5efe5524babc8a4fffd4", + "sign": 1 + }, + { + "leaves": 3232, + "n": 55, + "sha256": "d40fdba8e2599c6c66e63300c68aad1cd8f3990030697661a7e6c389931ead3e", + "sign": -1 + }, + { + "leaves": 3232, + "n": 55, + "sha256": "9fb4c9b7c83c87344a9f695239a1e04c1648b8db1980893d83bf66aa82cdcee0", + "sign": 1 + }, + { + "leaves": 3328, + "n": 56, + "sha256": "26ea3ff57d6482824687229f358b29e1334c987cf521a2afb728c6052e607c2a", + "sign": -1 + }, + { + "leaves": 3328, + "n": 56, + "sha256": "162d2ebc7d9ec9b0b2e8bb040a8df78926b3385ae8e9a12210d2e885af3cf207", + "sign": 1 + }, + { + "leaves": 3424, + "n": 57, + "sha256": "48924f2a448e85bc6ce7a179f738611525cd6cd7bbf079f2024f699a666aef1e", + "sign": -1 + }, + { + "leaves": 3424, + "n": 57, + "sha256": "820c34b59afbd2fb7961937269eeca91fcf1e9a33cd8e853c7678edbd7cf43f8", + "sign": 1 + }, + { + "leaves": 3520, + "n": 58, + "sha256": "880411c47dc0cb3d286d49af121ae2cfdc927ce4ee7fd34e82f12e350f82f824", + "sign": -1 + }, + { + "leaves": 3520, + "n": 58, + "sha256": "13603e8b83ccff1d00903bce32b9a9ce18d81fcc64555237b785ab9710e1a04e", + "sign": 1 + }, + { + "leaves": 3616, + "n": 59, + "sha256": "e71ffcb76ebacb398ffe44d1406a9eebf7a896d28f08702f5e01c7102d7e88c5", + "sign": -1 + }, + { + "leaves": 3616, + "n": 59, + "sha256": "6ab0397b99a371cf52e7f3677a6a76e16434effd7090c61f9f52ef3f3044bf60", + "sign": 1 + }, + { + "leaves": 3712, + "n": 60, + "sha256": "7510a93cdea03bae82862334ad3286bd294b13159ed26e013baa8159c59b5432", + "sign": -1 + }, + { + "leaves": 3712, + "n": 60, + "sha256": "4a1eb776ef26235579249a5be9ccdcbe61a9ca01da6170660b944cc4f933db32", + "sign": 1 + }, + { + "leaves": 3808, + "n": 61, + "sha256": "5183924f98929f9f779a5850904652032255dc4ee37b8315e04d4c01f1086092", + "sign": -1 + }, + { + "leaves": 3808, + "n": 61, + "sha256": "051c91294f1c5058cbb6a994a88c0dad75a6e5db49cf30e8e0781e3c03be76ce", + "sign": 1 + }, + { + "leaves": 3904, + "n": 62, + "sha256": "36df291d39b2fb9f706acd69d121e52058a88545a24193a61a93352bcc1260e2", + "sign": -1 + }, + { + "leaves": 3904, + "n": 62, + "sha256": "ee242af5a677f7ca40d6865b7743d84d6b589cbaf943de3458f2bbc9bad11a8f", + "sign": 1 + }, + { + "leaves": 4000, + "n": 63, + "sha256": "e14956d6dd085b489c373eb5e43376cdda5061c02f2f9eb9f535b0b800463753", + "sign": -1 + }, + { + "leaves": 4000, + "n": 63, + "sha256": "81282ba9c88c47fbfa32ab5f55f33cf86b7e98ca68951a8baea22eb4be6d2e90", + "sign": 1 + }, + { + "leaves": 4096, + "n": 64, + "sha256": "f0e2a579e898cbfd4829933fce3435ffc97f72d717df0c3c01227d946b8c7ee7", + "sign": -1 + }, + { + "leaves": 4096, + "n": 64, + "sha256": "b173cf4c946a5904af872fa6b6c7c8ae36bc61e7f1bc65b121e06ab4fc0d517d", + "sign": 1 + } + ], + "negative_controls": [ + { + "name": "repeated_factor_monomial", + "rejected": "('repeated or unordered factor', 2, (0, 0))" + }, + { + "name": "unordered_noncommuting_word", + "rejected": "('repeated or unordered factor', 2, (0, 1))" + }, + { + "name": "omitted_last_restore", + "rejected": "ideal product or dirty restoration mismatch" + }, + { + "name": "wrong_inverse_order", + "rejected": "ideal product or dirty restoration mismatch" + }, + { + "name": "whole_product_only_bound", + "rejected": "prefix norm bound" + }, + { + "name": "missing_feedback_smallness", + "rejected": "feedback smallness" + }, + { + "name": "corrupt_working_bits", + "rejected": "certificate fields" + }, + { + "name": "corrupt_prefix_exponent", + "rejected": "certificate fields" + }, + { + "name": "corrupt_leaf_calls", + "rejected": "certificate fields" + }, + { + "name": "corrupt_coefficient_error_exponent", + "rejected": "certificate fields" + }, + { + "name": "corrupt_input_bits", + "rejected": "integer certificate" + }, + { + "name": "unsupported_radix", + "rejected": "prime power radix >=3" + }, + { + "name": "incorrect_inverse_prefix_engine", + "rejected": "independent inverse-prefix mismatch" + } + ], + "status": "PASS" + }, + "budgets": { + "budgets_sha256": "ff3a3312ef79fb99f7e0681818ef1ae446efccfeff4dd0d31a719000e947713e", + "cases": 5220, + "comparisons_sha256": "cdf8115705e5b6403d9528c11d1afbf216d000c80a671e4adee670b82b82d455", + "radix64": [ + { + "cubic_bits": 1162553, + "input_bits": 0, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + }, + { + "cubic_bits": 1162553, + "input_bits": 160, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + }, + { + "cubic_bits": 1162553, + "input_bits": 1048576, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + } + ] + }, + "kappa": "unchanged", + "rounded_kernels": [ + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "3debaffde575d36db1f71a7143e6468ac8d4a083f5f133fe5ef92509eb4d70ce", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "45fc001914c02d73b52d63b05f033a0c25f151a7761bd7eb8ef74c0e76918db1", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -209.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "62c8a061dc6457eb09414a5dd92923428234c02164fcafe9b70d24418bcb9f31", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -211.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "e75cc95bb6d65548d4182a9863b55f3a59f1d68cfb7d7b7f2dd9086ae0391b9f", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -209.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "2f3da9c7be24ffeee0ca31bb5865cbf84bc2d1679be99c0fc722d68574051fbf", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -211.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "9d20cf5d234be6de2d3e0b7f02ff0810294411f341cfd9a409d2d96f03319e34", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "aa8859b21e34ca2abc699474b821f67c22fad641a77511599b2207634af5d12a", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "edc5954517d1a95d7d84e48c0092af098a53725999c2cad818b8103a6f7b933c", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -235.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "c35ebd241af2793c8206458b32597dcad8fa4f9208caefe70391e01c649dd291", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -235.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "8e96a155ccf49d09aedc3f33375615535ad2218ac6472226726c7f7b00400af1", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "fe518ffda2af5dbddc698cde59b04f5b4a469a046a8a8d387d6321b125a12272", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "f078e41e2b932f793c9aed84ab70c26c6d411563e2852e4bf212faf48607f23d", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "7fdb195c24f2ca836e679c5c1185ee62ba6262d8bf4bcca901a81263f14d084e", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "461e90a2c2fea4756a308a614317f33bb52ca0fcec1efd8496d9803ea7cd0eb6", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -237.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "45d9107e75fd0b6a865837f62272eca34a946fa7ac957c3f2eb3110a6638cc0f", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -237.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "9e9dabb8196fd62c328fcee96817b43a2fc94d5d126da7343295ea694f09f0f0", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -275.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "00e06e5f4dbd5af95166892d87b4da592af54c5b7e86c617abb1151fa82e6347", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -273.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "7961c4bb1a3081ede9f2aeacf87191b481dd87cdb2369aaa17d5ba6a15363a5c", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -271.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "2ce86cd0bbff31eeb3fc3cd2e7aeaa84936c1d31980d2356b9132431292f86d9", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "a9ddccc66aa497b53d7e74e6ed0936f0a82a3d07ad1084a0824891bf30eca331", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "88cc533533c4bf2caf7cb1c248db2a47ab5d577d93b225fecac197b1763ec54e", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "2bbbdfccc3d5c97a02cb98c7cb999f1eeff259411a7eaf20da2f88bf0346c352", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -272.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "fc8ec2155523b1f008b084bd348bebfb7272cbe027acddcc734004cbbcefc59b", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -271.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "bf7d32337355913c7129cfcfa8799a98d2e216b873a1121a19b545a25bbdfbd9", + "radix": 5, + "source_restored": true, + "working_bits": 277 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "3d4b5a68e698a267216428d5d0d45bf51c0472ee2cc01e47781441fa9ca6bfc4", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "2e5681928d224a368ba1893c93bf0ef8882b46036f99bfd5eb94324263c3fd67", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "96d50778cbb3724de9d4df1e0170adab174653ae7a3a4b06b00b128e7b27ac3d", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "1446de15e231059a3c7254c2cd2511e1881a1c7eb771dbca7d265717f7195eaf", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "b1e0761235356b0d9c3f340d98b99b7f261e7384bfe2c9916304597c5200e6f8", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "64b4967d0e0bdd41c4d9a4d964fc86440b69755b995476e6f2be0ff4fcc82859", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "679d22502012d3393d3c29b4a7a3d4c31c45fae1b8fe1650abc803dbcf93c4f2", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c2b7c099d676396ea27f38a75ae92aff9f07d229a20de8fa34b692c75e745868", + "radix": 7, + "source_restored": true, + "working_bits": 393 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -515.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "993ad3b7f7c2b45c434f03d00f56c100c3ddb53dbc892ec9809236ca010ae26c", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -515.0, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "e04b59c5babb81867668dde59206fb320c368cbf734183434438c5406523c04f", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "fda026dad7a2e4a42f11b9ca16ae52f941411996d28c84d0e83a778804c02c73", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "d3207bf763bbae77978535758319decbd7938f8f7053c92657db5eb3b725ac42", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "c85651cd9ee433dcc2fa25a6a81be63626113505bd985842a9aa271099aae2de", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "4ee73ad037496e329600d7926991f5014af07f03812cbe8a4f10363830fe3719", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.0, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "bec4cf11598ea35c38e784bf31b10afe0f4c87840abc8ab1a6750f37288757d2", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "76b113f121ff300a06fb634ed7abfefc6bc34c7f40fbc08d73ab7b74583826a1", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "26b8a2311c6311f6982b7de013141f9dcabda4576cf4cbe7451157b67184b893", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "d010d55afc6214864fd80698c11e1ca5964d16ebb4e0a44403cbdbbd2b562642", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "95f169e94233462482865bca1aaa7cf35ff2493f88126a46398945eebd6aa6a9", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -477.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "dc36a5111151ea159cdac6a660c7b09cc6061dd228ad5c8e8f0ee2d8e0e5e7d3", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "8212f9d7ecb3e78ec535018dfb9b16532c02bfa7dc2515cc2635b9fd0ce5db54", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "50243b70062cb9e1d2ce183cfd5963e7f42be74026290207bdf30ddfacb92301", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c8369df251285dfb472ed3ca1b9a6b165f4fbaabda1309e5e0c8e1ca2351ba5a", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -478.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "e62354ba249c4c9458c23cc9c0365bad16117681238ed25db94f0017554d0c1e", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -400.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "08e01f7fc24aa45b926530cfee2134e75fee641c209def92a145706122039c7c", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -399.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "846acfcefb10472c6b73f94a8532141365a99659c39cd15d403e7ae2b9b72371", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -395.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "a3bd907c3a1b39ed90daddb89a2cb3f31a368a063cfbfb132c11ab8e7cedc93e", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -394.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "e932c887123f620c479dc5bd7425b8752e6ff3ae4e10995b736994f656e42c4a", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "acd14d102aafb014e3272b1d0390e61687266203614e49eb12e25cda486ad541", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "d062bde9698e42c54e9732c76bd5e66ce9cd96444aa95df4d983d9032aa01373", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "34f5da48521930b0359dc29075abdfc88cd5067febaf6fe095adb7b99313c6dd", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -395.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "d0b9ef055f24678baf01247b8a5bced371afbc5e2ddff490b2731ac96b07eb3c", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.5, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "eedffc3dd5a9044a7b8d9bdea7b9948c8e2a79403affe0e22a36ad44e32871d7", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "56ba1e5e658735cd379f069bd700aee03c8991f48d57468b7ed7f2d0abc4985c", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -554.5, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "51127d5a95228925520c96e3e10db9cb821477e4df9dca7a25c2102e7e4c9175", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -554.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "d2fc9e7c089f5889f3f45822825c5dee2901ac3e7f95bea8f9fa119edbd46112", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -553.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "248d6f2239b09db27a25e68714f25db29d94a9f0239ac2be0376e12828e14243", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -552.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "eb9c99f98f915fc175e55152439b73852bdbc39440cf20427dc0aa9427c0ca21", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -553.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "0f13149d619d2c061501e061969c3ec89746f6596e855504b811d3d03419a8ae", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "4c8d4d8d1fa405dd7fe3fb90c230b5b3694ea44d5824425b7e895db5a6c02534", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -701.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "4f3bdbcb28e53998d7de1ad118461eeae22ddf13b9d87f418f5099f7c2996d16", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -701.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "7c2a64ebb7fe5a55af7481fb4909c4b4e52c23089648084b2726d9901705ff64", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "9921b0f28433a15e723f11cb294e4c2b83804db1f4ad23e9850320aff601a335", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "16014c1ecb6a4c3af21202a01b5be5dcf650b5090ab35c80936fde38ddbe8e71", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "53b2fa4e1b995855e502335286e8e29dc26dd7d6257232350e6ffb84a5d21d18", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -698.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "87934e7a8a0f601e774cdac0f00b4db9ec8aad40d1a8183ca7982d6e43bb37f5", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -699.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c663719693f12d836abc0deea36ef67214aab860794c1d66435f8451a3c94105", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -699.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "aa16c90a012c93c72dc1268c9330237d109a6bc6518258b61a0981f5e777246d", + "radix": 13, + "source_restored": true, + "working_bits": 707 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -678.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "084539bac212a25502ca3463c289c2baad776d1f9280996f1b59b3a9b1bc454d", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "143f8928daee062d647e7cfb9f759e998f3c7101c15d0476ec57dc5bd237fdc5", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "5c45c2ebaf576986fc699c3c530b56b0ee9c3cd866b36ba4c793339d49018dbe", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "797c751138c49ddeb651339ebc8a6ff71c09add9fb82efbaeedf8c4cd0530ee9", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -675.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "61fdcedb74864c966e71ec10e6c278f433c4ef7dab1fce12ca55781c40d5f6e1", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -674.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "c09f5b711f785e2e6b38424ca1d2384cf48efe96d91441acb82e1111536dcffb", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -674.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "63900f4b24df0eee27dd017c742bc790073963267ae27ef7d3cc969aa3a677df", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -672.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "11845728caf2788fcbc83e701351d15416b25ee5eb457545a4b4b955dd77b238", + "radix": 16, + "source_restored": true, + "working_bits": 684 + } + ], + "scope": "Sufficient cubic precision for balanced arbitrary-dirty cyclic inverse arithmetic; inherited analytic/preparation/leaf hypotheses, no common-label or multiplication-exponent claim.", + "sources": { + "base": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "files": 22, + "source_pins_sha256": "fe92bb12941561a14ad50eb0b0581eac646edcaa103dc2ad4347aba732d06010" + }, + "status": "PASS_DIRTY_CUBIC_PRECISION", + "symbolic": [ + { + "bound": 2, + "inverse_prefix_coefficient_mass": 2, + "leaves": 1, + "n": 1, + "prefix_coefficient_mass": 2, + "sha256": "d7c145a5c2e77151dff3347d02d0ef85f93aef0ee268bbd55fc819b592ec440f", + "sign": 1 + }, + { + "bound": 2, + "inverse_prefix_coefficient_mass": 2, + "leaves": 1, + "n": 1, + "prefix_coefficient_mass": 2, + "sha256": "d7c145a5c2e77151dff3347d02d0ef85f93aef0ee268bbd55fc819b592ec440f", + "sign": -1 + }, + { + "bound": 6, + "inverse_prefix_coefficient_mass": 3, + "leaves": 4, + "n": 2, + "prefix_coefficient_mass": 3, + "sha256": "7d2660dd69c8e320628150bc2561d6a78ebc91cf83dfdad3b7330c8a7dfc824c", + "sign": 1 + }, + { + "bound": 6, + "inverse_prefix_coefficient_mass": 3, + "leaves": 4, + "n": 2, + "prefix_coefficient_mass": 2, + "sha256": "f0a82fed47dab5e7284a18be18c1c1c0b0392fbea6095b149aebb09449359f5f", + "sign": -1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 10, + "n": 3, + "prefix_coefficient_mass": 4, + "sha256": "99a6218ea2827492f6140b91728f0f9e5c272aee2b45cd01075a2e4ff3e694b6", + "sign": 1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 10, + "n": 3, + "prefix_coefficient_mass": 3, + "sha256": "9d1fb3c28b8394acf249db1452b3891544467be2ebffc1db2c1744b0b97a4722", + "sign": -1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 16, + "n": 4, + "prefix_coefficient_mass": 4, + "sha256": "129ea8e38b73d44d4250e2be8f9123e648c0386c1c458958d320b0ca19e16922", + "sign": 1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 16, + "n": 4, + "prefix_coefficient_mass": 3, + "sha256": "40387e9178e75b4f0d12b5feafe2cc1e4e61dfa43fea0711f85459e495953976", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 28, + "n": 5, + "prefix_coefficient_mass": 5, + "sha256": "6ff7484044216bce80b393dbaf49e0a901556d89d5675914bac9f46478664ea3", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 28, + "n": 5, + "prefix_coefficient_mass": 4, + "sha256": "a953be15f43608e054edab413e622b3262a88e385fb3de1736b1b7eb3d688596", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 40, + "n": 6, + "prefix_coefficient_mass": 5, + "sha256": "2377c943aeafc8041fb4aebae1f00de9c29ea390ecc55f823e188dc513ef4b32", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 40, + "n": 6, + "prefix_coefficient_mass": 4, + "sha256": "9baa74e7131a7ad3b872ece79e11584076d671dbd1f095cf0e3497b56fd20829", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 52, + "n": 7, + "prefix_coefficient_mass": 5, + "sha256": "223536801361a232800c21d2d4cdc7efe7659e866d0546ace4527198d9283e18", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 52, + "n": 7, + "prefix_coefficient_mass": 4, + "sha256": "46446c7d24d1a206ff7f8cfb83fb96750ecc503efa201fa6874c13c466c82b3b", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 64, + "n": 8, + "prefix_coefficient_mass": 5, + "sha256": "9405110c8f4544eb292628f70a446b224f7a934345a15dd536d905e6f50bd9c2", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 64, + "n": 8, + "prefix_coefficient_mass": 4, + "sha256": "3a67ec4bd5ab096fa1b86afc6157a5816abd64b017985be19c66c6130f1ce5e9", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 88, + "n": 9, + "prefix_coefficient_mass": 6, + "sha256": "d80c24249d7b70191f67ab39ef15339a4ec7697fca295e55e56ceb57846890f0", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 88, + "n": 9, + "prefix_coefficient_mass": 5, + "sha256": "84a2a1aa48bd458b90d53ebb37336691b4cad60e2242ae18ef5458deadef2a4f", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 112, + "n": 10, + "prefix_coefficient_mass": 6, + "sha256": "413bc678817ac2b903d5b64405e790344b3b319197bdbc540b72544cbba4d8f9", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 112, + "n": 10, + "prefix_coefficient_mass": 5, + "sha256": "cd37777a38193ec3b800b7b33e67ef0ad465674fc802b82cef82a12b75d3c2d4", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 136, + "n": 11, + "prefix_coefficient_mass": 6, + "sha256": "4063ceaecb2840766b8573f127cb3b7d22537b265581b07086c85b0578d259b3", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 136, + "n": 11, + "prefix_coefficient_mass": 5, + "sha256": "44d17228c884de2a5dd4e3740b4e8d8995d3710873836d7fc92a6b0ebb31a5eb", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 160, + "n": 12, + "prefix_coefficient_mass": 6, + "sha256": "e1c1f5a2bc6dcbc0ede92187e886f69a74fc8bfdbfe45a6570bf463155ca8544", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 160, + "n": 12, + "prefix_coefficient_mass": 5, + "sha256": "4a2e4927196c095e96bd5b2fb3e9af4f3d4df745165ad2cb43f4b40af4cac1cc", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 184, + "n": 13, + "prefix_coefficient_mass": 6, + "sha256": "4d1cb34c54a8420b0f6adf42187e5b24617d50a06ca69940fe224da7b2a0a6d3", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 184, + "n": 13, + "prefix_coefficient_mass": 5, + "sha256": "bde9f8516495e92c50a88ba2f11cea746ed99366e54969e6046e86d1a4890b34", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 208, + "n": 14, + "prefix_coefficient_mass": 6, + "sha256": "be57f6c3f013ef31458ca8e7231311bfa45c58c1b7866a9f1fa70ccc00c58697", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 208, + "n": 14, + "prefix_coefficient_mass": 5, + "sha256": "d5f32d87352a6b7b457faab8de4db7df2429f3fc7ec13d9c0079298c7402343c", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 232, + "n": 15, + "prefix_coefficient_mass": 6, + "sha256": "72fb9f63a2520173760947d42a081a0d71d21db4a5143e72923b1cc1416f81e7", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 232, + "n": 15, + "prefix_coefficient_mass": 5, + "sha256": "825d4fa46fb01b5e881aa067ee27e0a37dcef3fa0d6d02bd8ea7d79915a8c313", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 256, + "n": 16, + "prefix_coefficient_mass": 6, + "sha256": "f08974a9a214e8b35c0d26f9899928f676ee083f1451e0d6918ca7c786cb4cdf", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 256, + "n": 16, + "prefix_coefficient_mass": 5, + "sha256": "ff695932ee98584c773285a8df3e2dc5519afa3e961f55d1ff8f4afe285483ab", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 304, + "n": 17, + "prefix_coefficient_mass": 7, + "sha256": "41283ab6bb671336bbb6b3c4f93f59c2859218289245739b11833b9dd0890732", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 304, + "n": 17, + "prefix_coefficient_mass": 6, + "sha256": "d7266301efd62bfbd4078c34cd6a75141d165069d38d09731da24b8452896a63", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 352, + "n": 18, + "prefix_coefficient_mass": 7, + "sha256": "f0871bcb5d89dd6d1947e9c46ec90eb63815733c39a213e04596713f099ee28a", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 352, + "n": 18, + "prefix_coefficient_mass": 6, + "sha256": "1dfe5fe268e12008fa4d79cecaf11c4f61afc199a61fcf08266519b19dc7abe0", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 400, + "n": 19, + "prefix_coefficient_mass": 7, + "sha256": "e2fbf487dcff8162372c21da6292745bb39d57a900d912bf6e0d3dfbf8bd4122", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 400, + "n": 19, + "prefix_coefficient_mass": 6, + "sha256": "c414f242a838507753d54769977c31e4ed5f15315428b53f9ac1f2b83c385f9e", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 448, + "n": 20, + "prefix_coefficient_mass": 7, + "sha256": "c9c20fd5522b6de3341dea6c9217ac16625ee4430c2c96e017ab4975034e53bf", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 448, + "n": 20, + "prefix_coefficient_mass": 6, + "sha256": "914f3afd99f46e77a152f833fe1dc933d27363004783fbdf3eec04b8bb129039", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 496, + "n": 21, + "prefix_coefficient_mass": 7, + "sha256": "d4249ec871afdb28e6880e042799ac09a5d05883d2695fe359b3a6872ecc4cc4", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 496, + "n": 21, + "prefix_coefficient_mass": 6, + "sha256": "31609ba2ddaf20fec077c065ab5f9c42ea78dce4db12530afe24f959f4612968", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 544, + "n": 22, + "prefix_coefficient_mass": 7, + "sha256": "86c83a8f088013b6cd79547b4f435097201ec661a287fea218ed032525c6bce0", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 544, + "n": 22, + "prefix_coefficient_mass": 6, + "sha256": "613de07734c12a6b74914960bf89c6345f19ff47bbfae20e9bae45710c1be337", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 592, + "n": 23, + "prefix_coefficient_mass": 7, + "sha256": "76318e1697b088bd7b0ce76b9526c83421786dd87e147f7e7489005b9d4a45b8", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 592, + "n": 23, + "prefix_coefficient_mass": 6, + "sha256": "3e75caf3199fdb8b09f2edc41648a6d07d41770a323736aed9c42eee26cc47eb", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 640, + "n": 24, + "prefix_coefficient_mass": 7, + "sha256": "ca13342ba78aadedf55694ecd92dbd01bb6d05fab6b67d7795bd12f22ec074b3", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 640, + "n": 24, + "prefix_coefficient_mass": 6, + "sha256": "152b21d2e28c1c90a8489f2b1a25c2980b18a67d5e6d5be666f7e437b967a553", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 688, + "n": 25, + "prefix_coefficient_mass": 7, + "sha256": "036c05b6da1db93d5fe42a635113f500f73d3463b031a3595272a08af03d934c", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 688, + "n": 25, + "prefix_coefficient_mass": 6, + "sha256": "f997999aad897e894f8bb838b1c37b2637a28f9260e41599ebdafcb996521211", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 736, + "n": 26, + "prefix_coefficient_mass": 7, + "sha256": "8124e7c05d689509022acb4b02237db2068ba97f8773305f2d1af4c316f34a61", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 736, + "n": 26, + "prefix_coefficient_mass": 6, + "sha256": "cd048768b60081a87157734c628c90710394460de33d22cffaf7f9652b1c951b", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 784, + "n": 27, + "prefix_coefficient_mass": 7, + "sha256": "afb3b6d2401909407744f71b33ad692604ef39404b125276c6588d70e1765ea2", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 784, + "n": 27, + "prefix_coefficient_mass": 6, + "sha256": "eb69befb8be20d0b9ff5b52916dedb1752505c0b8546d98956b873bffc766482", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 832, + "n": 28, + "prefix_coefficient_mass": 7, + "sha256": "ad16db5004963d87ff285a3217fecd3fbf050a4bd3a79fb0fdfe49a4a6587130", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 832, + "n": 28, + "prefix_coefficient_mass": 6, + "sha256": "183c51c913b308cec8e410bb01590ff96e0c3354fdc7c71e92019b724e258d69", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 880, + "n": 29, + "prefix_coefficient_mass": 7, + "sha256": "057e685613508b910cc7ff7c5da04757955ca0d5ca13f97ba2bee48f89fb87c6", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 880, + "n": 29, + "prefix_coefficient_mass": 6, + "sha256": "2bf87bfdfe018919d1015bf59c9e5e6d018ccbfca1334332e3923e562406a3b7", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 928, + "n": 30, + "prefix_coefficient_mass": 7, + "sha256": "85a50967102efe71bb56d8e8e6ed11504653ccc6b6c2d95241998ee7c36495bf", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 928, + "n": 30, + "prefix_coefficient_mass": 6, + "sha256": "2a7ac377712e1cf52ef002982df8e9376a46d2e3b43e140a539b9cd2d0631f2f", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 976, + "n": 31, + "prefix_coefficient_mass": 7, + "sha256": "c1550b0be8386b920fad2a588a090d8420c701438f107edd4bc7271387346243", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 976, + "n": 31, + "prefix_coefficient_mass": 6, + "sha256": "e5a792819c45462d35671d39ae7e50eaab031ef0f572451a410876479e4b53a9", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 1024, + "n": 32, + "prefix_coefficient_mass": 7, + "sha256": "7e66b9176f5520a6fcfce6ce5da39db3afb248ec00c1ebeb98b084b6ae810a39", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 1024, + "n": 32, + "prefix_coefficient_mass": 6, + "sha256": "bfc8407348e0a8d4c49398fa7a4f5e4f815699b2442d43ec3efeaf3744440597", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1120, + "n": 33, + "prefix_coefficient_mass": 8, + "sha256": "17b352b4ef6583e11079aeba026ae6da80f09c252761e4a5ff856871ed934467", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1120, + "n": 33, + "prefix_coefficient_mass": 7, + "sha256": "dd14f9c146833a60d633bce6c1833dbbf745483b82079d7c087502c72df1eb0c", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1216, + "n": 34, + "prefix_coefficient_mass": 8, + "sha256": "df6663688f502e7458a0bbc8f9a6d7e51f36ee0247104a59e49e9dca6f0fa4c9", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1216, + "n": 34, + "prefix_coefficient_mass": 7, + "sha256": "058fb37a84ac1e7a826bc81c7b9acd0d50359ed6bc81f0404a25cb610f7b7700", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1312, + "n": 35, + "prefix_coefficient_mass": 8, + "sha256": "72b449d8b7775b4203da096313fe6987ad0a32e8d96d16f5ed90abbfd02a9fc6", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1312, + "n": 35, + "prefix_coefficient_mass": 7, + "sha256": "59e05b3518e522bf247bdad48c267841f2930101ba037b094f99e1cc5757ce9e", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1408, + "n": 36, + "prefix_coefficient_mass": 8, + "sha256": "012fd1d3c89dc19a19e27a0ed96e3c81c2eb2ce6a4d177ff30f59ce44c1175bb", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1408, + "n": 36, + "prefix_coefficient_mass": 7, + "sha256": "b5be8a662427a28c501130719adb59ff351a615f2bcc192b02cda3f5365021d6", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1504, + "n": 37, + "prefix_coefficient_mass": 8, + "sha256": "33d7fef9a6c3b472fbcd4aaba84e4d7af881f08da932666ffaf327934d1b39bc", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1504, + "n": 37, + "prefix_coefficient_mass": 7, + "sha256": "d99f287495e78dad0587ce455985555230db6e3be48a65b77b31002412b2c3dd", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1600, + "n": 38, + "prefix_coefficient_mass": 8, + "sha256": "39c751652200b47e43cb6ea2be773e76480333226a73b194dd11e17127d96c36", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1600, + "n": 38, + "prefix_coefficient_mass": 7, + "sha256": "edc9c7578315e578a3a82822d16527c3eef2c624184ac5d96e79a6e1b497ac82", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1696, + "n": 39, + "prefix_coefficient_mass": 8, + "sha256": "b03deec0779742d42cae9849f72ed3922c975c1acc3ec5a0c9f335f7c431609a", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1696, + "n": 39, + "prefix_coefficient_mass": 7, + "sha256": "54fc6dfc42dc8ba595289220e86bd586487cf37195ee8d92e7d744064d3590b8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1792, + "n": 40, + "prefix_coefficient_mass": 8, + "sha256": "ee1df68f380ef4e2a7a92622c44a1a97932fa86d8770d3466ef8d7fe9615d53d", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1792, + "n": 40, + "prefix_coefficient_mass": 7, + "sha256": "cd1c4e4e09bd5ed3623a172db33f887277ec5d19b15efc8a916560430048d3f5", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1888, + "n": 41, + "prefix_coefficient_mass": 8, + "sha256": "19d238102f5ee3d282ab787ca63818a54c3cf13754ff4a59b6150ef8c67103ee", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1888, + "n": 41, + "prefix_coefficient_mass": 7, + "sha256": "495f153fc6fce7949826c0b42072a2b60199290e7a34336b232c44f7b27b5b00", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1984, + "n": 42, + "prefix_coefficient_mass": 8, + "sha256": "4e7fe9f59e42efc5ee5e631550898ca0a73f30418dc3c0c106eea1c3c0b6ec93", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1984, + "n": 42, + "prefix_coefficient_mass": 7, + "sha256": "d3026f964ef477ffe5b11a80c4b8f220e4945f50673c497e545413c941b847c2", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2080, + "n": 43, + "prefix_coefficient_mass": 8, + "sha256": "14b66ab6212a690746b3e837c2482355d0e41e5c6a806a90cbd78ee3b0021924", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2080, + "n": 43, + "prefix_coefficient_mass": 7, + "sha256": "bc1dff2bd9f2dbab4b2cbef679635790501aaed14bbefe495cca6f8ed24ae3f8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2176, + "n": 44, + "prefix_coefficient_mass": 8, + "sha256": "dcc187ee8352239abf204730291df76178c06d73012a05430903ca47765c63bb", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2176, + "n": 44, + "prefix_coefficient_mass": 7, + "sha256": "967391747629277fbdfa4f917b3c6061aa88d1632bdf94cdd2fb76e7bcf880df", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2272, + "n": 45, + "prefix_coefficient_mass": 8, + "sha256": "e3df4b58333d160c5d6b641cbe616f751922b52124ac61cafc0102a243c961e1", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2272, + "n": 45, + "prefix_coefficient_mass": 7, + "sha256": "937f16c936a07d77ac4e08d1a18b8f453dba3e13130e5f73b44432a695fe3670", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2368, + "n": 46, + "prefix_coefficient_mass": 8, + "sha256": "78132873164aa0fd3b2b31f61e833618731117293a30168d65e3ecf7f31a5a83", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2368, + "n": 46, + "prefix_coefficient_mass": 7, + "sha256": "2e1f3bd3910fa95dccd13cfd167622992f85eaa99bdd6be32dbc92062a7743e8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2464, + "n": 47, + "prefix_coefficient_mass": 8, + "sha256": "6901f81ea2bfee9452c23326d505f23636d53e0c31c11f423010d9e3b3ab11e3", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2464, + "n": 47, + "prefix_coefficient_mass": 7, + "sha256": "a98879c659deac41fca22e1d287b25a1745a1cde0b021cfef159bb37b8d24359", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2560, + "n": 48, + "prefix_coefficient_mass": 8, + "sha256": "efd775922bc961b1f1fca1c95ceaef51353fed727249c4ca44144da57726e2ec", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2560, + "n": 48, + "prefix_coefficient_mass": 7, + "sha256": "7138d202d3b460aa734c56295fccc733c97fd85360f7c97504b2e62ed9337d5f", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2656, + "n": 49, + "prefix_coefficient_mass": 8, + "sha256": "20d0a61da3afe60ee75a8906d2cc1556f69c46546e6679658c3e9eef2f1467a5", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2656, + "n": 49, + "prefix_coefficient_mass": 7, + "sha256": "d67467767694bdb2fb18713b1b798ab261b9b8b9737b0952b42e39824229715f", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2752, + "n": 50, + "prefix_coefficient_mass": 8, + "sha256": "5033da12174b35d30415fd9f2f007d0f1bdeda284954195f4cb07cf5e380a348", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2752, + "n": 50, + "prefix_coefficient_mass": 7, + "sha256": "903016674b3cc132d90e2c746842ff5fb6fe858092dd3173fae1ecbb5cc7e5a5", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2848, + "n": 51, + "prefix_coefficient_mass": 8, + "sha256": "df74c9d0bb76772596e636daa66358ecdac9af54b701a09592ade0fcc3238a1e", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2848, + "n": 51, + "prefix_coefficient_mass": 7, + "sha256": "fd0d406315b34d29380ed29ae5213327f74473418f91c5163d0ad86767d5565d", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2944, + "n": 52, + "prefix_coefficient_mass": 8, + "sha256": "16a31d90e35de5daa5f756762dab096a5f3ee3bb64630986b36767e90a62bfaf", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2944, + "n": 52, + "prefix_coefficient_mass": 7, + "sha256": "dcd9e34b314c6e35b3d507afc98a233c1087bc86f30f81ca9a69ee362d864a5b", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3040, + "n": 53, + "prefix_coefficient_mass": 8, + "sha256": "aafc49e4baaf88e5bcf799a4ffcfc10267eaed255d03996f8a830b2f06c3a8c7", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3040, + "n": 53, + "prefix_coefficient_mass": 7, + "sha256": "dd8947d204b97d8362a852f9ab9705dbbc1a4239f4c6c0a8ab2f974e3ca38631", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3136, + "n": 54, + "prefix_coefficient_mass": 8, + "sha256": "f80dfa169dc574a438b7700cb32e7e5b87cf5134184a3aa9fb6d4245376b656f", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3136, + "n": 54, + "prefix_coefficient_mass": 7, + "sha256": "cdf7c79aafb1231df1fe4aa4dc4aaeda80f941000debe476be30cc443884243a", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3232, + "n": 55, + "prefix_coefficient_mass": 8, + "sha256": "ad45ceecd23aefcaa4f02619e6a142c5c6c82c9230f72b43d1f4f4eba6adb26e", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3232, + "n": 55, + "prefix_coefficient_mass": 7, + "sha256": "8d427381c158b30ffa0337d9c6694adba0abb44a802d369cb60798aaed6652fe", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3328, + "n": 56, + "prefix_coefficient_mass": 8, + "sha256": "3793d3aaa4c2138fe6cad8f4f51148c7bed5a4d298b37b914e424ba1333d3072", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3328, + "n": 56, + "prefix_coefficient_mass": 7, + "sha256": "e98193a0f20edac0b0a018bb459b17d4f166068803d0bb7aae9018974b6ec813", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3424, + "n": 57, + "prefix_coefficient_mass": 8, + "sha256": "8ff08a77d48813af3a5a9d3644d2921bd5abb662b1c89dc2f9d9b0666da7773f", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3424, + "n": 57, + "prefix_coefficient_mass": 7, + "sha256": "774870868ac1e349baabd5cb920cce108524bb5d96f57227fde1a3a8a078512e", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3520, + "n": 58, + "prefix_coefficient_mass": 8, + "sha256": "0222f0e6a81e41d3d087b2104eae4307df27f074a3296277a28a95627a4cb340", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3520, + "n": 58, + "prefix_coefficient_mass": 7, + "sha256": "e932c5bb4afb0785569acdacc3e619508311b75a6077bd52a62b8a0a481c69ae", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3616, + "n": 59, + "prefix_coefficient_mass": 8, + "sha256": "ba17b4bc5f16a738181b42a28b4eb376cc7a3ada4188bcef4c90332ebfb2351c", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3616, + "n": 59, + "prefix_coefficient_mass": 7, + "sha256": "8409be104fec2072de74455997b063636fd06ebf9d35a267fc809bf0c3fcede6", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3712, + "n": 60, + "prefix_coefficient_mass": 8, + "sha256": "eb3d2f52475b8921e71928a47e2f0780c133d915fe09d63a0f2616d9b0037908", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3712, + "n": 60, + "prefix_coefficient_mass": 7, + "sha256": "cecd61793f74bb3361d9e37acc0f22a2122bfee10e45976d68bb32b10207b0b4", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3808, + "n": 61, + "prefix_coefficient_mass": 8, + "sha256": "57da169bbd2e7d198832c0ea0a9bc0aa6ff14bf8186c2ee8690dd948e40b475b", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3808, + "n": 61, + "prefix_coefficient_mass": 7, + "sha256": "cd8f3dad2bd66d80767027eea047522bc4632cd3530838f263655561e283d71a", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3904, + "n": 62, + "prefix_coefficient_mass": 8, + "sha256": "22bd42acadbd578147eb4a9eeb8eb1aca5bb2a45574e6b95546498997ff19135", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3904, + "n": 62, + "prefix_coefficient_mass": 7, + "sha256": "539f31c193425b29063865a989003e372d9352ff1944149bf9e4088604ac0340", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4000, + "n": 63, + "prefix_coefficient_mass": 8, + "sha256": "a41d36478c96f91bdd594ddc42656fcd85867c0f5e1cea38f69e1cab20f38450", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4000, + "n": 63, + "prefix_coefficient_mass": 7, + "sha256": "f15c2f3a580576d440e2b7c2ef31b82b78288865f9fa05af56e5ba432102a3ae", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4096, + "n": 64, + "prefix_coefficient_mass": 8, + "sha256": "21105e61da692794214e970dac1e95f64a2714f56726b8d2b0a6e3116d7c4bd0", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4096, + "n": 64, + "prefix_coefficient_mass": 7, + "sha256": "24af359176e752bff603b32b16639809dfab8455057525646f6c0e9834ca582e", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 10048, + "n": 95, + "prefix_coefficient_mass": 9, + "sha256": "b77b6435f95711386689fa36d5ae43bae99719bf3074788416f30d0b619164ec", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 10048, + "n": 95, + "prefix_coefficient_mass": 8, + "sha256": "e6b7fb3f8738a000f69f62c11c50b021ad4037d2abc8bf62efe688d7eb0c15a6", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16192, + "n": 127, + "prefix_coefficient_mass": 9, + "sha256": "05a30eecacba7987a0bb24e64fca7d6895ef9ad137b28f513735f188062ddc0a", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16192, + "n": 127, + "prefix_coefficient_mass": 8, + "sha256": "d0e78f08054b1de2bc7fd2e01a480f7cd673376459c29f990397d2dec09c59ae", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16384, + "n": 128, + "prefix_coefficient_mass": 9, + "sha256": "963f4c901f7ed3d9d60b5d746e546e394451b760b9fed48877b393a54d72fad6", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16384, + "n": 128, + "prefix_coefficient_mass": 8, + "sha256": "96a96d47460fb21f8bdb4c8233e632f2aa7f14392949c529757d45aec87cbda6", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 16768, + "n": 129, + "prefix_coefficient_mass": 10, + "sha256": "37de4ab88bae97ed2190bba1c52a822ff1345025e91520288adf801a4f9b9857", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 16768, + "n": 129, + "prefix_coefficient_mass": 9, + "sha256": "f72928ffb4f5332f8cd60d45698dbbe333caf6b3aa965b7b01864168a36ebd01", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 40576, + "n": 191, + "prefix_coefficient_mass": 10, + "sha256": "f03b70e6143778b25fbcf067cc0f51d6c155d6df573ccd2013559dd09cf8d201", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 40576, + "n": 191, + "prefix_coefficient_mass": 9, + "sha256": "d4e2981794999dc71dd52a29e8d9607c47f53c0a893fad1113bc54a90f17c01a", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65152, + "n": 255, + "prefix_coefficient_mass": 10, + "sha256": "251269eee5dc846e69ff7e079073bcf376e8255b3be7576ba119c969111a84fe", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65152, + "n": 255, + "prefix_coefficient_mass": 9, + "sha256": "2a64267a446f4a4257f48520134d8f2c72f37a30072ff5fdaa71e2a941bc1a44", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65536, + "n": 256, + "prefix_coefficient_mass": 10, + "sha256": "7f3d6fab9f0e67466a53acda572ca9e638e1b31861f0f3bbd1e3fdfaa0cf7f70", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65536, + "n": 256, + "prefix_coefficient_mass": 9, + "sha256": "777b8743801202f442ba360972566e4c68c10196a8d08605396e92cc45b24ae0", + "sign": -1 + } + ] +} diff --git a/research/dirty-cubic-precision-validation/LINUX314.log.txt b/research/dirty-cubic-precision-validation/LINUX314.log.txt new file mode 100644 index 0000000000..a12ce22ac0 --- /dev/null +++ b/research/dirty-cubic-precision-validation/LINUX314.log.txt @@ -0,0 +1,16 @@ +PASS uniform budgets 5220 +PASS free polynomial prefixes 142 +PASS frozen words, dense paths and controls +PASS full-grid dirty kernel 3 1 +PASS full-grid dirty kernel 4 1 +PASS full-grid dirty kernel 5 1 +PASS full-grid dirty kernel 7 1 +PASS full-grid dirty kernel 8 1 +PASS full-grid dirty kernel 9 1 +PASS full-grid dirty kernel 9 2 +PASS full-grid dirty kernel 11 1 +PASS full-grid dirty kernel 13 1 +PASS full-grid dirty kernel 16 1 +PASS_DIRTY_CUBIC_PRECISION budgets=5220 symbolic=142 rounded=80 kappa=unchanged +PASS_PACKAGE_BINDINGS controls=8 readonly_relocation=1 +PASS_FROZEN_READONLY_LINUX_PACKAGE diff --git a/research/dirty-cubic-precision-validation/MACOS311-PACKAGE.json b/research/dirty-cubic-precision-validation/MACOS311-PACKAGE.json new file mode 100644 index 0000000000..5873c1b5b7 --- /dev/null +++ b/research/dirty-cubic-precision-validation/MACOS311-PACKAGE.json @@ -0,0 +1,39 @@ +{ + "status": "PASS_PACKAGE_BINDINGS", + "rejected": [ + { + "control": "core", + "rejected": "ValueError: package hash: core.py" + }, + { + "control": "fixture", + "rejected": "ValueError: package hash: vendor/628/FACTORS.json" + }, + { + "control": "expected", + "rejected": "ValueError: package hash: EXPECTED.json" + }, + { + "control": "source_pins", + "rejected": "ValueError: package hash: SOURCES.json" + }, + { + "control": "missing_source", + "rejected": "ValueError: package file coverage" + }, + { + "control": "extra_file", + "rejected": "ValueError: package file coverage" + }, + { + "control": "manifest_path", + "rejected": "ValueError: package file coverage" + }, + { + "control": "resigned_fixture", + "rejected": "ValueError: retained source SHA: vendor/628/FACTORS.json" + } + ], + "read_only_relocation": true, + "scope": "Integrity and source pin checks only; mathematical replay is verify.py without --bindings-only." +} diff --git a/research/dirty-cubic-precision-validation/MACOS311-RESULT.json b/research/dirty-cubic-precision-validation/MACOS311-RESULT.json new file mode 100644 index 0000000000..4afd7db0f9 --- /dev/null +++ b/research/dirty-cubic-precision-validation/MACOS311-RESULT.json @@ -0,0 +1,3764 @@ +{ + "algebra": { + "dense_prefixes": [ + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 2, + "gaussian_inverse_checks": 1, + "inverse_prefix_maximum": 4, + "leaf_calls": 1, + "n": 1, + "prefix_maximum": 4, + "prefix_stream_sha256": "969a9e9e9f35f9be9f2b2241a6a1c2df623dce362d764e7013f4542f7fc7e3e1", + "sign": -1, + "subset_bound": 3, + "subword_maximum": 4, + "subwords_checked": 1 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 2, + "gaussian_inverse_checks": 1, + "inverse_prefix_maximum": 4, + "leaf_calls": 1, + "n": 1, + "prefix_maximum": 4, + "prefix_stream_sha256": "969a9e9e9f35f9be9f2b2241a6a1c2df623dce362d764e7013f4542f7fc7e3e1", + "sign": 1, + "subset_bound": 3, + "subword_maximum": 4, + "subwords_checked": 1 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 6, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 11, + "leaf_calls": 4, + "n": 2, + "prefix_maximum": 7, + "prefix_stream_sha256": "eac89db41e28af574ba9f40eccea77b4828aa4c4091a1b6a11fc27cfe33631f2", + "sign": -1, + "subset_bound": 6, + "subword_maximum": 11, + "subwords_checked": 10 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 6, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 11, + "leaf_calls": 4, + "n": 2, + "prefix_maximum": 11, + "prefix_stream_sha256": "7d85403a8a334c0295e5d0fdec737a5a39083d94a8305222dce49ec6cf56960d", + "sign": 1, + "subset_bound": 6, + "subword_maximum": 11, + "subwords_checked": 10 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 18, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 17, + "leaf_calls": 10, + "n": 3, + "prefix_maximum": 9, + "prefix_stream_sha256": "1200f51284065a4887135ac46ca73760aea4aaba51ad59c5c0b9171e1ae81d00", + "sign": -1, + "subset_bound": 8, + "subword_maximum": 17, + "subwords_checked": 55 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 18, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 17, + "leaf_calls": 10, + "n": 3, + "prefix_maximum": 17, + "prefix_stream_sha256": "9788c364b5da679492b555e0513a3a3350b5bf3e6e12fc4f174b0bac1212e056", + "sign": 1, + "subset_bound": 8, + "subword_maximum": 17, + "subwords_checked": 55 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 129, + "leaf_calls": 28, + "n": 5, + "prefix_maximum": 69, + "prefix_stream_sha256": "efc540e17ae923e82351ad0a42a138dff7242bed65027d79ab6edfef0b411fba", + "sign": -1, + "subset_bound": 68, + "subword_maximum": 129, + "subwords_checked": 406 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 129, + "leaf_calls": 28, + "n": 5, + "prefix_maximum": 116, + "prefix_stream_sha256": "69efb721a8828a658a04e2b01b7a0d09f375c68ffc33df151618930d2d652ef2", + "sign": 1, + "subset_bound": 68, + "subword_maximum": 129, + "subwords_checked": 406 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 177, + "leaf_calls": 64, + "n": 8, + "prefix_maximum": 97, + "prefix_stream_sha256": "c007ad9fa0a53c137cc65401ea783b64444da5e3f4ea5008aa3c75d761534b2b", + "sign": -1, + "subset_bound": 176, + "subword_maximum": 177, + "subwords_checked": 2080 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 177, + "leaf_calls": 64, + "n": 8, + "prefix_maximum": 117, + "prefix_stream_sha256": "8d11037a48e7cb01db5ee69004f805e3185d10d2ef6083cf6ef33c96ac98113c", + "sign": 1, + "subset_bound": 176, + "subword_maximum": 209, + "subwords_checked": 2080 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 50061, + "leaf_calls": 232, + "n": 15, + "prefix_maximum": 19937, + "prefix_stream_sha256": "f128808bec62ce05767af3cb9b150a268f8137e57cd239cc5ae8e7151ab1fecd", + "sign": -1, + "subset_bound": 35831808, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 50061, + "leaf_calls": 232, + "n": 15, + "prefix_maximum": 21625, + "prefix_stream_sha256": "527623aa8431c1bb6e806c76ebca69bd688f2dd1d12acc92b8a89d5fff87ec67", + "sign": 1, + "subset_bound": 35831808, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 1153, + "leaf_calls": 256, + "n": 16, + "prefix_maximum": 86, + "prefix_stream_sha256": "0d481c556bbc774b98d807bcd1edf6a8dd0f47d05ef581aa52b7d59ec9deee80", + "sign": -1, + "subset_bound": 1679616, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 1153, + "leaf_calls": 256, + "n": 16, + "prefix_maximum": 86, + "prefix_stream_sha256": "40250a806e16655e476f9dc257e76431a7cc025577277757ae01cc9de2d53c69", + "sign": 1, + "subset_bound": 1679616, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 486, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 119703745, + "leaf_calls": 976, + "n": 31, + "prefix_maximum": 79626241, + "prefix_stream_sha256": "2cac4de6f3c493ce44a6aa68090d6dfa95867d8ef7fb767b6af7c0a7631ad742", + "sign": -1, + "subset_bound": 641959232274432, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 486, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 119703745, + "leaf_calls": 976, + "n": 31, + "prefix_maximum": 79628071, + "prefix_stream_sha256": "cbc1c2f1abb4c79aa7d2c33d4df076d8bf01cb1d3e041597d18e9b5a9a9522c5", + "sign": 1, + "subset_bound": 641959232274432, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 1458, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 23224321, + "leaf_calls": 4000, + "n": 63, + "prefix_maximum": 4386947, + "prefix_stream_sha256": "c81c263a55babf19896fd015f934602b8371de4331453aa64b0cb7ed089f2f75", + "sign": -1, + "subset_bound": 19057724291985084082777227264, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 1458, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 23224321, + "leaf_calls": 4000, + "n": 63, + "prefix_maximum": 4386947, + "prefix_stream_sha256": "b359eb73a856e8f1407eff002eec1ae7b916fd35d53f11845d6f6cbe457172aa", + "sign": 1, + "subset_bound": 19057724291985084082777227264, + "subword_maximum": 1, + "subwords_checked": 0 + } + ], + "frozen_words": [ + { + "leaves": 1, + "n": 1, + "sha256": "57a72175c72e98144f507728f8ea97a5d4acb234d745690c00f743d1a59d5611", + "sign": -1 + }, + { + "leaves": 1, + "n": 1, + "sha256": "5518a65c40f6c5664df81f579e5ce430d9d47106f63a5940b9025b825379ec3e", + "sign": 1 + }, + { + "leaves": 4, + "n": 2, + "sha256": "6719b802844ca359533f48de09a8a62c03ec75e009626f6ca2ef31ae5e11700a", + "sign": -1 + }, + { + "leaves": 4, + "n": 2, + "sha256": "a3fc004bbb17a4d13fd404e6c27d3c8b4c6b34e6245c868f0b043ec3268dd8a2", + "sign": 1 + }, + { + "leaves": 10, + "n": 3, + "sha256": "593cfabd15798f1f91cb8f227762dfbd73e65722b5082d51567e99208daa61db", + "sign": -1 + }, + { + "leaves": 10, + "n": 3, + "sha256": "a0ca2ce8a9c8ba8fb504de1dc113e54c016aa8f4032647cb30a4ac95e8989ca7", + "sign": 1 + }, + { + "leaves": 16, + "n": 4, + "sha256": "d73513a7343590a8c115aeb2324c58cfd53f98f24a78d6d3f018126624e97813", + "sign": -1 + }, + { + "leaves": 16, + "n": 4, + "sha256": "41b90f5721c4ee01df2020b39aa7d4756d2bf887b33e055562255ab3e9fbdc5f", + "sign": 1 + }, + { + "leaves": 28, + "n": 5, + "sha256": "15cf044dd7b08cc266e65a5683efcde475f175f01bd67ce72ca246e1621fe921", + "sign": -1 + }, + { + "leaves": 28, + "n": 5, + "sha256": "737a9a072d0f39ce2aac2dc728c27976b07d6a2fb029ef037ed64e00dc892779", + "sign": 1 + }, + { + "leaves": 40, + "n": 6, + "sha256": "4289b062a0d391739d931f90103a6b805a5cddaea5f53265319b0e3af82cc762", + "sign": -1 + }, + { + "leaves": 40, + "n": 6, + "sha256": "fbe10e6d44342b8c0a1430716091674abfea1a6af40f83903eba90e39dec0fb7", + "sign": 1 + }, + { + "leaves": 52, + "n": 7, + "sha256": "89e1d9fce3a18bde5162327b53a37e177718157a4378068c8cf88c96e90a1d2f", + "sign": -1 + }, + { + "leaves": 52, + "n": 7, + "sha256": "29728ca158ddd42dfde41586046fcdd190f22033d49d4426e4ab84ddd3d8131c", + "sign": 1 + }, + { + "leaves": 64, + "n": 8, + "sha256": "e57f879002a02a4f28fad6fe861fd83af8b4891b317a3e39cf2885ac71426c11", + "sign": -1 + }, + { + "leaves": 64, + "n": 8, + "sha256": "ed51a030d96d00ce14f5dabfbbf24c76387f0cefb54bf925802ada9e0f00e81c", + "sign": 1 + }, + { + "leaves": 88, + "n": 9, + "sha256": "fa0265a6cadce9523bdb222d08478d12f51a1c1d5eac737e5c2c874d788f529f", + "sign": -1 + }, + { + "leaves": 88, + "n": 9, + "sha256": "a76b9aaaedf2c7bc7b2586e8e999d124e872d5a66b0cfdeb6aab47942bb45259", + "sign": 1 + }, + { + "leaves": 112, + "n": 10, + "sha256": "bf9a14999bf3517b3a635db96667b59f5c2c7d7f9d54ce2cb45579e25069bd61", + "sign": -1 + }, + { + "leaves": 112, + "n": 10, + "sha256": "a0f88b03088b26f601b530d31f268978c22e90be184234aea77e2c4ffc718235", + "sign": 1 + }, + { + "leaves": 136, + "n": 11, + "sha256": "50ec504c43b1fb3a62c4cdcf1403f3466a75defd0e2a64835af572a5ba469b60", + "sign": -1 + }, + { + "leaves": 136, + "n": 11, + "sha256": "91c1cd0e89786c18e1909ec892ee44a3786bdb83b36df57344d4369ad345d8da", + "sign": 1 + }, + { + "leaves": 160, + "n": 12, + "sha256": "2394bde92b9b6dc1f61714edfeb7c97073b62047d90398b3a5dbf4222565b2d3", + "sign": -1 + }, + { + "leaves": 160, + "n": 12, + "sha256": "d399f15fd8f820576d50bceedcb5f00947084a356e1a1058078e96bda4827afe", + "sign": 1 + }, + { + "leaves": 184, + "n": 13, + "sha256": "c27e387663e2854402093f67f697a5ce861128ee49144d41f6f2c663bafb0b66", + "sign": -1 + }, + { + "leaves": 184, + "n": 13, + "sha256": "af062aa6d7724c591295d580d966ffd003471f0f74e548875da10bd5627824dc", + "sign": 1 + }, + { + "leaves": 208, + "n": 14, + "sha256": "c5844b19ef69984c7968212ba3d011766ab1226b5b782a349d515733f33190f0", + "sign": -1 + }, + { + "leaves": 208, + "n": 14, + "sha256": "7bfcdced80610276c437b9f567ef75717d4b1ad4392f9ee67ff8b7a69c7f4723", + "sign": 1 + }, + { + "leaves": 232, + "n": 15, + "sha256": "dcf775c02489e6d3383c7329390c4c3519d121334e7841b9dda1996dde58c74b", + "sign": -1 + }, + { + "leaves": 232, + "n": 15, + "sha256": "5fe22f1790e7ca27596d70379117f082b5982ebf5ca9e78b254d125604676d2c", + "sign": 1 + }, + { + "leaves": 256, + "n": 16, + "sha256": "622b6b15d0e265153234d4b78913b197bbdbd9a45471f8be7a23713578cfd8b9", + "sign": -1 + }, + { + "leaves": 256, + "n": 16, + "sha256": "2cf6b46f4ca5431ef6ec996251978a4dc92037e9566a0e456eefc6b132a2c4c0", + "sign": 1 + }, + { + "leaves": 304, + "n": 17, + "sha256": "c7dd0eb36d39a0180d4443539b53812ff63f18a96a43214799dc30b2d45b77d1", + "sign": -1 + }, + { + "leaves": 304, + "n": 17, + "sha256": "8ef3935bd36f1016efa46c281fd2c47c3d138107a51882facc31b2ab03a1a1e2", + "sign": 1 + }, + { + "leaves": 352, + "n": 18, + "sha256": "1086f3cb15bc46e102c43596a1346a0b3757146926932dc48cbfa511c0c75df0", + "sign": -1 + }, + { + "leaves": 352, + "n": 18, + "sha256": "1c0ddd8a0cd6f10ddf2aedf002cf3a1c630235f64a559c2b0ad11f5014d98f4e", + "sign": 1 + }, + { + "leaves": 400, + "n": 19, + "sha256": "45e67b832de0b4e9f8d5622421e1ffd66310fd34dbee674e3c1017337f726092", + "sign": -1 + }, + { + "leaves": 400, + "n": 19, + "sha256": "20d69d061f4751e8b462b56b74c152adc25b02bd7ce7386303431e8c4391e1ae", + "sign": 1 + }, + { + "leaves": 448, + "n": 20, + "sha256": "e31a26ad7b4270dbe130e41237990b921e2ca00ccd5933cf3761dac83926da49", + "sign": -1 + }, + { + "leaves": 448, + "n": 20, + "sha256": "2fc2f530281cd475f8ffc9d76d1f6b7d955c1939c3a004d46b14847b398722b4", + "sign": 1 + }, + { + "leaves": 496, + "n": 21, + "sha256": "b649b796780f8781c62d55472db754adb269079c3777b115c6f8a474d71a7e02", + "sign": -1 + }, + { + "leaves": 496, + "n": 21, + "sha256": "5f116b0b9700571d1ccdb9e24addc233041350af564fe26350616c055fa0510e", + "sign": 1 + }, + { + "leaves": 544, + "n": 22, + "sha256": "f01fdb3bafd20ddde479b578aa05ee23eea661f6082940d15c204e521fbfa3a9", + "sign": -1 + }, + { + "leaves": 544, + "n": 22, + "sha256": "fed64d02a326303a250f657f01574e9a5b40df831bb9c26d5b8ac2c9c901b1bc", + "sign": 1 + }, + { + "leaves": 592, + "n": 23, + "sha256": "e4eb19b6efe4892f40c2e0f410afe3e15047718fb7f43c65abfdd387795c3e61", + "sign": -1 + }, + { + "leaves": 592, + "n": 23, + "sha256": "a35279d7dc7c344ab5fab36af775b99540cf3769b9e1b7ce069165687b255c19", + "sign": 1 + }, + { + "leaves": 640, + "n": 24, + "sha256": "ade1d38fc13e7bf4e402fd4cf2af272edfbfbb2e642a8af7e8697b10800de961", + "sign": -1 + }, + { + "leaves": 640, + "n": 24, + "sha256": "6ec9ec08c5c91e26fbf3aa473fb0bd7a31f0b2b93f53c52437c88756cfbb8a69", + "sign": 1 + }, + { + "leaves": 688, + "n": 25, + "sha256": "fc8f67b8cbcef9c3fac34856688fe6ab6c007c4219b2780a9379021393666782", + "sign": -1 + }, + { + "leaves": 688, + "n": 25, + "sha256": "ce46ad3c23420bff7a867c831dcac3b2d0cba5d953ec5e5f8d4baf521bc6ae4b", + "sign": 1 + }, + { + "leaves": 736, + "n": 26, + "sha256": "c7675f623de8c3987a85ec03905e74bfd9310be76ba2d7fae364f9d62a46115c", + "sign": -1 + }, + { + "leaves": 736, + "n": 26, + "sha256": "c6398a35d2ffaf326f8edf21e0de6f6a262c1f30f47c3027e91280f9a748fd65", + "sign": 1 + }, + { + "leaves": 784, + "n": 27, + "sha256": "071cb19cff89b5e4feda33d5dc3973234c7287c1a16b6c8ce5790f6ab18cd5e7", + "sign": -1 + }, + { + "leaves": 784, + "n": 27, + "sha256": "f4bb36c2aa49abd7d83c622e3d845d165c08cb36613f73f9ab18cb8e7aeb7901", + "sign": 1 + }, + { + "leaves": 832, + "n": 28, + "sha256": "f99251fbacdf30b199f9e1fd30cf504368fd1548f648c98d4298ac338e4ac98b", + "sign": -1 + }, + { + "leaves": 832, + "n": 28, + "sha256": "25a3c3d585c1d714525027a51eff5734390228d773c880c3aa6d8ba49ead89cb", + "sign": 1 + }, + { + "leaves": 880, + "n": 29, + "sha256": "bc8b9d4f48a595138bd4c9cc885106f33cefa8bb9b42d3cfea61f6e4ad20f14c", + "sign": -1 + }, + { + "leaves": 880, + "n": 29, + "sha256": "cdcc821d51b20710fc398e4eca7ecab1412eccc8c7a59b8bb0bbb682431c527d", + "sign": 1 + }, + { + "leaves": 928, + "n": 30, + "sha256": "8fca523b14cb4afa288ed9f3d463036a0e6a37b76d3ea10f148cec8067d8abc7", + "sign": -1 + }, + { + "leaves": 928, + "n": 30, + "sha256": "bc524d20e396f4ddcc0fd5cb8a622d38590807f9fe50d211fa1e46c39a5773fe", + "sign": 1 + }, + { + "leaves": 976, + "n": 31, + "sha256": "55c9af10202e51bdd5602aa9ee8b0dfdf2354179a2e1334833d3c13ffd8d345e", + "sign": -1 + }, + { + "leaves": 976, + "n": 31, + "sha256": "c73c078b0c138d6a0b27bad46f1555ca3309bc048da7998f0f8cbf291366302e", + "sign": 1 + }, + { + "leaves": 1024, + "n": 32, + "sha256": "1447cf76542aab66d66bbf568427dcef5d6ee1ac45adce87fa41061b1175696f", + "sign": -1 + }, + { + "leaves": 1024, + "n": 32, + "sha256": "0805ba64ee7dd3fec7ee1bb57f711d88eea9889e69946ccedadeb535d84f4acb", + "sign": 1 + }, + { + "leaves": 1120, + "n": 33, + "sha256": "aafb7fac7712d77b82ddeaaa5556959150ecf99b9225d0525ac9ce8a6be41bac", + "sign": -1 + }, + { + "leaves": 1120, + "n": 33, + "sha256": "d130fae7b93024789ba31ac9ac9e807d35d40af4e0b015244e93eaf3c09baf45", + "sign": 1 + }, + { + "leaves": 1216, + "n": 34, + "sha256": "19684f5487c8b74ba0660b600a75d6d5d415f9b4c6224395b54d599e2a1aa06e", + "sign": -1 + }, + { + "leaves": 1216, + "n": 34, + "sha256": "a5e0077952eee232b87cd9352b48bd2d2702a5f93eaecfc0054aa5a1f8514b5d", + "sign": 1 + }, + { + "leaves": 1312, + "n": 35, + "sha256": "cb53f0f2aec5dbb112650c783f836c94a7ac882a1639f5025c1282e8875ac8d3", + "sign": -1 + }, + { + "leaves": 1312, + "n": 35, + "sha256": "2d5e45b8739172817ce82e157a211dac4d689cf517e2c65e017d67c0ff4c3d31", + "sign": 1 + }, + { + "leaves": 1408, + "n": 36, + "sha256": "d058b9d09e4ce4614d158fc841df70dcf69628cca09de36dc2bd13db41642bca", + "sign": -1 + }, + { + "leaves": 1408, + "n": 36, + "sha256": "477fbd228d110a5dea53f8554e6d5597f0067cba1adfcd4017f29ffb917ff762", + "sign": 1 + }, + { + "leaves": 1504, + "n": 37, + "sha256": "90cbc7e0bef523387cbba2ef2c5dd08ccf57e6dc20d929a7e1d9a4c0bd775d52", + "sign": -1 + }, + { + "leaves": 1504, + "n": 37, + "sha256": "6487bf71650bfb1161d321262d449e1f7ba250ddf84eb5756fbed3f570b21e86", + "sign": 1 + }, + { + "leaves": 1600, + "n": 38, + "sha256": "6082cf32625a6db4095f9a1c0d2330f8dc2e4e5d52773ae70c554667ce54bc2d", + "sign": -1 + }, + { + "leaves": 1600, + "n": 38, + "sha256": "40fb4922187529b061630bed241e65287bb3f3f5946dce00e66b4b1808312fbf", + "sign": 1 + }, + { + "leaves": 1696, + "n": 39, + "sha256": "dc8f7c619008f252a596e7ccf8137f43e0e94b69c733eaac337dce3184ffc4c5", + "sign": -1 + }, + { + "leaves": 1696, + "n": 39, + "sha256": "3c95bddbe35d0797b3b9486df74fb5f876c5872a656646898b5dc337afa9ca3d", + "sign": 1 + }, + { + "leaves": 1792, + "n": 40, + "sha256": "3693da491ed861a867f88209b073efa6db79f02ba13b130658e53a4a69525079", + "sign": -1 + }, + { + "leaves": 1792, + "n": 40, + "sha256": "9252cd2dae06d5862c6509052dd88009c13b097067a0a6ef975e154bdb854345", + "sign": 1 + }, + { + "leaves": 1888, + "n": 41, + "sha256": "69d8487dad1c5c61cb0f5f78f1b3bcdfdf766855000252235bd20fbf2e5da4ea", + "sign": -1 + }, + { + "leaves": 1888, + "n": 41, + "sha256": "319c4fa082995ac9f6245fd197b1f48c5a7b1cd483e046efac4dd3776a132fbc", + "sign": 1 + }, + { + "leaves": 1984, + "n": 42, + "sha256": "13978d8dbc33863fdc524aac4758b20567f90e19ac56bf8d6b5a9d9ca6daee1e", + "sign": -1 + }, + { + "leaves": 1984, + "n": 42, + "sha256": "27065f6be5e4e334079584d57eebf6b5d02e55ae9ca515e36c6cbee0da330dbd", + "sign": 1 + }, + { + "leaves": 2080, + "n": 43, + "sha256": "dfdaced2d8b6bd668060be19d12a587ea6afb7b26b07960a2cce3900bfda7750", + "sign": -1 + }, + { + "leaves": 2080, + "n": 43, + "sha256": "d8368f40edf1e41dd5e8a37b63000488c590f55590f68fabea92210535969696", + "sign": 1 + }, + { + "leaves": 2176, + "n": 44, + "sha256": "944d2893c1c91427fe25e7e1eb01b0058c6b7db3af74a5c4c14504707fd02c61", + "sign": -1 + }, + { + "leaves": 2176, + "n": 44, + "sha256": "1e657354e50c2a8c80210b1f72d8aa6a1afa3d63f5a25599720d0d4c40b84f1f", + "sign": 1 + }, + { + "leaves": 2272, + "n": 45, + "sha256": "01f9876d3d124ec583c53b8290a2e3dd17ad126611431eb51ca3777e5a9155d2", + "sign": -1 + }, + { + "leaves": 2272, + "n": 45, + "sha256": "4fbf4039a0e5a36af7933568c83ace2ae86315b2740ef74084faba073bc553b1", + "sign": 1 + }, + { + "leaves": 2368, + "n": 46, + "sha256": "61b252e946ed6ee3b371a7bf7a708c191d732adf37b38bfc6ee0e411bc5eb743", + "sign": -1 + }, + { + "leaves": 2368, + "n": 46, + "sha256": "efaec14d15e65276c1fea68a5feed7af27b29dc2900abeb7cca78c3cf2ab4e2c", + "sign": 1 + }, + { + "leaves": 2464, + "n": 47, + "sha256": "61738fb80569fb0513574d007b6a51b99591a114d34aa261b2d06a970d60fa7f", + "sign": -1 + }, + { + "leaves": 2464, + "n": 47, + "sha256": "f4ded0cef26e0ae7d0f0166d0caa11409c1264bd2d906fee57ed683dfd6fa003", + "sign": 1 + }, + { + "leaves": 2560, + "n": 48, + "sha256": "f63c4528ca0ad76482d24039ae2f9fc8b5893b745ff3a06d14bd580896f06adf", + "sign": -1 + }, + { + "leaves": 2560, + "n": 48, + "sha256": "e47e70144a0317d923c65eda9ddf2ea88ec4222a0882ffdf269737bb5906bd08", + "sign": 1 + }, + { + "leaves": 2656, + "n": 49, + "sha256": "9dc68249e130844080971e44904bc488e5cd9bb204447787f9f43b182703ee89", + "sign": -1 + }, + { + "leaves": 2656, + "n": 49, + "sha256": "ae192c0f911feb190e38c8ad3ef15e6d5061541ff13ab5342d1b966e3c8263f4", + "sign": 1 + }, + { + "leaves": 2752, + "n": 50, + "sha256": "1bc5f639709b697a0597417150b8db2a9df612fb7a1d73e7afd1a1e5d8a413f4", + "sign": -1 + }, + { + "leaves": 2752, + "n": 50, + "sha256": "6072d55270511d2364454e99714934697c164fe7c4d57054ec3cd8fc129d5d4b", + "sign": 1 + }, + { + "leaves": 2848, + "n": 51, + "sha256": "2ba069f5ec9fae67d10055b53b5591726912f21c15c86bf12d952736eeb87c86", + "sign": -1 + }, + { + "leaves": 2848, + "n": 51, + "sha256": "ecf6846c94b37be9be96c0966367b6427b4afb9002e9331171a299d60bb68665", + "sign": 1 + }, + { + "leaves": 2944, + "n": 52, + "sha256": "5db8da0c3db9f5c42ab8c187b34859b5cba91cba2970990941a83bba7da141a5", + "sign": -1 + }, + { + "leaves": 2944, + "n": 52, + "sha256": "b6d6680df8a14a455408b9c4cab20c92eaccd7eab064c78946183b84f277799b", + "sign": 1 + }, + { + "leaves": 3040, + "n": 53, + "sha256": "bc1d9523337b7540cc99c808d1ca414b70f396236955e4f95690c4cf5b8d2932", + "sign": -1 + }, + { + "leaves": 3040, + "n": 53, + "sha256": "76f993e9538c8cb9f1dee6ee51470c56309ee13f200d7a08a88854471f76c8ff", + "sign": 1 + }, + { + "leaves": 3136, + "n": 54, + "sha256": "17803879e0420556ecd1df2f9d42409c73394cae6f45bce3dda0d2f5d3d33b99", + "sign": -1 + }, + { + "leaves": 3136, + "n": 54, + "sha256": "6535d843bde1e81e1ebfa67b924e578a4beefc351b1b5efe5524babc8a4fffd4", + "sign": 1 + }, + { + "leaves": 3232, + "n": 55, + "sha256": "d40fdba8e2599c6c66e63300c68aad1cd8f3990030697661a7e6c389931ead3e", + "sign": -1 + }, + { + "leaves": 3232, + "n": 55, + "sha256": "9fb4c9b7c83c87344a9f695239a1e04c1648b8db1980893d83bf66aa82cdcee0", + "sign": 1 + }, + { + "leaves": 3328, + "n": 56, + "sha256": "26ea3ff57d6482824687229f358b29e1334c987cf521a2afb728c6052e607c2a", + "sign": -1 + }, + { + "leaves": 3328, + "n": 56, + "sha256": "162d2ebc7d9ec9b0b2e8bb040a8df78926b3385ae8e9a12210d2e885af3cf207", + "sign": 1 + }, + { + "leaves": 3424, + "n": 57, + "sha256": "48924f2a448e85bc6ce7a179f738611525cd6cd7bbf079f2024f699a666aef1e", + "sign": -1 + }, + { + "leaves": 3424, + "n": 57, + "sha256": "820c34b59afbd2fb7961937269eeca91fcf1e9a33cd8e853c7678edbd7cf43f8", + "sign": 1 + }, + { + "leaves": 3520, + "n": 58, + "sha256": "880411c47dc0cb3d286d49af121ae2cfdc927ce4ee7fd34e82f12e350f82f824", + "sign": -1 + }, + { + "leaves": 3520, + "n": 58, + "sha256": "13603e8b83ccff1d00903bce32b9a9ce18d81fcc64555237b785ab9710e1a04e", + "sign": 1 + }, + { + "leaves": 3616, + "n": 59, + "sha256": "e71ffcb76ebacb398ffe44d1406a9eebf7a896d28f08702f5e01c7102d7e88c5", + "sign": -1 + }, + { + "leaves": 3616, + "n": 59, + "sha256": "6ab0397b99a371cf52e7f3677a6a76e16434effd7090c61f9f52ef3f3044bf60", + "sign": 1 + }, + { + "leaves": 3712, + "n": 60, + "sha256": "7510a93cdea03bae82862334ad3286bd294b13159ed26e013baa8159c59b5432", + "sign": -1 + }, + { + "leaves": 3712, + "n": 60, + "sha256": "4a1eb776ef26235579249a5be9ccdcbe61a9ca01da6170660b944cc4f933db32", + "sign": 1 + }, + { + "leaves": 3808, + "n": 61, + "sha256": "5183924f98929f9f779a5850904652032255dc4ee37b8315e04d4c01f1086092", + "sign": -1 + }, + { + "leaves": 3808, + "n": 61, + "sha256": "051c91294f1c5058cbb6a994a88c0dad75a6e5db49cf30e8e0781e3c03be76ce", + "sign": 1 + }, + { + "leaves": 3904, + "n": 62, + "sha256": "36df291d39b2fb9f706acd69d121e52058a88545a24193a61a93352bcc1260e2", + "sign": -1 + }, + { + "leaves": 3904, + "n": 62, + "sha256": "ee242af5a677f7ca40d6865b7743d84d6b589cbaf943de3458f2bbc9bad11a8f", + "sign": 1 + }, + { + "leaves": 4000, + "n": 63, + "sha256": "e14956d6dd085b489c373eb5e43376cdda5061c02f2f9eb9f535b0b800463753", + "sign": -1 + }, + { + "leaves": 4000, + "n": 63, + "sha256": "81282ba9c88c47fbfa32ab5f55f33cf86b7e98ca68951a8baea22eb4be6d2e90", + "sign": 1 + }, + { + "leaves": 4096, + "n": 64, + "sha256": "f0e2a579e898cbfd4829933fce3435ffc97f72d717df0c3c01227d946b8c7ee7", + "sign": -1 + }, + { + "leaves": 4096, + "n": 64, + "sha256": "b173cf4c946a5904af872fa6b6c7c8ae36bc61e7f1bc65b121e06ab4fc0d517d", + "sign": 1 + } + ], + "negative_controls": [ + { + "name": "repeated_factor_monomial", + "rejected": "('repeated or unordered factor', 2, (0, 0))" + }, + { + "name": "unordered_noncommuting_word", + "rejected": "('repeated or unordered factor', 2, (0, 1))" + }, + { + "name": "omitted_last_restore", + "rejected": "ideal product or dirty restoration mismatch" + }, + { + "name": "wrong_inverse_order", + "rejected": "ideal product or dirty restoration mismatch" + }, + { + "name": "whole_product_only_bound", + "rejected": "prefix norm bound" + }, + { + "name": "missing_feedback_smallness", + "rejected": "feedback smallness" + }, + { + "name": "corrupt_working_bits", + "rejected": "certificate fields" + }, + { + "name": "corrupt_prefix_exponent", + "rejected": "certificate fields" + }, + { + "name": "corrupt_leaf_calls", + "rejected": "certificate fields" + }, + { + "name": "corrupt_coefficient_error_exponent", + "rejected": "certificate fields" + }, + { + "name": "corrupt_input_bits", + "rejected": "integer certificate" + }, + { + "name": "unsupported_radix", + "rejected": "prime power radix >=3" + }, + { + "name": "incorrect_inverse_prefix_engine", + "rejected": "independent inverse-prefix mismatch" + } + ], + "status": "PASS" + }, + "budgets": { + "budgets_sha256": "ff3a3312ef79fb99f7e0681818ef1ae446efccfeff4dd0d31a719000e947713e", + "cases": 5220, + "comparisons_sha256": "cdf8115705e5b6403d9528c11d1afbf216d000c80a671e4adee670b82b82d455", + "radix64": [ + { + "cubic_bits": 1162553, + "input_bits": 0, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + }, + { + "cubic_bits": 1162553, + "input_bits": 160, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + }, + { + "cubic_bits": 1162553, + "input_bits": 1048576, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + } + ] + }, + "kappa": "unchanged", + "rounded_kernels": [ + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "3debaffde575d36db1f71a7143e6468ac8d4a083f5f133fe5ef92509eb4d70ce", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "45fc001914c02d73b52d63b05f033a0c25f151a7761bd7eb8ef74c0e76918db1", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -209.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "62c8a061dc6457eb09414a5dd92923428234c02164fcafe9b70d24418bcb9f31", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -211.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "e75cc95bb6d65548d4182a9863b55f3a59f1d68cfb7d7b7f2dd9086ae0391b9f", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -209.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "2f3da9c7be24ffeee0ca31bb5865cbf84bc2d1679be99c0fc722d68574051fbf", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -211.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "9d20cf5d234be6de2d3e0b7f02ff0810294411f341cfd9a409d2d96f03319e34", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "aa8859b21e34ca2abc699474b821f67c22fad641a77511599b2207634af5d12a", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "edc5954517d1a95d7d84e48c0092af098a53725999c2cad818b8103a6f7b933c", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -235.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "c35ebd241af2793c8206458b32597dcad8fa4f9208caefe70391e01c649dd291", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -235.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "8e96a155ccf49d09aedc3f33375615535ad2218ac6472226726c7f7b00400af1", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "fe518ffda2af5dbddc698cde59b04f5b4a469a046a8a8d387d6321b125a12272", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "f078e41e2b932f793c9aed84ab70c26c6d411563e2852e4bf212faf48607f23d", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "7fdb195c24f2ca836e679c5c1185ee62ba6262d8bf4bcca901a81263f14d084e", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "461e90a2c2fea4756a308a614317f33bb52ca0fcec1efd8496d9803ea7cd0eb6", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -237.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "45d9107e75fd0b6a865837f62272eca34a946fa7ac957c3f2eb3110a6638cc0f", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -237.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "9e9dabb8196fd62c328fcee96817b43a2fc94d5d126da7343295ea694f09f0f0", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -275.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "00e06e5f4dbd5af95166892d87b4da592af54c5b7e86c617abb1151fa82e6347", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -273.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "7961c4bb1a3081ede9f2aeacf87191b481dd87cdb2369aaa17d5ba6a15363a5c", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -271.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "2ce86cd0bbff31eeb3fc3cd2e7aeaa84936c1d31980d2356b9132431292f86d9", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "a9ddccc66aa497b53d7e74e6ed0936f0a82a3d07ad1084a0824891bf30eca331", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "88cc533533c4bf2caf7cb1c248db2a47ab5d577d93b225fecac197b1763ec54e", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "2bbbdfccc3d5c97a02cb98c7cb999f1eeff259411a7eaf20da2f88bf0346c352", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -272.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "fc8ec2155523b1f008b084bd348bebfb7272cbe027acddcc734004cbbcefc59b", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -271.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "bf7d32337355913c7129cfcfa8799a98d2e216b873a1121a19b545a25bbdfbd9", + "radix": 5, + "source_restored": true, + "working_bits": 277 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "3d4b5a68e698a267216428d5d0d45bf51c0472ee2cc01e47781441fa9ca6bfc4", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "2e5681928d224a368ba1893c93bf0ef8882b46036f99bfd5eb94324263c3fd67", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "96d50778cbb3724de9d4df1e0170adab174653ae7a3a4b06b00b128e7b27ac3d", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "1446de15e231059a3c7254c2cd2511e1881a1c7eb771dbca7d265717f7195eaf", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "b1e0761235356b0d9c3f340d98b99b7f261e7384bfe2c9916304597c5200e6f8", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "64b4967d0e0bdd41c4d9a4d964fc86440b69755b995476e6f2be0ff4fcc82859", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "679d22502012d3393d3c29b4a7a3d4c31c45fae1b8fe1650abc803dbcf93c4f2", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c2b7c099d676396ea27f38a75ae92aff9f07d229a20de8fa34b692c75e745868", + "radix": 7, + "source_restored": true, + "working_bits": 393 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -515.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "993ad3b7f7c2b45c434f03d00f56c100c3ddb53dbc892ec9809236ca010ae26c", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -515.0, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "e04b59c5babb81867668dde59206fb320c368cbf734183434438c5406523c04f", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "fda026dad7a2e4a42f11b9ca16ae52f941411996d28c84d0e83a778804c02c73", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "d3207bf763bbae77978535758319decbd7938f8f7053c92657db5eb3b725ac42", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "c85651cd9ee433dcc2fa25a6a81be63626113505bd985842a9aa271099aae2de", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "4ee73ad037496e329600d7926991f5014af07f03812cbe8a4f10363830fe3719", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.0, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "bec4cf11598ea35c38e784bf31b10afe0f4c87840abc8ab1a6750f37288757d2", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "76b113f121ff300a06fb634ed7abfefc6bc34c7f40fbc08d73ab7b74583826a1", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "26b8a2311c6311f6982b7de013141f9dcabda4576cf4cbe7451157b67184b893", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "d010d55afc6214864fd80698c11e1ca5964d16ebb4e0a44403cbdbbd2b562642", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "95f169e94233462482865bca1aaa7cf35ff2493f88126a46398945eebd6aa6a9", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -477.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "dc36a5111151ea159cdac6a660c7b09cc6061dd228ad5c8e8f0ee2d8e0e5e7d3", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "8212f9d7ecb3e78ec535018dfb9b16532c02bfa7dc2515cc2635b9fd0ce5db54", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "50243b70062cb9e1d2ce183cfd5963e7f42be74026290207bdf30ddfacb92301", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c8369df251285dfb472ed3ca1b9a6b165f4fbaabda1309e5e0c8e1ca2351ba5a", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -478.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "e62354ba249c4c9458c23cc9c0365bad16117681238ed25db94f0017554d0c1e", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -400.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "08e01f7fc24aa45b926530cfee2134e75fee641c209def92a145706122039c7c", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -399.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "846acfcefb10472c6b73f94a8532141365a99659c39cd15d403e7ae2b9b72371", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -395.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "a3bd907c3a1b39ed90daddb89a2cb3f31a368a063cfbfb132c11ab8e7cedc93e", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -394.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "e932c887123f620c479dc5bd7425b8752e6ff3ae4e10995b736994f656e42c4a", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "acd14d102aafb014e3272b1d0390e61687266203614e49eb12e25cda486ad541", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "d062bde9698e42c54e9732c76bd5e66ce9cd96444aa95df4d983d9032aa01373", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "34f5da48521930b0359dc29075abdfc88cd5067febaf6fe095adb7b99313c6dd", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -395.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "d0b9ef055f24678baf01247b8a5bced371afbc5e2ddff490b2731ac96b07eb3c", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.5, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "eedffc3dd5a9044a7b8d9bdea7b9948c8e2a79403affe0e22a36ad44e32871d7", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "56ba1e5e658735cd379f069bd700aee03c8991f48d57468b7ed7f2d0abc4985c", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -554.5, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "51127d5a95228925520c96e3e10db9cb821477e4df9dca7a25c2102e7e4c9175", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -554.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "d2fc9e7c089f5889f3f45822825c5dee2901ac3e7f95bea8f9fa119edbd46112", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -553.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "248d6f2239b09db27a25e68714f25db29d94a9f0239ac2be0376e12828e14243", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -552.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "eb9c99f98f915fc175e55152439b73852bdbc39440cf20427dc0aa9427c0ca21", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -553.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "0f13149d619d2c061501e061969c3ec89746f6596e855504b811d3d03419a8ae", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "4c8d4d8d1fa405dd7fe3fb90c230b5b3694ea44d5824425b7e895db5a6c02534", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -701.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "4f3bdbcb28e53998d7de1ad118461eeae22ddf13b9d87f418f5099f7c2996d16", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -701.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "7c2a64ebb7fe5a55af7481fb4909c4b4e52c23089648084b2726d9901705ff64", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "9921b0f28433a15e723f11cb294e4c2b83804db1f4ad23e9850320aff601a335", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "16014c1ecb6a4c3af21202a01b5be5dcf650b5090ab35c80936fde38ddbe8e71", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "53b2fa4e1b995855e502335286e8e29dc26dd7d6257232350e6ffb84a5d21d18", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -698.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "87934e7a8a0f601e774cdac0f00b4db9ec8aad40d1a8183ca7982d6e43bb37f5", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -699.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c663719693f12d836abc0deea36ef67214aab860794c1d66435f8451a3c94105", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -699.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "aa16c90a012c93c72dc1268c9330237d109a6bc6518258b61a0981f5e777246d", + "radix": 13, + "source_restored": true, + "working_bits": 707 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -678.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "084539bac212a25502ca3463c289c2baad776d1f9280996f1b59b3a9b1bc454d", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "143f8928daee062d647e7cfb9f759e998f3c7101c15d0476ec57dc5bd237fdc5", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "5c45c2ebaf576986fc699c3c530b56b0ee9c3cd866b36ba4c793339d49018dbe", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "797c751138c49ddeb651339ebc8a6ff71c09add9fb82efbaeedf8c4cd0530ee9", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -675.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "61fdcedb74864c966e71ec10e6c278f433c4ef7dab1fce12ca55781c40d5f6e1", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -674.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "c09f5b711f785e2e6b38424ca1d2384cf48efe96d91441acb82e1111536dcffb", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -674.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "63900f4b24df0eee27dd017c742bc790073963267ae27ef7d3cc969aa3a677df", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -672.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "11845728caf2788fcbc83e701351d15416b25ee5eb457545a4b4b955dd77b238", + "radix": 16, + "source_restored": true, + "working_bits": 684 + } + ], + "scope": "Sufficient cubic precision for balanced arbitrary-dirty cyclic inverse arithmetic; inherited analytic/preparation/leaf hypotheses, no common-label or multiplication-exponent claim.", + "sources": { + "base": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "files": 22, + "source_pins_sha256": "fe92bb12941561a14ad50eb0b0581eac646edcaa103dc2ad4347aba732d06010" + }, + "status": "PASS_DIRTY_CUBIC_PRECISION", + "symbolic": [ + { + "bound": 2, + "inverse_prefix_coefficient_mass": 2, + "leaves": 1, + "n": 1, + "prefix_coefficient_mass": 2, + "sha256": "d7c145a5c2e77151dff3347d02d0ef85f93aef0ee268bbd55fc819b592ec440f", + "sign": 1 + }, + { + "bound": 2, + "inverse_prefix_coefficient_mass": 2, + "leaves": 1, + "n": 1, + "prefix_coefficient_mass": 2, + "sha256": "d7c145a5c2e77151dff3347d02d0ef85f93aef0ee268bbd55fc819b592ec440f", + "sign": -1 + }, + { + "bound": 6, + "inverse_prefix_coefficient_mass": 3, + "leaves": 4, + "n": 2, + "prefix_coefficient_mass": 3, + "sha256": "7d2660dd69c8e320628150bc2561d6a78ebc91cf83dfdad3b7330c8a7dfc824c", + "sign": 1 + }, + { + "bound": 6, + "inverse_prefix_coefficient_mass": 3, + "leaves": 4, + "n": 2, + "prefix_coefficient_mass": 2, + "sha256": "f0a82fed47dab5e7284a18be18c1c1c0b0392fbea6095b149aebb09449359f5f", + "sign": -1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 10, + "n": 3, + "prefix_coefficient_mass": 4, + "sha256": "99a6218ea2827492f6140b91728f0f9e5c272aee2b45cd01075a2e4ff3e694b6", + "sign": 1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 10, + "n": 3, + "prefix_coefficient_mass": 3, + "sha256": "9d1fb3c28b8394acf249db1452b3891544467be2ebffc1db2c1744b0b97a4722", + "sign": -1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 16, + "n": 4, + "prefix_coefficient_mass": 4, + "sha256": "129ea8e38b73d44d4250e2be8f9123e648c0386c1c458958d320b0ca19e16922", + "sign": 1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 16, + "n": 4, + "prefix_coefficient_mass": 3, + "sha256": "40387e9178e75b4f0d12b5feafe2cc1e4e61dfa43fea0711f85459e495953976", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 28, + "n": 5, + "prefix_coefficient_mass": 5, + "sha256": "6ff7484044216bce80b393dbaf49e0a901556d89d5675914bac9f46478664ea3", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 28, + "n": 5, + "prefix_coefficient_mass": 4, + "sha256": "a953be15f43608e054edab413e622b3262a88e385fb3de1736b1b7eb3d688596", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 40, + "n": 6, + "prefix_coefficient_mass": 5, + "sha256": "2377c943aeafc8041fb4aebae1f00de9c29ea390ecc55f823e188dc513ef4b32", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 40, + "n": 6, + "prefix_coefficient_mass": 4, + "sha256": "9baa74e7131a7ad3b872ece79e11584076d671dbd1f095cf0e3497b56fd20829", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 52, + "n": 7, + "prefix_coefficient_mass": 5, + "sha256": "223536801361a232800c21d2d4cdc7efe7659e866d0546ace4527198d9283e18", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 52, + "n": 7, + "prefix_coefficient_mass": 4, + "sha256": "46446c7d24d1a206ff7f8cfb83fb96750ecc503efa201fa6874c13c466c82b3b", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 64, + "n": 8, + "prefix_coefficient_mass": 5, + "sha256": "9405110c8f4544eb292628f70a446b224f7a934345a15dd536d905e6f50bd9c2", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 64, + "n": 8, + "prefix_coefficient_mass": 4, + "sha256": "3a67ec4bd5ab096fa1b86afc6157a5816abd64b017985be19c66c6130f1ce5e9", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 88, + "n": 9, + "prefix_coefficient_mass": 6, + "sha256": "d80c24249d7b70191f67ab39ef15339a4ec7697fca295e55e56ceb57846890f0", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 88, + "n": 9, + "prefix_coefficient_mass": 5, + "sha256": "84a2a1aa48bd458b90d53ebb37336691b4cad60e2242ae18ef5458deadef2a4f", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 112, + "n": 10, + "prefix_coefficient_mass": 6, + "sha256": "413bc678817ac2b903d5b64405e790344b3b319197bdbc540b72544cbba4d8f9", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 112, + "n": 10, + "prefix_coefficient_mass": 5, + "sha256": "cd37777a38193ec3b800b7b33e67ef0ad465674fc802b82cef82a12b75d3c2d4", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 136, + "n": 11, + "prefix_coefficient_mass": 6, + "sha256": "4063ceaecb2840766b8573f127cb3b7d22537b265581b07086c85b0578d259b3", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 136, + "n": 11, + "prefix_coefficient_mass": 5, + "sha256": "44d17228c884de2a5dd4e3740b4e8d8995d3710873836d7fc92a6b0ebb31a5eb", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 160, + "n": 12, + "prefix_coefficient_mass": 6, + "sha256": "e1c1f5a2bc6dcbc0ede92187e886f69a74fc8bfdbfe45a6570bf463155ca8544", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 160, + "n": 12, + "prefix_coefficient_mass": 5, + "sha256": "4a2e4927196c095e96bd5b2fb3e9af4f3d4df745165ad2cb43f4b40af4cac1cc", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 184, + "n": 13, + "prefix_coefficient_mass": 6, + "sha256": "4d1cb34c54a8420b0f6adf42187e5b24617d50a06ca69940fe224da7b2a0a6d3", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 184, + "n": 13, + "prefix_coefficient_mass": 5, + "sha256": "bde9f8516495e92c50a88ba2f11cea746ed99366e54969e6046e86d1a4890b34", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 208, + "n": 14, + "prefix_coefficient_mass": 6, + "sha256": "be57f6c3f013ef31458ca8e7231311bfa45c58c1b7866a9f1fa70ccc00c58697", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 208, + "n": 14, + "prefix_coefficient_mass": 5, + "sha256": "d5f32d87352a6b7b457faab8de4db7df2429f3fc7ec13d9c0079298c7402343c", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 232, + "n": 15, + "prefix_coefficient_mass": 6, + "sha256": "72fb9f63a2520173760947d42a081a0d71d21db4a5143e72923b1cc1416f81e7", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 232, + "n": 15, + "prefix_coefficient_mass": 5, + "sha256": "825d4fa46fb01b5e881aa067ee27e0a37dcef3fa0d6d02bd8ea7d79915a8c313", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 256, + "n": 16, + "prefix_coefficient_mass": 6, + "sha256": "f08974a9a214e8b35c0d26f9899928f676ee083f1451e0d6918ca7c786cb4cdf", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 256, + "n": 16, + "prefix_coefficient_mass": 5, + "sha256": "ff695932ee98584c773285a8df3e2dc5519afa3e961f55d1ff8f4afe285483ab", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 304, + "n": 17, + "prefix_coefficient_mass": 7, + "sha256": "41283ab6bb671336bbb6b3c4f93f59c2859218289245739b11833b9dd0890732", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 304, + "n": 17, + "prefix_coefficient_mass": 6, + "sha256": "d7266301efd62bfbd4078c34cd6a75141d165069d38d09731da24b8452896a63", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 352, + "n": 18, + "prefix_coefficient_mass": 7, + "sha256": "f0871bcb5d89dd6d1947e9c46ec90eb63815733c39a213e04596713f099ee28a", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 352, + "n": 18, + "prefix_coefficient_mass": 6, + "sha256": "1dfe5fe268e12008fa4d79cecaf11c4f61afc199a61fcf08266519b19dc7abe0", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 400, + "n": 19, + "prefix_coefficient_mass": 7, + "sha256": "e2fbf487dcff8162372c21da6292745bb39d57a900d912bf6e0d3dfbf8bd4122", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 400, + "n": 19, + "prefix_coefficient_mass": 6, + "sha256": "c414f242a838507753d54769977c31e4ed5f15315428b53f9ac1f2b83c385f9e", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 448, + "n": 20, + "prefix_coefficient_mass": 7, + "sha256": "c9c20fd5522b6de3341dea6c9217ac16625ee4430c2c96e017ab4975034e53bf", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 448, + "n": 20, + "prefix_coefficient_mass": 6, + "sha256": "914f3afd99f46e77a152f833fe1dc933d27363004783fbdf3eec04b8bb129039", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 496, + "n": 21, + "prefix_coefficient_mass": 7, + "sha256": "d4249ec871afdb28e6880e042799ac09a5d05883d2695fe359b3a6872ecc4cc4", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 496, + "n": 21, + "prefix_coefficient_mass": 6, + "sha256": "31609ba2ddaf20fec077c065ab5f9c42ea78dce4db12530afe24f959f4612968", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 544, + "n": 22, + "prefix_coefficient_mass": 7, + "sha256": "86c83a8f088013b6cd79547b4f435097201ec661a287fea218ed032525c6bce0", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 544, + "n": 22, + "prefix_coefficient_mass": 6, + "sha256": "613de07734c12a6b74914960bf89c6345f19ff47bbfae20e9bae45710c1be337", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 592, + "n": 23, + "prefix_coefficient_mass": 7, + "sha256": "76318e1697b088bd7b0ce76b9526c83421786dd87e147f7e7489005b9d4a45b8", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 592, + "n": 23, + "prefix_coefficient_mass": 6, + "sha256": "3e75caf3199fdb8b09f2edc41648a6d07d41770a323736aed9c42eee26cc47eb", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 640, + "n": 24, + "prefix_coefficient_mass": 7, + "sha256": "ca13342ba78aadedf55694ecd92dbd01bb6d05fab6b67d7795bd12f22ec074b3", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 640, + "n": 24, + "prefix_coefficient_mass": 6, + "sha256": "152b21d2e28c1c90a8489f2b1a25c2980b18a67d5e6d5be666f7e437b967a553", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 688, + "n": 25, + "prefix_coefficient_mass": 7, + "sha256": "036c05b6da1db93d5fe42a635113f500f73d3463b031a3595272a08af03d934c", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 688, + "n": 25, + "prefix_coefficient_mass": 6, + "sha256": "f997999aad897e894f8bb838b1c37b2637a28f9260e41599ebdafcb996521211", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 736, + "n": 26, + "prefix_coefficient_mass": 7, + "sha256": "8124e7c05d689509022acb4b02237db2068ba97f8773305f2d1af4c316f34a61", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 736, + "n": 26, + "prefix_coefficient_mass": 6, + "sha256": "cd048768b60081a87157734c628c90710394460de33d22cffaf7f9652b1c951b", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 784, + "n": 27, + "prefix_coefficient_mass": 7, + "sha256": "afb3b6d2401909407744f71b33ad692604ef39404b125276c6588d70e1765ea2", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 784, + "n": 27, + "prefix_coefficient_mass": 6, + "sha256": "eb69befb8be20d0b9ff5b52916dedb1752505c0b8546d98956b873bffc766482", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 832, + "n": 28, + "prefix_coefficient_mass": 7, + "sha256": "ad16db5004963d87ff285a3217fecd3fbf050a4bd3a79fb0fdfe49a4a6587130", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 832, + "n": 28, + "prefix_coefficient_mass": 6, + "sha256": "183c51c913b308cec8e410bb01590ff96e0c3354fdc7c71e92019b724e258d69", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 880, + "n": 29, + "prefix_coefficient_mass": 7, + "sha256": "057e685613508b910cc7ff7c5da04757955ca0d5ca13f97ba2bee48f89fb87c6", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 880, + "n": 29, + "prefix_coefficient_mass": 6, + "sha256": "2bf87bfdfe018919d1015bf59c9e5e6d018ccbfca1334332e3923e562406a3b7", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 928, + "n": 30, + "prefix_coefficient_mass": 7, + "sha256": "85a50967102efe71bb56d8e8e6ed11504653ccc6b6c2d95241998ee7c36495bf", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 928, + "n": 30, + "prefix_coefficient_mass": 6, + "sha256": "2a7ac377712e1cf52ef002982df8e9376a46d2e3b43e140a539b9cd2d0631f2f", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 976, + "n": 31, + "prefix_coefficient_mass": 7, + "sha256": "c1550b0be8386b920fad2a588a090d8420c701438f107edd4bc7271387346243", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 976, + "n": 31, + "prefix_coefficient_mass": 6, + "sha256": "e5a792819c45462d35671d39ae7e50eaab031ef0f572451a410876479e4b53a9", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 1024, + "n": 32, + "prefix_coefficient_mass": 7, + "sha256": "7e66b9176f5520a6fcfce6ce5da39db3afb248ec00c1ebeb98b084b6ae810a39", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 1024, + "n": 32, + "prefix_coefficient_mass": 6, + "sha256": "bfc8407348e0a8d4c49398fa7a4f5e4f815699b2442d43ec3efeaf3744440597", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1120, + "n": 33, + "prefix_coefficient_mass": 8, + "sha256": "17b352b4ef6583e11079aeba026ae6da80f09c252761e4a5ff856871ed934467", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1120, + "n": 33, + "prefix_coefficient_mass": 7, + "sha256": "dd14f9c146833a60d633bce6c1833dbbf745483b82079d7c087502c72df1eb0c", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1216, + "n": 34, + "prefix_coefficient_mass": 8, + "sha256": "df6663688f502e7458a0bbc8f9a6d7e51f36ee0247104a59e49e9dca6f0fa4c9", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1216, + "n": 34, + "prefix_coefficient_mass": 7, + "sha256": "058fb37a84ac1e7a826bc81c7b9acd0d50359ed6bc81f0404a25cb610f7b7700", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1312, + "n": 35, + "prefix_coefficient_mass": 8, + "sha256": "72b449d8b7775b4203da096313fe6987ad0a32e8d96d16f5ed90abbfd02a9fc6", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1312, + "n": 35, + "prefix_coefficient_mass": 7, + "sha256": "59e05b3518e522bf247bdad48c267841f2930101ba037b094f99e1cc5757ce9e", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1408, + "n": 36, + "prefix_coefficient_mass": 8, + "sha256": "012fd1d3c89dc19a19e27a0ed96e3c81c2eb2ce6a4d177ff30f59ce44c1175bb", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1408, + "n": 36, + "prefix_coefficient_mass": 7, + "sha256": "b5be8a662427a28c501130719adb59ff351a615f2bcc192b02cda3f5365021d6", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1504, + "n": 37, + "prefix_coefficient_mass": 8, + "sha256": "33d7fef9a6c3b472fbcd4aaba84e4d7af881f08da932666ffaf327934d1b39bc", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1504, + "n": 37, + "prefix_coefficient_mass": 7, + "sha256": "d99f287495e78dad0587ce455985555230db6e3be48a65b77b31002412b2c3dd", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1600, + "n": 38, + "prefix_coefficient_mass": 8, + "sha256": "39c751652200b47e43cb6ea2be773e76480333226a73b194dd11e17127d96c36", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1600, + "n": 38, + "prefix_coefficient_mass": 7, + "sha256": "edc9c7578315e578a3a82822d16527c3eef2c624184ac5d96e79a6e1b497ac82", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1696, + "n": 39, + "prefix_coefficient_mass": 8, + "sha256": "b03deec0779742d42cae9849f72ed3922c975c1acc3ec5a0c9f335f7c431609a", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1696, + "n": 39, + "prefix_coefficient_mass": 7, + "sha256": "54fc6dfc42dc8ba595289220e86bd586487cf37195ee8d92e7d744064d3590b8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1792, + "n": 40, + "prefix_coefficient_mass": 8, + "sha256": "ee1df68f380ef4e2a7a92622c44a1a97932fa86d8770d3466ef8d7fe9615d53d", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1792, + "n": 40, + "prefix_coefficient_mass": 7, + "sha256": "cd1c4e4e09bd5ed3623a172db33f887277ec5d19b15efc8a916560430048d3f5", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1888, + "n": 41, + "prefix_coefficient_mass": 8, + "sha256": "19d238102f5ee3d282ab787ca63818a54c3cf13754ff4a59b6150ef8c67103ee", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1888, + "n": 41, + "prefix_coefficient_mass": 7, + "sha256": "495f153fc6fce7949826c0b42072a2b60199290e7a34336b232c44f7b27b5b00", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1984, + "n": 42, + "prefix_coefficient_mass": 8, + "sha256": "4e7fe9f59e42efc5ee5e631550898ca0a73f30418dc3c0c106eea1c3c0b6ec93", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1984, + "n": 42, + "prefix_coefficient_mass": 7, + "sha256": "d3026f964ef477ffe5b11a80c4b8f220e4945f50673c497e545413c941b847c2", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2080, + "n": 43, + "prefix_coefficient_mass": 8, + "sha256": "14b66ab6212a690746b3e837c2482355d0e41e5c6a806a90cbd78ee3b0021924", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2080, + "n": 43, + "prefix_coefficient_mass": 7, + "sha256": "bc1dff2bd9f2dbab4b2cbef679635790501aaed14bbefe495cca6f8ed24ae3f8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2176, + "n": 44, + "prefix_coefficient_mass": 8, + "sha256": "dcc187ee8352239abf204730291df76178c06d73012a05430903ca47765c63bb", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2176, + "n": 44, + "prefix_coefficient_mass": 7, + "sha256": "967391747629277fbdfa4f917b3c6061aa88d1632bdf94cdd2fb76e7bcf880df", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2272, + "n": 45, + "prefix_coefficient_mass": 8, + "sha256": "e3df4b58333d160c5d6b641cbe616f751922b52124ac61cafc0102a243c961e1", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2272, + "n": 45, + "prefix_coefficient_mass": 7, + "sha256": "937f16c936a07d77ac4e08d1a18b8f453dba3e13130e5f73b44432a695fe3670", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2368, + "n": 46, + "prefix_coefficient_mass": 8, + "sha256": "78132873164aa0fd3b2b31f61e833618731117293a30168d65e3ecf7f31a5a83", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2368, + "n": 46, + "prefix_coefficient_mass": 7, + "sha256": "2e1f3bd3910fa95dccd13cfd167622992f85eaa99bdd6be32dbc92062a7743e8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2464, + "n": 47, + "prefix_coefficient_mass": 8, + "sha256": "6901f81ea2bfee9452c23326d505f23636d53e0c31c11f423010d9e3b3ab11e3", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2464, + "n": 47, + "prefix_coefficient_mass": 7, + "sha256": "a98879c659deac41fca22e1d287b25a1745a1cde0b021cfef159bb37b8d24359", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2560, + "n": 48, + "prefix_coefficient_mass": 8, + "sha256": "efd775922bc961b1f1fca1c95ceaef51353fed727249c4ca44144da57726e2ec", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2560, + "n": 48, + "prefix_coefficient_mass": 7, + "sha256": "7138d202d3b460aa734c56295fccc733c97fd85360f7c97504b2e62ed9337d5f", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2656, + "n": 49, + "prefix_coefficient_mass": 8, + "sha256": "20d0a61da3afe60ee75a8906d2cc1556f69c46546e6679658c3e9eef2f1467a5", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2656, + "n": 49, + "prefix_coefficient_mass": 7, + "sha256": "d67467767694bdb2fb18713b1b798ab261b9b8b9737b0952b42e39824229715f", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2752, + "n": 50, + "prefix_coefficient_mass": 8, + "sha256": "5033da12174b35d30415fd9f2f007d0f1bdeda284954195f4cb07cf5e380a348", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2752, + "n": 50, + "prefix_coefficient_mass": 7, + "sha256": "903016674b3cc132d90e2c746842ff5fb6fe858092dd3173fae1ecbb5cc7e5a5", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2848, + "n": 51, + "prefix_coefficient_mass": 8, + "sha256": "df74c9d0bb76772596e636daa66358ecdac9af54b701a09592ade0fcc3238a1e", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2848, + "n": 51, + "prefix_coefficient_mass": 7, + "sha256": "fd0d406315b34d29380ed29ae5213327f74473418f91c5163d0ad86767d5565d", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2944, + "n": 52, + "prefix_coefficient_mass": 8, + "sha256": "16a31d90e35de5daa5f756762dab096a5f3ee3bb64630986b36767e90a62bfaf", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2944, + "n": 52, + "prefix_coefficient_mass": 7, + "sha256": "dcd9e34b314c6e35b3d507afc98a233c1087bc86f30f81ca9a69ee362d864a5b", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3040, + "n": 53, + "prefix_coefficient_mass": 8, + "sha256": "aafc49e4baaf88e5bcf799a4ffcfc10267eaed255d03996f8a830b2f06c3a8c7", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3040, + "n": 53, + "prefix_coefficient_mass": 7, + "sha256": "dd8947d204b97d8362a852f9ab9705dbbc1a4239f4c6c0a8ab2f974e3ca38631", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3136, + "n": 54, + "prefix_coefficient_mass": 8, + "sha256": "f80dfa169dc574a438b7700cb32e7e5b87cf5134184a3aa9fb6d4245376b656f", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3136, + "n": 54, + "prefix_coefficient_mass": 7, + "sha256": "cdf7c79aafb1231df1fe4aa4dc4aaeda80f941000debe476be30cc443884243a", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3232, + "n": 55, + "prefix_coefficient_mass": 8, + "sha256": "ad45ceecd23aefcaa4f02619e6a142c5c6c82c9230f72b43d1f4f4eba6adb26e", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3232, + "n": 55, + "prefix_coefficient_mass": 7, + "sha256": "8d427381c158b30ffa0337d9c6694adba0abb44a802d369cb60798aaed6652fe", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3328, + "n": 56, + "prefix_coefficient_mass": 8, + "sha256": "3793d3aaa4c2138fe6cad8f4f51148c7bed5a4d298b37b914e424ba1333d3072", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3328, + "n": 56, + "prefix_coefficient_mass": 7, + "sha256": "e98193a0f20edac0b0a018bb459b17d4f166068803d0bb7aae9018974b6ec813", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3424, + "n": 57, + "prefix_coefficient_mass": 8, + "sha256": "8ff08a77d48813af3a5a9d3644d2921bd5abb662b1c89dc2f9d9b0666da7773f", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3424, + "n": 57, + "prefix_coefficient_mass": 7, + "sha256": "774870868ac1e349baabd5cb920cce108524bb5d96f57227fde1a3a8a078512e", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3520, + "n": 58, + "prefix_coefficient_mass": 8, + "sha256": "0222f0e6a81e41d3d087b2104eae4307df27f074a3296277a28a95627a4cb340", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3520, + "n": 58, + "prefix_coefficient_mass": 7, + "sha256": "e932c5bb4afb0785569acdacc3e619508311b75a6077bd52a62b8a0a481c69ae", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3616, + "n": 59, + "prefix_coefficient_mass": 8, + "sha256": "ba17b4bc5f16a738181b42a28b4eb376cc7a3ada4188bcef4c90332ebfb2351c", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3616, + "n": 59, + "prefix_coefficient_mass": 7, + "sha256": "8409be104fec2072de74455997b063636fd06ebf9d35a267fc809bf0c3fcede6", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3712, + "n": 60, + "prefix_coefficient_mass": 8, + "sha256": "eb3d2f52475b8921e71928a47e2f0780c133d915fe09d63a0f2616d9b0037908", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3712, + "n": 60, + "prefix_coefficient_mass": 7, + "sha256": "cecd61793f74bb3361d9e37acc0f22a2122bfee10e45976d68bb32b10207b0b4", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3808, + "n": 61, + "prefix_coefficient_mass": 8, + "sha256": "57da169bbd2e7d198832c0ea0a9bc0aa6ff14bf8186c2ee8690dd948e40b475b", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3808, + "n": 61, + "prefix_coefficient_mass": 7, + "sha256": "cd8f3dad2bd66d80767027eea047522bc4632cd3530838f263655561e283d71a", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3904, + "n": 62, + "prefix_coefficient_mass": 8, + "sha256": "22bd42acadbd578147eb4a9eeb8eb1aca5bb2a45574e6b95546498997ff19135", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3904, + "n": 62, + "prefix_coefficient_mass": 7, + "sha256": "539f31c193425b29063865a989003e372d9352ff1944149bf9e4088604ac0340", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4000, + "n": 63, + "prefix_coefficient_mass": 8, + "sha256": "a41d36478c96f91bdd594ddc42656fcd85867c0f5e1cea38f69e1cab20f38450", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4000, + "n": 63, + "prefix_coefficient_mass": 7, + "sha256": "f15c2f3a580576d440e2b7c2ef31b82b78288865f9fa05af56e5ba432102a3ae", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4096, + "n": 64, + "prefix_coefficient_mass": 8, + "sha256": "21105e61da692794214e970dac1e95f64a2714f56726b8d2b0a6e3116d7c4bd0", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4096, + "n": 64, + "prefix_coefficient_mass": 7, + "sha256": "24af359176e752bff603b32b16639809dfab8455057525646f6c0e9834ca582e", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 10048, + "n": 95, + "prefix_coefficient_mass": 9, + "sha256": "b77b6435f95711386689fa36d5ae43bae99719bf3074788416f30d0b619164ec", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 10048, + "n": 95, + "prefix_coefficient_mass": 8, + "sha256": "e6b7fb3f8738a000f69f62c11c50b021ad4037d2abc8bf62efe688d7eb0c15a6", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16192, + "n": 127, + "prefix_coefficient_mass": 9, + "sha256": "05a30eecacba7987a0bb24e64fca7d6895ef9ad137b28f513735f188062ddc0a", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16192, + "n": 127, + "prefix_coefficient_mass": 8, + "sha256": "d0e78f08054b1de2bc7fd2e01a480f7cd673376459c29f990397d2dec09c59ae", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16384, + "n": 128, + "prefix_coefficient_mass": 9, + "sha256": "963f4c901f7ed3d9d60b5d746e546e394451b760b9fed48877b393a54d72fad6", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16384, + "n": 128, + "prefix_coefficient_mass": 8, + "sha256": "96a96d47460fb21f8bdb4c8233e632f2aa7f14392949c529757d45aec87cbda6", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 16768, + "n": 129, + "prefix_coefficient_mass": 10, + "sha256": "37de4ab88bae97ed2190bba1c52a822ff1345025e91520288adf801a4f9b9857", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 16768, + "n": 129, + "prefix_coefficient_mass": 9, + "sha256": "f72928ffb4f5332f8cd60d45698dbbe333caf6b3aa965b7b01864168a36ebd01", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 40576, + "n": 191, + "prefix_coefficient_mass": 10, + "sha256": "f03b70e6143778b25fbcf067cc0f51d6c155d6df573ccd2013559dd09cf8d201", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 40576, + "n": 191, + "prefix_coefficient_mass": 9, + "sha256": "d4e2981794999dc71dd52a29e8d9607c47f53c0a893fad1113bc54a90f17c01a", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65152, + "n": 255, + "prefix_coefficient_mass": 10, + "sha256": "251269eee5dc846e69ff7e079073bcf376e8255b3be7576ba119c969111a84fe", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65152, + "n": 255, + "prefix_coefficient_mass": 9, + "sha256": "2a64267a446f4a4257f48520134d8f2c72f37a30072ff5fdaa71e2a941bc1a44", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65536, + "n": 256, + "prefix_coefficient_mass": 10, + "sha256": "7f3d6fab9f0e67466a53acda572ca9e638e1b31861f0f3bbd1e3fdfaa0cf7f70", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65536, + "n": 256, + "prefix_coefficient_mass": 9, + "sha256": "777b8743801202f442ba360972566e4c68c10196a8d08605396e92cc45b24ae0", + "sign": -1 + } + ] +} diff --git a/research/dirty-cubic-precision-validation/MACOS311.log.txt b/research/dirty-cubic-precision-validation/MACOS311.log.txt new file mode 100644 index 0000000000..85ed576e74 --- /dev/null +++ b/research/dirty-cubic-precision-validation/MACOS311.log.txt @@ -0,0 +1,14 @@ +PASS uniform budgets 5220 +PASS free polynomial prefixes 142 +PASS frozen words, dense paths and controls +PASS full-grid dirty kernel 3 1 +PASS full-grid dirty kernel 4 1 +PASS full-grid dirty kernel 5 1 +PASS full-grid dirty kernel 7 1 +PASS full-grid dirty kernel 8 1 +PASS full-grid dirty kernel 9 1 +PASS full-grid dirty kernel 9 2 +PASS full-grid dirty kernel 11 1 +PASS full-grid dirty kernel 13 1 +PASS full-grid dirty kernel 16 1 +PASS_DIRTY_CUBIC_PRECISION budgets=5220 symbolic=142 rounded=80 kappa=unchanged diff --git a/research/dirty-cubic-precision-validation/README.md b/research/dirty-cubic-precision-validation/README.md new file mode 100644 index 0000000000..3b3cec3090 --- /dev/null +++ b/research/dirty-cubic-precision-validation/README.md @@ -0,0 +1,37 @@ +# Frozen two-platform validation + +The complete mathematical receipt is byte-identical on macOS arm64 Python +3.11.15 and Linux aarch64 Python 3.14.8, with isolated optimized execution. +Both used source manifest +`0e8f2555997333cad4ccb3df3c815308ab7f9d762356c93295b93cef73054f11`. +Both output receipts and the package's `EXPECTED.json` have SHA256 +`39901bc4654eb857f991a48eb9e5d839ff35153bbca2dd2c1e0d5ec9cef38764`. + +The macOS command ran with `/tmp` as its working directory. Linux ran a +separately transferred archive, verified by SHA256 before extraction, with +all package files read-only and no repository checkout or third-party Python +dependencies. Its supervised process completed with exit code zero. Each +platform passed all eight disposable package/source-binding controls and a +read-only binding relocation. The latter integrity check is separate from +the complete mathematical replay. + +[VALIDATION.json](VALIDATION.json) records environments, counts and scope. +The per-platform full results and logs are retained here. The source audit +in [SOURCE-GIT-CHECK.json](SOURCE-GIT-CHECK.json) compares all 22 retained +files directly with their pinned original Git objects. `make +selected-record-check` also passed on the unchanged base record. + +The mathematical replay includes 5,220 integer budgets, 652,654 free-algebra +leaf boundaries, 11,142 dense prefix boundaries, 66 separate inverse solves, +5,104 directly reconstructed intervals, and 6,032 actual rounded leaf +boundaries across 80 kernel cases. All initial scalar words in those kernel +cases have a nonzero lowest working bit, every case has nonzero rounding +error, and every source/dirty array is restored exactly. Thirteen +mathematical controls are retained in the full results. + +This is finite exact evidence supporting the written all-size proof and +inherited analytic, leaf and preparation hypotheses. It is not an +independent human review or formal verification of the full multiplication +theorem. No practical runtime improvement or new kappa is claimed. Hosted +CI is a separate publication check, not represented as passed by these +local validation records. diff --git a/research/dirty-cubic-precision-validation/SOURCE-GIT-CHECK.json b/research/dirty-cubic-precision-validation/SOURCE-GIT-CHECK.json new file mode 100644 index 0000000000..486b1c2689 --- /dev/null +++ b/research/dirty-cubic-precision-validation/SOURCE-GIT-CHECK.json @@ -0,0 +1,181 @@ +{ + "status": "PASS", + "files": [ + { + "path": "vendor/628/dirty.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/dirty.py", + "git_blob": "2b9471083706a37519a1af7598e012f5fecf2636", + "sha256": "09e7f41141594e6540828330d27be27c083ee6569660ae42c0cd519b09fc8d21", + "byte_identical": true + }, + { + "path": "vendor/628/weighted.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/weighted.py", + "git_blob": "da90ee6e83b15164cabdbe4472a2c5d53706160e", + "sha256": "8b0f93d131a30e64eb0ccd893779daffea79c0c00f1d2a30a91d23eb2bf0bff5", + "byte_identical": true + }, + { + "path": "vendor/628/check.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/check.py", + "git_blob": "5ef6dd67b6c6cf949fedf16c0cd7b34ca4ccafc2", + "sha256": "a3e46b556894d71a1c83bbbac01c50c1a541285fc9422a3567d5eb1d1ee86e7d", + "byte_identical": true + }, + { + "path": "vendor/628/scan.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/scan.py", + "git_blob": "d620e493596f12578c1ce47f216c44c79b65de08", + "sha256": "1a9c01ca1a29a9be1e756858161202621db29d5d332a4266b4017a9502a50d7e", + "byte_identical": true + }, + { + "path": "vendor/628/interval_kernel.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/interval_kernel.py", + "git_blob": "1182175a55cb871481de0f56ea9ae56e474705fe", + "sha256": "9b7bb24640a9a7d3f83c7951dfef483ec933db4c50de6c0130b85f450eeddfbe", + "byte_identical": true + }, + { + "path": "vendor/628/check_budgets.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/check_budgets.py", + "git_blob": "ff21b6e1904b5b492fb4389ae1c49ca69588c002", + "sha256": "581ba58a30e05cb09dadb35be6e25bd92232b2137a0cc7eb5b83e2ee20c0bf02", + "byte_identical": true + }, + { + "path": "vendor/628/FACTORS.json", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/FACTORS.json", + "git_blob": "d3894bd2a1660229f1a7ed16c9d982689effc96f", + "sha256": "643d60ac24d5e67f6c9305175bd1c99bf5e42edfef6d1995c051e0b98ba446a7", + "byte_identical": true + }, + { + "path": "vendor/628/DIRTY-PROOF.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/DIRTY-PROOF.md", + "git_blob": "caf4aafc784a630d61ca7874a0bd19cbcb34e585", + "sha256": "bb7c2fdc1c4673d56531fd56fb8790c81a16813ac152c10f1afabc9efdd70d61", + "byte_identical": true + }, + { + "path": "vendor/628/PROOF.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/PROOF.md", + "git_blob": "fb8fe7cb3bd036c69047ae7b4f4009a51b11825b", + "sha256": "595893609764c64a90d9b21b9cbd6d9e61980703f3deb43361105cf8c3d1d093", + "byte_identical": true + }, + { + "path": "vendor/628/NOTICE.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/NOTICE.md", + "git_blob": "22fbeb8ef0a28dd6b3feea718492091319ceb96e", + "sha256": "abeacf1ad1491d5797cfcf1f3832799bbf3b24b99597229d7bc884059a51ec68", + "byte_identical": true + }, + { + "path": "vendor/628/SOURCE.json", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/SOURCE.json", + "git_blob": "59bddaea4d66725bf675a67b6d2cf85a061b1fae", + "sha256": "38a425e2d3a72a5e39b18b54c728e40407e121d481a1c6423edd5c18e9b68a04", + "byte_identical": true + }, + { + "path": "vendor/877/core.py", + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/core.py", + "git_blob": "9ca79fdc2f1688fd4a0ea71bf6c33edda4ff3c98", + "sha256": "f0ed30eec6f6cfc193ffcc20ca160aab21b837b30fb3b63589faf633d612bc71", + "byte_identical": true + }, + { + "path": "vendor/877/matrices.py", + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/matrices.py", + "git_blob": "25ece6ffbbecc460e0ef11b66852175782b0e58f", + "sha256": "dd7fb26bf5977480c07e69f1a99ba3c883cab322a4d41ce08437cd82c19e1f13", + "byte_identical": true + }, + { + "path": "vendor/877/PROOF.md", + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/PROOF.md", + "git_blob": "69c98a21d1c957135baaf7e763ffe3d8d70906cd", + "sha256": "a4ee1b8a0175048948272141c675a38625fda577770b9382af4d3cf328355e55", + "byte_identical": true + }, + { + "path": "vendor/877/README.md", + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/README.md", + "git_blob": "5ce83ef209894ab7f4fd7935a3d56001c93be0fe", + "sha256": "59e2b38aef369b379977a97c768d0054f6f414d0e22808ab46c11bdedb42ebeb", + "byte_identical": true + }, + { + "path": "vendor/877/SOURCES.json", + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/SOURCES.json", + "git_blob": "c95a6b17e2e44ec8693f5f15b31970ca062f90a7", + "sha256": "63ad734d3ca693114989ec794ed2be8a97f79299c7529962c8dc5f78086eb3ed", + "byte_identical": true + }, + { + "path": "vendor/862/PROOF.md", + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/PROOF.md", + "git_blob": "0196499f010857b58ea297611f44721a4b7a0ec6", + "sha256": "bdb0518892c631f8b6ac149535ac5a92270def19fe7778ca737641cd56b7da0b", + "byte_identical": true + }, + { + "path": "vendor/862/budget.py", + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/budget.py", + "git_blob": "32562bc20c428da06a1d4930e5c20f9399b6352c", + "sha256": "7238030e1dfefc1e7a68eeaaae7bb987df572bcda608907e657b1a940e157a97", + "byte_identical": true + }, + { + "path": "vendor/862/NOTICE.md", + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/NOTICE.md", + "git_blob": "737060bd4d9666a925dfd1e17fc6eaa53c289b8d", + "sha256": "08c25cd6248e8c4dc7008e14e9ea7690f9084e94f927bb602363773637a89921", + "byte_identical": true + }, + { + "path": "vendor/862/SOURCE.json", + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/SOURCE.json", + "git_blob": "ee7556c940053e771d9bc163f322b46561fd12d3", + "sha256": "2c35e44aeb4b9ab53eec9b6f0690ddc59c865a8dd38e458ca6805924cedbd877", + "byte_identical": true + }, + { + "path": "vendor/862/vendor/PR621-PROOF.md", + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/vendor/PR621-PROOF.md", + "git_blob": "0c757c37c70fdeb261d73f111ceedd3b233287bf", + "sha256": "2b8056c88e66f692f407450fff0414d41bcd09db8597be22e274a6c3dc20eb9e", + "byte_identical": true + }, + { + "path": "vendor/862/vendor/PR621-NOTICE.md", + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/vendor/PR621-NOTICE.md", + "git_blob": "a78e84066711e2f4776152d69d480e9629c26961", + "sha256": "96111c95cfec3c03a6f69c8e02c5d0bceff957d187e638d0534c676d6e3ffd77", + "byte_identical": true + } + ] +} diff --git a/research/dirty-cubic-precision-validation/VALIDATION.json b/research/dirty-cubic-precision-validation/VALIDATION.json new file mode 100644 index 0000000000..561f7459d6 --- /dev/null +++ b/research/dirty-cubic-precision-validation/VALIDATION.json @@ -0,0 +1,42 @@ +{ + "actual_leaf_boundary_checks": 6032, + "all_input_words_have_odd_low_working_bit": true, + "all_rounding_errors_nonzero": true, + "base": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "byte_identical_expected_and_both_platform_results": true, + "dense_prefix_boundaries": 11142, + "direct_interval_checks": 5104, + "gauss_inverse_checks": 66, + "hosted_ci": "Not yet run for this package at local publication validation", + "mathematical_controls": 13, + "package_controls_per_platform": 8, + "package_manifest_sha256": "0e8f2555997333cad4ccb3df3c815308ab7f9d762356c93295b93cef73054f11", + "platforms": { + "linux314": { + "exact_expected_receipt": true, + "exit_code": 0, + "machine": "aarch64", + "optimized": 2, + "platform": "Linux-6.17.0-1032-nvidia-aarch64-with-glibc2.39", + "python": "3.14.8 (main, Oct 9 2026, 15:22:55) [Clang 22.1.3 ]", + "read_only_source_package": true, + "standalone_working_directory": true + }, + "macos311": { + "exact_expected_receipt": true, + "machine": "arm64", + "optimized": 2, + "platform": "macOS-27.0.1-arm64-arm-64bit", + "python": "3.11.15 (main, Mar 25 2026, 02:58:47) [Clang 22.1.1 ]", + "standalone_working_directory": true + } + }, + "receipt_sha256": "39901bc4654eb857f991a48eb9e5d839ff35153bbca2dd2c1e0d5ec9cef38764", + "rounded_kernels": 80, + "scope": "Finite exact evidence plus written universal proof and inherited analytic/leaf/preparation hypotheses. No new kappa, independent human review or full formal multiplication theorem claim.", + "selected_record_check": "PASS unchanged selected source and kappa", + "status": "PASS_FROZEN_TWO_PLATFORM_REPLAY", + "symbolic_leaf_boundaries": 652654, + "symbolic_traces": 142, + "uniform_budgets": 5220 +} diff --git a/research/dirty-cubic-precision/CLAIM.json b/research/dirty-cubic-precision/CLAIM.json new file mode 100644 index 0000000000..506619b042 --- /dev/null +++ b/research/dirty-cubic-precision/CLAIM.json @@ -0,0 +1,103 @@ +{ + "contributor": "Chafik Boukhalfa / chafreaky", + "base": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "contribution": "All-size no-repeated-factor prefix induction and sufficient cubic precision for unchanged arbitrary-dirty balanced cyclic inverse arithmetic.", + "kappa": "unchanged", + "discovery": "Combine the common-isometry subset bound from PR862 with the PR877 dirty-prefix perturbation method after proving a new free-algebra prefix invariant.", + "sources": { + "628": "0768f97d06c623b8211e651543c66135796b62bf", + "877": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "862": "57e0659150d323b784580110b36aa64a2dca2a33" + }, + "overlap_checked_utc": "2026-10-13T11:04:13.808775+00:00", + "overlap_query": "dirty cubic", + "matching_prs": [ + { + "headRefOid": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "number": 877, + "title": "Research audit: quartic precision for balanced dirty cyclic inverses (no new kappa)" + }, + { + "headRefOid": "57e0659150d323b784580110b36aa64a2dca2a33", + "number": 862, + "title": "Research: cubic precision and exact coarse-grid recovery for cyclic inverses (no \u03ba)" + }, + { + "headRefOid": "11a4e3176511ece840d57b7db045772945d9703c", + "number": 70, + "title": "Profile-aware frame compilation: conditional kappa = 5.10403292611078e-5 above frozen #62" + }, + { + "headRefOid": "983d66f0f2e48ee500ec7eee2da9244c001c5064", + "number": 764, + "title": "Research: sharp inverse-square rounding bound for cyclic scans" + } + ], + "latest_prs": [ + { + "headRefOid": "12c4789c61ac843dcd00e2c71e5388d362298b1a", + "number": 897, + "title": "No new \u03ba: covers of E7 by hyperplane flats are exactly the D4-frame triples; near-covers are the A3s (checked)" + }, + { + "headRefOid": "4e34d42b64ff05a4f293b9748d71642e14ef273d", + "number": 896, + "title": "[Lean] Prove nonlinear dirty-commutator restoration and ordered products (no new kappa)" + }, + { + "headRefOid": "3bf6fccaf17521ffdb9b3bec2740ba4886478556", + "number": 895, + "title": "No new \u03ba: BW16 as a unit \u2014 window c \u2265 72 puts its ceiling at 0.649\u00d7 E8's (checked)" + }, + { + "headRefOid": "144e7e21c4f6ab4afda1338fe25eaab5a53b4431", + "number": 894, + "title": "Research audit: exact endpoint-to-kappa reduction of the selected frontier799 assembly (no new kappa)" + }, + { + "headRefOid": "5d8c2e96e0624efbadb182d9ee0a09ee65b70b48", + "number": 893, + "title": "Independently audit PR236 source commands and recorded axiom evidence" + }, + { + "headRefOid": "9778ba2d891468996b81eb50c389bb4169df0025", + "number": 892, + "title": "Research: rank-eight coded-helper endpoint and complete mixed-cost obstruction (no new kappa)" + }, + { + "headRefOid": "645fb93fcd21b86aca7e2bf81582be5c62411b27", + "number": 891, + "title": "Research construction: R439 phase-B blocks 506/523 to 24/39 ADDs + certified single-write class boundaries (no new kappa)" + }, + { + "headRefOid": "4b3bd8cbe8e3e81c44161017c9b72c905a8040a8", + "number": 890, + "title": "Conditional \u03ba = 0.001661957774647029: T21 whole-owner packing and fixed-family bound" + }, + { + "headRefOid": "e2021d1c9e06948528cbc0a8fd7079b671da981d", + "number": 889, + "title": "Research: batch common-factor product shears with dirty restoration" + }, + { + "headRefOid": "8c9964b7ab4419409d20762c8d78591701008d04", + "number": 888, + "title": "Research: Gaussian nonlinear message copy floor 40b under explicit width pricing" + }, + { + "headRefOid": "5b14b7a0a7443421cfc719ccec1ac909ddf34c3e", + "number": 887, + "title": "[Lean] Prove reserved-scratch echo bounds and equality family (no new kappa)" + }, + { + "headRefOid": "881f72ec596a5c6d7aba801153792292ecc39737", + "number": 886, + "title": "Scoped negative result: PR589's bit word is exactly frame-optimal (no new kappa)" + } + ], + "related_896": "Formalizes complete nonlinear dirty restoration and ordered products; its description explicitly makes no precision estimate. This package adds the prefix invariant and cubic norm/rounding analysis. No PR896 source consumed.", + "seed": 890877862, + "seed_scope": "Deterministic dense test matrices only; not a topic assignment or randomized theorem discovery.", + "review_context": "Read CONTRIBUTING, central PR ledger and contribution-review index at the frozen base. Their retained rounds predate PR877; live exact heads separately pinned.", + "ai_assistance": "Substantial OpenAI Codex assistance; no independent human review or full formal theorem verification claimed." +} diff --git a/research/dirty-cubic-precision/EXPECTED.json b/research/dirty-cubic-precision/EXPECTED.json new file mode 100644 index 0000000000..4afd7db0f9 --- /dev/null +++ b/research/dirty-cubic-precision/EXPECTED.json @@ -0,0 +1,3764 @@ +{ + "algebra": { + "dense_prefixes": [ + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 2, + "gaussian_inverse_checks": 1, + "inverse_prefix_maximum": 4, + "leaf_calls": 1, + "n": 1, + "prefix_maximum": 4, + "prefix_stream_sha256": "969a9e9e9f35f9be9f2b2241a6a1c2df623dce362d764e7013f4542f7fc7e3e1", + "sign": -1, + "subset_bound": 3, + "subword_maximum": 4, + "subwords_checked": 1 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 2, + "gaussian_inverse_checks": 1, + "inverse_prefix_maximum": 4, + "leaf_calls": 1, + "n": 1, + "prefix_maximum": 4, + "prefix_stream_sha256": "969a9e9e9f35f9be9f2b2241a6a1c2df623dce362d764e7013f4542f7fc7e3e1", + "sign": 1, + "subset_bound": 3, + "subword_maximum": 4, + "subwords_checked": 1 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 6, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 11, + "leaf_calls": 4, + "n": 2, + "prefix_maximum": 7, + "prefix_stream_sha256": "eac89db41e28af574ba9f40eccea77b4828aa4c4091a1b6a11fc27cfe33631f2", + "sign": -1, + "subset_bound": 6, + "subword_maximum": 11, + "subwords_checked": 10 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 6, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 11, + "leaf_calls": 4, + "n": 2, + "prefix_maximum": 11, + "prefix_stream_sha256": "7d85403a8a334c0295e5d0fdec737a5a39083d94a8305222dce49ec6cf56960d", + "sign": 1, + "subset_bound": 6, + "subword_maximum": 11, + "subwords_checked": 10 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 18, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 17, + "leaf_calls": 10, + "n": 3, + "prefix_maximum": 9, + "prefix_stream_sha256": "1200f51284065a4887135ac46ca73760aea4aaba51ad59c5c0b9171e1ae81d00", + "sign": -1, + "subset_bound": 8, + "subword_maximum": 17, + "subwords_checked": 55 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 18, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 17, + "leaf_calls": 10, + "n": 3, + "prefix_maximum": 17, + "prefix_stream_sha256": "9788c364b5da679492b555e0513a3a3350b5bf3e6e12fc4f174b0bac1212e056", + "sign": 1, + "subset_bound": 8, + "subword_maximum": 17, + "subwords_checked": 55 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 129, + "leaf_calls": 28, + "n": 5, + "prefix_maximum": 69, + "prefix_stream_sha256": "efc540e17ae923e82351ad0a42a138dff7242bed65027d79ab6edfef0b411fba", + "sign": -1, + "subset_bound": 68, + "subword_maximum": 129, + "subwords_checked": 406 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 129, + "leaf_calls": 28, + "n": 5, + "prefix_maximum": 116, + "prefix_stream_sha256": "69efb721a8828a658a04e2b01b7a0d09f375c68ffc33df151618930d2d652ef2", + "sign": 1, + "subset_bound": 68, + "subword_maximum": 129, + "subwords_checked": 406 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 177, + "leaf_calls": 64, + "n": 8, + "prefix_maximum": 97, + "prefix_stream_sha256": "c007ad9fa0a53c137cc65401ea783b64444da5e3f4ea5008aa3c75d761534b2b", + "sign": -1, + "subset_bound": 176, + "subword_maximum": 177, + "subwords_checked": 2080 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 54, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 177, + "leaf_calls": 64, + "n": 8, + "prefix_maximum": 117, + "prefix_stream_sha256": "8d11037a48e7cb01db5ee69004f805e3185d10d2ef6083cf6ef33c96ac98113c", + "sign": 1, + "subset_bound": 176, + "subword_maximum": 209, + "subwords_checked": 2080 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 50061, + "leaf_calls": 232, + "n": 15, + "prefix_maximum": 19937, + "prefix_stream_sha256": "f128808bec62ce05767af3cb9b150a268f8137e57cd239cc5ae8e7151ab1fecd", + "sign": -1, + "subset_bound": 35831808, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 50061, + "leaf_calls": 232, + "n": 15, + "prefix_maximum": 21625, + "prefix_stream_sha256": "527623aa8431c1bb6e806c76ebca69bd688f2dd1d12acc92b8a89d5fff87ec67", + "sign": 1, + "subset_bound": 35831808, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 1153, + "leaf_calls": 256, + "n": 16, + "prefix_maximum": 86, + "prefix_stream_sha256": "0d481c556bbc774b98d807bcd1edf6a8dd0f47d05ef581aa52b7d59ec9deee80", + "sign": -1, + "subset_bound": 1679616, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 162, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 1153, + "leaf_calls": 256, + "n": 16, + "prefix_maximum": 86, + "prefix_stream_sha256": "40250a806e16655e476f9dc257e76431a7cc025577277757ae01cc9de2d53c69", + "sign": 1, + "subset_bound": 1679616, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 486, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 119703745, + "leaf_calls": 976, + "n": 31, + "prefix_maximum": 79626241, + "prefix_stream_sha256": "2cac4de6f3c493ce44a6aa68090d6dfa95867d8ef7fb767b6af7c0a7631ad742", + "sign": -1, + "subset_bound": 641959232274432, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 486, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 119703745, + "leaf_calls": 976, + "n": 31, + "prefix_maximum": 79628071, + "prefix_stream_sha256": "cbc1c2f1abb4c79aa7d2c33d4df076d8bf01cb1d3e041597d18e9b5a9a9522c5", + "sign": 1, + "subset_bound": 641959232274432, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 1458, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 23224321, + "leaf_calls": 4000, + "n": 63, + "prefix_maximum": 4386947, + "prefix_stream_sha256": "c81c263a55babf19896fd015f934602b8371de4331453aa64b0cb7ed089f2f75", + "sign": -1, + "subset_bound": 19057724291985084082777227264, + "subword_maximum": 1, + "subwords_checked": 0 + }, + { + "all_columns_and_dirty_restoration": true, + "coefficient_bound": 1458, + "gaussian_inverse_checks": 4, + "inverse_prefix_maximum": 23224321, + "leaf_calls": 4000, + "n": 63, + "prefix_maximum": 4386947, + "prefix_stream_sha256": "b359eb73a856e8f1407eff002eec1ae7b916fd35d53f11845d6f6cbe457172aa", + "sign": 1, + "subset_bound": 19057724291985084082777227264, + "subword_maximum": 1, + "subwords_checked": 0 + } + ], + "frozen_words": [ + { + "leaves": 1, + "n": 1, + "sha256": "57a72175c72e98144f507728f8ea97a5d4acb234d745690c00f743d1a59d5611", + "sign": -1 + }, + { + "leaves": 1, + "n": 1, + "sha256": "5518a65c40f6c5664df81f579e5ce430d9d47106f63a5940b9025b825379ec3e", + "sign": 1 + }, + { + "leaves": 4, + "n": 2, + "sha256": "6719b802844ca359533f48de09a8a62c03ec75e009626f6ca2ef31ae5e11700a", + "sign": -1 + }, + { + "leaves": 4, + "n": 2, + "sha256": "a3fc004bbb17a4d13fd404e6c27d3c8b4c6b34e6245c868f0b043ec3268dd8a2", + "sign": 1 + }, + { + "leaves": 10, + "n": 3, + "sha256": "593cfabd15798f1f91cb8f227762dfbd73e65722b5082d51567e99208daa61db", + "sign": -1 + }, + { + "leaves": 10, + "n": 3, + "sha256": "a0ca2ce8a9c8ba8fb504de1dc113e54c016aa8f4032647cb30a4ac95e8989ca7", + "sign": 1 + }, + { + "leaves": 16, + "n": 4, + "sha256": "d73513a7343590a8c115aeb2324c58cfd53f98f24a78d6d3f018126624e97813", + "sign": -1 + }, + { + "leaves": 16, + "n": 4, + "sha256": "41b90f5721c4ee01df2020b39aa7d4756d2bf887b33e055562255ab3e9fbdc5f", + "sign": 1 + }, + { + "leaves": 28, + "n": 5, + "sha256": "15cf044dd7b08cc266e65a5683efcde475f175f01bd67ce72ca246e1621fe921", + "sign": -1 + }, + { + "leaves": 28, + "n": 5, + "sha256": "737a9a072d0f39ce2aac2dc728c27976b07d6a2fb029ef037ed64e00dc892779", + "sign": 1 + }, + { + "leaves": 40, + "n": 6, + "sha256": "4289b062a0d391739d931f90103a6b805a5cddaea5f53265319b0e3af82cc762", + "sign": -1 + }, + { + "leaves": 40, + "n": 6, + "sha256": "fbe10e6d44342b8c0a1430716091674abfea1a6af40f83903eba90e39dec0fb7", + "sign": 1 + }, + { + "leaves": 52, + "n": 7, + "sha256": "89e1d9fce3a18bde5162327b53a37e177718157a4378068c8cf88c96e90a1d2f", + "sign": -1 + }, + { + "leaves": 52, + "n": 7, + "sha256": "29728ca158ddd42dfde41586046fcdd190f22033d49d4426e4ab84ddd3d8131c", + "sign": 1 + }, + { + "leaves": 64, + "n": 8, + "sha256": "e57f879002a02a4f28fad6fe861fd83af8b4891b317a3e39cf2885ac71426c11", + "sign": -1 + }, + { + "leaves": 64, + "n": 8, + "sha256": "ed51a030d96d00ce14f5dabfbbf24c76387f0cefb54bf925802ada9e0f00e81c", + "sign": 1 + }, + { + "leaves": 88, + "n": 9, + "sha256": "fa0265a6cadce9523bdb222d08478d12f51a1c1d5eac737e5c2c874d788f529f", + "sign": -1 + }, + { + "leaves": 88, + "n": 9, + "sha256": "a76b9aaaedf2c7bc7b2586e8e999d124e872d5a66b0cfdeb6aab47942bb45259", + "sign": 1 + }, + { + "leaves": 112, + "n": 10, + "sha256": "bf9a14999bf3517b3a635db96667b59f5c2c7d7f9d54ce2cb45579e25069bd61", + "sign": -1 + }, + { + "leaves": 112, + "n": 10, + "sha256": "a0f88b03088b26f601b530d31f268978c22e90be184234aea77e2c4ffc718235", + "sign": 1 + }, + { + "leaves": 136, + "n": 11, + "sha256": "50ec504c43b1fb3a62c4cdcf1403f3466a75defd0e2a64835af572a5ba469b60", + "sign": -1 + }, + { + "leaves": 136, + "n": 11, + "sha256": "91c1cd0e89786c18e1909ec892ee44a3786bdb83b36df57344d4369ad345d8da", + "sign": 1 + }, + { + "leaves": 160, + "n": 12, + "sha256": "2394bde92b9b6dc1f61714edfeb7c97073b62047d90398b3a5dbf4222565b2d3", + "sign": -1 + }, + { + "leaves": 160, + "n": 12, + "sha256": "d399f15fd8f820576d50bceedcb5f00947084a356e1a1058078e96bda4827afe", + "sign": 1 + }, + { + "leaves": 184, + "n": 13, + "sha256": "c27e387663e2854402093f67f697a5ce861128ee49144d41f6f2c663bafb0b66", + "sign": -1 + }, + { + "leaves": 184, + "n": 13, + "sha256": "af062aa6d7724c591295d580d966ffd003471f0f74e548875da10bd5627824dc", + "sign": 1 + }, + { + "leaves": 208, + "n": 14, + "sha256": "c5844b19ef69984c7968212ba3d011766ab1226b5b782a349d515733f33190f0", + "sign": -1 + }, + { + "leaves": 208, + "n": 14, + "sha256": "7bfcdced80610276c437b9f567ef75717d4b1ad4392f9ee67ff8b7a69c7f4723", + "sign": 1 + }, + { + "leaves": 232, + "n": 15, + "sha256": "dcf775c02489e6d3383c7329390c4c3519d121334e7841b9dda1996dde58c74b", + "sign": -1 + }, + { + "leaves": 232, + "n": 15, + "sha256": "5fe22f1790e7ca27596d70379117f082b5982ebf5ca9e78b254d125604676d2c", + "sign": 1 + }, + { + "leaves": 256, + "n": 16, + "sha256": "622b6b15d0e265153234d4b78913b197bbdbd9a45471f8be7a23713578cfd8b9", + "sign": -1 + }, + { + "leaves": 256, + "n": 16, + "sha256": "2cf6b46f4ca5431ef6ec996251978a4dc92037e9566a0e456eefc6b132a2c4c0", + "sign": 1 + }, + { + "leaves": 304, + "n": 17, + "sha256": "c7dd0eb36d39a0180d4443539b53812ff63f18a96a43214799dc30b2d45b77d1", + "sign": -1 + }, + { + "leaves": 304, + "n": 17, + "sha256": "8ef3935bd36f1016efa46c281fd2c47c3d138107a51882facc31b2ab03a1a1e2", + "sign": 1 + }, + { + "leaves": 352, + "n": 18, + "sha256": "1086f3cb15bc46e102c43596a1346a0b3757146926932dc48cbfa511c0c75df0", + "sign": -1 + }, + { + "leaves": 352, + "n": 18, + "sha256": "1c0ddd8a0cd6f10ddf2aedf002cf3a1c630235f64a559c2b0ad11f5014d98f4e", + "sign": 1 + }, + { + "leaves": 400, + "n": 19, + "sha256": "45e67b832de0b4e9f8d5622421e1ffd66310fd34dbee674e3c1017337f726092", + "sign": -1 + }, + { + "leaves": 400, + "n": 19, + "sha256": "20d69d061f4751e8b462b56b74c152adc25b02bd7ce7386303431e8c4391e1ae", + "sign": 1 + }, + { + "leaves": 448, + "n": 20, + "sha256": "e31a26ad7b4270dbe130e41237990b921e2ca00ccd5933cf3761dac83926da49", + "sign": -1 + }, + { + "leaves": 448, + "n": 20, + "sha256": "2fc2f530281cd475f8ffc9d76d1f6b7d955c1939c3a004d46b14847b398722b4", + "sign": 1 + }, + { + "leaves": 496, + "n": 21, + "sha256": "b649b796780f8781c62d55472db754adb269079c3777b115c6f8a474d71a7e02", + "sign": -1 + }, + { + "leaves": 496, + "n": 21, + "sha256": "5f116b0b9700571d1ccdb9e24addc233041350af564fe26350616c055fa0510e", + "sign": 1 + }, + { + "leaves": 544, + "n": 22, + "sha256": "f01fdb3bafd20ddde479b578aa05ee23eea661f6082940d15c204e521fbfa3a9", + "sign": -1 + }, + { + "leaves": 544, + "n": 22, + "sha256": "fed64d02a326303a250f657f01574e9a5b40df831bb9c26d5b8ac2c9c901b1bc", + "sign": 1 + }, + { + "leaves": 592, + "n": 23, + "sha256": "e4eb19b6efe4892f40c2e0f410afe3e15047718fb7f43c65abfdd387795c3e61", + "sign": -1 + }, + { + "leaves": 592, + "n": 23, + "sha256": "a35279d7dc7c344ab5fab36af775b99540cf3769b9e1b7ce069165687b255c19", + "sign": 1 + }, + { + "leaves": 640, + "n": 24, + "sha256": "ade1d38fc13e7bf4e402fd4cf2af272edfbfbb2e642a8af7e8697b10800de961", + "sign": -1 + }, + { + "leaves": 640, + "n": 24, + "sha256": "6ec9ec08c5c91e26fbf3aa473fb0bd7a31f0b2b93f53c52437c88756cfbb8a69", + "sign": 1 + }, + { + "leaves": 688, + "n": 25, + "sha256": "fc8f67b8cbcef9c3fac34856688fe6ab6c007c4219b2780a9379021393666782", + "sign": -1 + }, + { + "leaves": 688, + "n": 25, + "sha256": "ce46ad3c23420bff7a867c831dcac3b2d0cba5d953ec5e5f8d4baf521bc6ae4b", + "sign": 1 + }, + { + "leaves": 736, + "n": 26, + "sha256": "c7675f623de8c3987a85ec03905e74bfd9310be76ba2d7fae364f9d62a46115c", + "sign": -1 + }, + { + "leaves": 736, + "n": 26, + "sha256": "c6398a35d2ffaf326f8edf21e0de6f6a262c1f30f47c3027e91280f9a748fd65", + "sign": 1 + }, + { + "leaves": 784, + "n": 27, + "sha256": "071cb19cff89b5e4feda33d5dc3973234c7287c1a16b6c8ce5790f6ab18cd5e7", + "sign": -1 + }, + { + "leaves": 784, + "n": 27, + "sha256": "f4bb36c2aa49abd7d83c622e3d845d165c08cb36613f73f9ab18cb8e7aeb7901", + "sign": 1 + }, + { + "leaves": 832, + "n": 28, + "sha256": "f99251fbacdf30b199f9e1fd30cf504368fd1548f648c98d4298ac338e4ac98b", + "sign": -1 + }, + { + "leaves": 832, + "n": 28, + "sha256": "25a3c3d585c1d714525027a51eff5734390228d773c880c3aa6d8ba49ead89cb", + "sign": 1 + }, + { + "leaves": 880, + "n": 29, + "sha256": "bc8b9d4f48a595138bd4c9cc885106f33cefa8bb9b42d3cfea61f6e4ad20f14c", + "sign": -1 + }, + { + "leaves": 880, + "n": 29, + "sha256": "cdcc821d51b20710fc398e4eca7ecab1412eccc8c7a59b8bb0bbb682431c527d", + "sign": 1 + }, + { + "leaves": 928, + "n": 30, + "sha256": "8fca523b14cb4afa288ed9f3d463036a0e6a37b76d3ea10f148cec8067d8abc7", + "sign": -1 + }, + { + "leaves": 928, + "n": 30, + "sha256": "bc524d20e396f4ddcc0fd5cb8a622d38590807f9fe50d211fa1e46c39a5773fe", + "sign": 1 + }, + { + "leaves": 976, + "n": 31, + "sha256": "55c9af10202e51bdd5602aa9ee8b0dfdf2354179a2e1334833d3c13ffd8d345e", + "sign": -1 + }, + { + "leaves": 976, + "n": 31, + "sha256": "c73c078b0c138d6a0b27bad46f1555ca3309bc048da7998f0f8cbf291366302e", + "sign": 1 + }, + { + "leaves": 1024, + "n": 32, + "sha256": "1447cf76542aab66d66bbf568427dcef5d6ee1ac45adce87fa41061b1175696f", + "sign": -1 + }, + { + "leaves": 1024, + "n": 32, + "sha256": "0805ba64ee7dd3fec7ee1bb57f711d88eea9889e69946ccedadeb535d84f4acb", + "sign": 1 + }, + { + "leaves": 1120, + "n": 33, + "sha256": "aafb7fac7712d77b82ddeaaa5556959150ecf99b9225d0525ac9ce8a6be41bac", + "sign": -1 + }, + { + "leaves": 1120, + "n": 33, + "sha256": "d130fae7b93024789ba31ac9ac9e807d35d40af4e0b015244e93eaf3c09baf45", + "sign": 1 + }, + { + "leaves": 1216, + "n": 34, + "sha256": "19684f5487c8b74ba0660b600a75d6d5d415f9b4c6224395b54d599e2a1aa06e", + "sign": -1 + }, + { + "leaves": 1216, + "n": 34, + "sha256": "a5e0077952eee232b87cd9352b48bd2d2702a5f93eaecfc0054aa5a1f8514b5d", + "sign": 1 + }, + { + "leaves": 1312, + "n": 35, + "sha256": "cb53f0f2aec5dbb112650c783f836c94a7ac882a1639f5025c1282e8875ac8d3", + "sign": -1 + }, + { + "leaves": 1312, + "n": 35, + "sha256": "2d5e45b8739172817ce82e157a211dac4d689cf517e2c65e017d67c0ff4c3d31", + "sign": 1 + }, + { + "leaves": 1408, + "n": 36, + "sha256": "d058b9d09e4ce4614d158fc841df70dcf69628cca09de36dc2bd13db41642bca", + "sign": -1 + }, + { + "leaves": 1408, + "n": 36, + "sha256": "477fbd228d110a5dea53f8554e6d5597f0067cba1adfcd4017f29ffb917ff762", + "sign": 1 + }, + { + "leaves": 1504, + "n": 37, + "sha256": "90cbc7e0bef523387cbba2ef2c5dd08ccf57e6dc20d929a7e1d9a4c0bd775d52", + "sign": -1 + }, + { + "leaves": 1504, + "n": 37, + "sha256": "6487bf71650bfb1161d321262d449e1f7ba250ddf84eb5756fbed3f570b21e86", + "sign": 1 + }, + { + "leaves": 1600, + "n": 38, + "sha256": "6082cf32625a6db4095f9a1c0d2330f8dc2e4e5d52773ae70c554667ce54bc2d", + "sign": -1 + }, + { + "leaves": 1600, + "n": 38, + "sha256": "40fb4922187529b061630bed241e65287bb3f3f5946dce00e66b4b1808312fbf", + "sign": 1 + }, + { + "leaves": 1696, + "n": 39, + "sha256": "dc8f7c619008f252a596e7ccf8137f43e0e94b69c733eaac337dce3184ffc4c5", + "sign": -1 + }, + { + "leaves": 1696, + "n": 39, + "sha256": "3c95bddbe35d0797b3b9486df74fb5f876c5872a656646898b5dc337afa9ca3d", + "sign": 1 + }, + { + "leaves": 1792, + "n": 40, + "sha256": "3693da491ed861a867f88209b073efa6db79f02ba13b130658e53a4a69525079", + "sign": -1 + }, + { + "leaves": 1792, + "n": 40, + "sha256": "9252cd2dae06d5862c6509052dd88009c13b097067a0a6ef975e154bdb854345", + "sign": 1 + }, + { + "leaves": 1888, + "n": 41, + "sha256": "69d8487dad1c5c61cb0f5f78f1b3bcdfdf766855000252235bd20fbf2e5da4ea", + "sign": -1 + }, + { + "leaves": 1888, + "n": 41, + "sha256": "319c4fa082995ac9f6245fd197b1f48c5a7b1cd483e046efac4dd3776a132fbc", + "sign": 1 + }, + { + "leaves": 1984, + "n": 42, + "sha256": "13978d8dbc33863fdc524aac4758b20567f90e19ac56bf8d6b5a9d9ca6daee1e", + "sign": -1 + }, + { + "leaves": 1984, + "n": 42, + "sha256": "27065f6be5e4e334079584d57eebf6b5d02e55ae9ca515e36c6cbee0da330dbd", + "sign": 1 + }, + { + "leaves": 2080, + "n": 43, + "sha256": "dfdaced2d8b6bd668060be19d12a587ea6afb7b26b07960a2cce3900bfda7750", + "sign": -1 + }, + { + "leaves": 2080, + "n": 43, + "sha256": "d8368f40edf1e41dd5e8a37b63000488c590f55590f68fabea92210535969696", + "sign": 1 + }, + { + "leaves": 2176, + "n": 44, + "sha256": "944d2893c1c91427fe25e7e1eb01b0058c6b7db3af74a5c4c14504707fd02c61", + "sign": -1 + }, + { + "leaves": 2176, + "n": 44, + "sha256": "1e657354e50c2a8c80210b1f72d8aa6a1afa3d63f5a25599720d0d4c40b84f1f", + "sign": 1 + }, + { + "leaves": 2272, + "n": 45, + "sha256": "01f9876d3d124ec583c53b8290a2e3dd17ad126611431eb51ca3777e5a9155d2", + "sign": -1 + }, + { + "leaves": 2272, + "n": 45, + "sha256": "4fbf4039a0e5a36af7933568c83ace2ae86315b2740ef74084faba073bc553b1", + "sign": 1 + }, + { + "leaves": 2368, + "n": 46, + "sha256": "61b252e946ed6ee3b371a7bf7a708c191d732adf37b38bfc6ee0e411bc5eb743", + "sign": -1 + }, + { + "leaves": 2368, + "n": 46, + "sha256": "efaec14d15e65276c1fea68a5feed7af27b29dc2900abeb7cca78c3cf2ab4e2c", + "sign": 1 + }, + { + "leaves": 2464, + "n": 47, + "sha256": "61738fb80569fb0513574d007b6a51b99591a114d34aa261b2d06a970d60fa7f", + "sign": -1 + }, + { + "leaves": 2464, + "n": 47, + "sha256": "f4ded0cef26e0ae7d0f0166d0caa11409c1264bd2d906fee57ed683dfd6fa003", + "sign": 1 + }, + { + "leaves": 2560, + "n": 48, + "sha256": "f63c4528ca0ad76482d24039ae2f9fc8b5893b745ff3a06d14bd580896f06adf", + "sign": -1 + }, + { + "leaves": 2560, + "n": 48, + "sha256": "e47e70144a0317d923c65eda9ddf2ea88ec4222a0882ffdf269737bb5906bd08", + "sign": 1 + }, + { + "leaves": 2656, + "n": 49, + "sha256": "9dc68249e130844080971e44904bc488e5cd9bb204447787f9f43b182703ee89", + "sign": -1 + }, + { + "leaves": 2656, + "n": 49, + "sha256": "ae192c0f911feb190e38c8ad3ef15e6d5061541ff13ab5342d1b966e3c8263f4", + "sign": 1 + }, + { + "leaves": 2752, + "n": 50, + "sha256": "1bc5f639709b697a0597417150b8db2a9df612fb7a1d73e7afd1a1e5d8a413f4", + "sign": -1 + }, + { + "leaves": 2752, + "n": 50, + "sha256": "6072d55270511d2364454e99714934697c164fe7c4d57054ec3cd8fc129d5d4b", + "sign": 1 + }, + { + "leaves": 2848, + "n": 51, + "sha256": "2ba069f5ec9fae67d10055b53b5591726912f21c15c86bf12d952736eeb87c86", + "sign": -1 + }, + { + "leaves": 2848, + "n": 51, + "sha256": "ecf6846c94b37be9be96c0966367b6427b4afb9002e9331171a299d60bb68665", + "sign": 1 + }, + { + "leaves": 2944, + "n": 52, + "sha256": "5db8da0c3db9f5c42ab8c187b34859b5cba91cba2970990941a83bba7da141a5", + "sign": -1 + }, + { + "leaves": 2944, + "n": 52, + "sha256": "b6d6680df8a14a455408b9c4cab20c92eaccd7eab064c78946183b84f277799b", + "sign": 1 + }, + { + "leaves": 3040, + "n": 53, + "sha256": "bc1d9523337b7540cc99c808d1ca414b70f396236955e4f95690c4cf5b8d2932", + "sign": -1 + }, + { + "leaves": 3040, + "n": 53, + "sha256": "76f993e9538c8cb9f1dee6ee51470c56309ee13f200d7a08a88854471f76c8ff", + "sign": 1 + }, + { + "leaves": 3136, + "n": 54, + "sha256": "17803879e0420556ecd1df2f9d42409c73394cae6f45bce3dda0d2f5d3d33b99", + "sign": -1 + }, + { + "leaves": 3136, + "n": 54, + "sha256": "6535d843bde1e81e1ebfa67b924e578a4beefc351b1b5efe5524babc8a4fffd4", + "sign": 1 + }, + { + "leaves": 3232, + "n": 55, + "sha256": "d40fdba8e2599c6c66e63300c68aad1cd8f3990030697661a7e6c389931ead3e", + "sign": -1 + }, + { + "leaves": 3232, + "n": 55, + "sha256": "9fb4c9b7c83c87344a9f695239a1e04c1648b8db1980893d83bf66aa82cdcee0", + "sign": 1 + }, + { + "leaves": 3328, + "n": 56, + "sha256": "26ea3ff57d6482824687229f358b29e1334c987cf521a2afb728c6052e607c2a", + "sign": -1 + }, + { + "leaves": 3328, + "n": 56, + "sha256": "162d2ebc7d9ec9b0b2e8bb040a8df78926b3385ae8e9a12210d2e885af3cf207", + "sign": 1 + }, + { + "leaves": 3424, + "n": 57, + "sha256": "48924f2a448e85bc6ce7a179f738611525cd6cd7bbf079f2024f699a666aef1e", + "sign": -1 + }, + { + "leaves": 3424, + "n": 57, + "sha256": "820c34b59afbd2fb7961937269eeca91fcf1e9a33cd8e853c7678edbd7cf43f8", + "sign": 1 + }, + { + "leaves": 3520, + "n": 58, + "sha256": "880411c47dc0cb3d286d49af121ae2cfdc927ce4ee7fd34e82f12e350f82f824", + "sign": -1 + }, + { + "leaves": 3520, + "n": 58, + "sha256": "13603e8b83ccff1d00903bce32b9a9ce18d81fcc64555237b785ab9710e1a04e", + "sign": 1 + }, + { + "leaves": 3616, + "n": 59, + "sha256": "e71ffcb76ebacb398ffe44d1406a9eebf7a896d28f08702f5e01c7102d7e88c5", + "sign": -1 + }, + { + "leaves": 3616, + "n": 59, + "sha256": "6ab0397b99a371cf52e7f3677a6a76e16434effd7090c61f9f52ef3f3044bf60", + "sign": 1 + }, + { + "leaves": 3712, + "n": 60, + "sha256": "7510a93cdea03bae82862334ad3286bd294b13159ed26e013baa8159c59b5432", + "sign": -1 + }, + { + "leaves": 3712, + "n": 60, + "sha256": "4a1eb776ef26235579249a5be9ccdcbe61a9ca01da6170660b944cc4f933db32", + "sign": 1 + }, + { + "leaves": 3808, + "n": 61, + "sha256": "5183924f98929f9f779a5850904652032255dc4ee37b8315e04d4c01f1086092", + "sign": -1 + }, + { + "leaves": 3808, + "n": 61, + "sha256": "051c91294f1c5058cbb6a994a88c0dad75a6e5db49cf30e8e0781e3c03be76ce", + "sign": 1 + }, + { + "leaves": 3904, + "n": 62, + "sha256": "36df291d39b2fb9f706acd69d121e52058a88545a24193a61a93352bcc1260e2", + "sign": -1 + }, + { + "leaves": 3904, + "n": 62, + "sha256": "ee242af5a677f7ca40d6865b7743d84d6b589cbaf943de3458f2bbc9bad11a8f", + "sign": 1 + }, + { + "leaves": 4000, + "n": 63, + "sha256": "e14956d6dd085b489c373eb5e43376cdda5061c02f2f9eb9f535b0b800463753", + "sign": -1 + }, + { + "leaves": 4000, + "n": 63, + "sha256": "81282ba9c88c47fbfa32ab5f55f33cf86b7e98ca68951a8baea22eb4be6d2e90", + "sign": 1 + }, + { + "leaves": 4096, + "n": 64, + "sha256": "f0e2a579e898cbfd4829933fce3435ffc97f72d717df0c3c01227d946b8c7ee7", + "sign": -1 + }, + { + "leaves": 4096, + "n": 64, + "sha256": "b173cf4c946a5904af872fa6b6c7c8ae36bc61e7f1bc65b121e06ab4fc0d517d", + "sign": 1 + } + ], + "negative_controls": [ + { + "name": "repeated_factor_monomial", + "rejected": "('repeated or unordered factor', 2, (0, 0))" + }, + { + "name": "unordered_noncommuting_word", + "rejected": "('repeated or unordered factor', 2, (0, 1))" + }, + { + "name": "omitted_last_restore", + "rejected": "ideal product or dirty restoration mismatch" + }, + { + "name": "wrong_inverse_order", + "rejected": "ideal product or dirty restoration mismatch" + }, + { + "name": "whole_product_only_bound", + "rejected": "prefix norm bound" + }, + { + "name": "missing_feedback_smallness", + "rejected": "feedback smallness" + }, + { + "name": "corrupt_working_bits", + "rejected": "certificate fields" + }, + { + "name": "corrupt_prefix_exponent", + "rejected": "certificate fields" + }, + { + "name": "corrupt_leaf_calls", + "rejected": "certificate fields" + }, + { + "name": "corrupt_coefficient_error_exponent", + "rejected": "certificate fields" + }, + { + "name": "corrupt_input_bits", + "rejected": "integer certificate" + }, + { + "name": "unsupported_radix", + "rejected": "prime power radix >=3" + }, + { + "name": "incorrect_inverse_prefix_engine", + "rejected": "independent inverse-prefix mismatch" + } + ], + "status": "PASS" + }, + "budgets": { + "budgets_sha256": "ff3a3312ef79fb99f7e0681818ef1ae446efccfeff4dd0d31a719000e947713e", + "cases": 5220, + "comparisons_sha256": "cdf8115705e5b6403d9528c11d1afbf216d000c80a671e4adee670b82b82d455", + "radix64": [ + { + "cubic_bits": 1162553, + "input_bits": 0, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + }, + { + "cubic_bits": 1162553, + "input_bits": 160, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + }, + { + "cubic_bits": 1162553, + "input_bits": 1048576, + "m": 20, + "p": 128, + "quartic_bits": 73245212, + "radix": 64 + } + ] + }, + "kappa": "unchanged", + "rounded_kernels": [ + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "3debaffde575d36db1f71a7143e6468ac8d4a083f5f133fe5ef92509eb4d70ce", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "45fc001914c02d73b52d63b05f033a0c25f151a7761bd7eb8ef74c0e76918db1", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -209.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "62c8a061dc6457eb09414a5dd92923428234c02164fcafe9b70d24418bcb9f31", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -211.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "e75cc95bb6d65548d4182a9863b55f3a59f1d68cfb7d7b7f2dd9086ae0391b9f", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -209.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "2f3da9c7be24ffeee0ca31bb5865cbf84bc2d1679be99c0fc722d68574051fbf", + "radix": 3, + "source_restored": true, + "working_bits": 211 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -211.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "9d20cf5d234be6de2d3e0b7f02ff0810294411f341cfd9a409d2d96f03319e34", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.5, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "aa8859b21e34ca2abc699474b821f67c22fad641a77511599b2207634af5d12a", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 4, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -210.0, + "inverse_cancels": true, + "leaf_calls": 4, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "edc5954517d1a95d7d84e48c0092af098a53725999c2cad818b8103a6f7b933c", + "radix": 3, + "source_restored": true, + "working_bits": 212 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -235.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "c35ebd241af2793c8206458b32597dcad8fa4f9208caefe70391e01c649dd291", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -235.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "8e96a155ccf49d09aedc3f33375615535ad2218ac6472226726c7f7b00400af1", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "fe518ffda2af5dbddc698cde59b04f5b4a469a046a8a8d387d6321b125a12272", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "f078e41e2b932f793c9aed84ab70c26c6d411563e2852e4bf212faf48607f23d", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "7fdb195c24f2ca836e679c5c1185ee62ba6262d8bf4bcca901a81263f14d084e", + "radix": 4, + "source_restored": true, + "working_bits": 239 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -236.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "461e90a2c2fea4756a308a614317f33bb52ca0fcec1efd8496d9803ea7cd0eb6", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -237.5, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "45d9107e75fd0b6a865837f62272eca34a946fa7ac957c3f2eb3110a6638cc0f", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 10, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -237.0, + "inverse_cancels": true, + "leaf_calls": 10, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "9e9dabb8196fd62c328fcee96817b43a2fc94d5d126da7343295ea694f09f0f0", + "radix": 4, + "source_restored": true, + "working_bits": 240 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -275.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "00e06e5f4dbd5af95166892d87b4da592af54c5b7e86c617abb1151fa82e6347", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -273.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "7961c4bb1a3081ede9f2aeacf87191b481dd87cdb2369aaa17d5ba6a15363a5c", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -271.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "2ce86cd0bbff31eeb3fc3cd2e7aeaa84936c1d31980d2356b9132431292f86d9", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "a9ddccc66aa497b53d7e74e6ed0936f0a82a3d07ad1084a0824891bf30eca331", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "88cc533533c4bf2caf7cb1c248db2a47ab5d577d93b225fecac197b1763ec54e", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -270.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "2bbbdfccc3d5c97a02cb98c7cb999f1eeff259411a7eaf20da2f88bf0346c352", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -272.0, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "fc8ec2155523b1f008b084bd348bebfb7272cbe027acddcc734004cbbcefc59b", + "radix": 5, + "source_restored": true, + "working_bits": 276 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 16, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -271.5, + "inverse_cancels": true, + "leaf_calls": 16, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "bf7d32337355913c7129cfcfa8799a98d2e216b873a1121a19b545a25bbdfbd9", + "radix": 5, + "source_restored": true, + "working_bits": 277 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "3d4b5a68e698a267216428d5d0d45bf51c0472ee2cc01e47781441fa9ca6bfc4", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "2e5681928d224a368ba1893c93bf0ef8882b46036f99bfd5eb94324263c3fd67", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "96d50778cbb3724de9d4df1e0170adab174653ae7a3a4b06b00b128e7b27ac3d", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "1446de15e231059a3c7254c2cd2511e1881a1c7eb771dbca7d265717f7195eaf", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.5, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "b1e0761235356b0d9c3f340d98b99b7f261e7384bfe2c9916304597c5200e6f8", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "64b4967d0e0bdd41c4d9a4d964fc86440b69755b995476e6f2be0ff4fcc82859", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "679d22502012d3393d3c29b4a7a3d4c31c45fae1b8fe1650abc803dbcf93c4f2", + "radix": 7, + "source_restored": true, + "working_bits": 392 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 40, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -388.0, + "inverse_cancels": true, + "leaf_calls": 40, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c2b7c099d676396ea27f38a75ae92aff9f07d229a20de8fa34b692c75e745868", + "radix": 7, + "source_restored": true, + "working_bits": 393 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -515.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "993ad3b7f7c2b45c434f03d00f56c100c3ddb53dbc892ec9809236ca010ae26c", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -515.0, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "e04b59c5babb81867668dde59206fb320c368cbf734183434438c5406523c04f", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "fda026dad7a2e4a42f11b9ca16ae52f941411996d28c84d0e83a778804c02c73", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "d3207bf763bbae77978535758319decbd7938f8f7053c92657db5eb3b725ac42", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "c85651cd9ee433dcc2fa25a6a81be63626113505bd985842a9aa271099aae2de", + "radix": 8, + "source_restored": true, + "working_bits": 520 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "4ee73ad037496e329600d7926991f5014af07f03812cbe8a4f10363830fe3719", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -517.0, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "bec4cf11598ea35c38e784bf31b10afe0f4c87840abc8ab1a6750f37288757d2", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 52, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -516.5, + "inverse_cancels": true, + "leaf_calls": 52, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "76b113f121ff300a06fb634ed7abfefc6bc34c7f40fbc08d73ab7b74583826a1", + "radix": 8, + "source_restored": true, + "working_bits": 521 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "26b8a2311c6311f6982b7de013141f9dcabda4576cf4cbe7451157b67184b893", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "d010d55afc6214864fd80698c11e1ca5964d16ebb4e0a44403cbdbbd2b562642", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "95f169e94233462482865bca1aaa7cf35ff2493f88126a46398945eebd6aa6a9", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -477.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "dc36a5111151ea159cdac6a660c7b09cc6061dd228ad5c8e8f0ee2d8e0e5e7d3", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -480.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "8212f9d7ecb3e78ec535018dfb9b16532c02bfa7dc2515cc2635b9fd0ce5db54", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "50243b70062cb9e1d2ce183cfd5963e7f42be74026290207bdf30ddfacb92301", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -479.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c8369df251285dfb472ed3ca1b9a6b165f4fbaabda1309e5e0c8e1ca2351ba5a", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -478.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "e62354ba249c4c9458c23cc9c0365bad16117681238ed25db94f0017554d0c1e", + "radix": 9, + "source_restored": true, + "working_bits": 484 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -400.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "08e01f7fc24aa45b926530cfee2134e75fee641c209def92a145706122039c7c", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -399.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "846acfcefb10472c6b73f94a8532141365a99659c39cd15d403e7ae2b9b72371", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -395.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "a3bd907c3a1b39ed90daddb89a2cb3f31a368a063cfbfb132c11ab8e7cedc93e", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -394.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "e932c887123f620c479dc5bd7425b8752e6ff3ae4e10995b736994f656e42c4a", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "acd14d102aafb014e3272b1d0390e61687266203614e49eb12e25cda486ad541", + "radix": 9, + "source_restored": true, + "working_bits": 401 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.0, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "d062bde9698e42c54e9732c76bd5e66ce9cd96444aa95df4d983d9032aa01373", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -396.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "34f5da48521930b0359dc29075abdfc88cd5067febaf6fe095adb7b99313c6dd", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 64, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 2, + "error_log2_upper": -395.5, + "inverse_cancels": true, + "leaf_calls": 64, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "d0b9ef055f24678baf01247b8a5bced371afbc5e2ddff490b2731ac96b07eb3c", + "radix": 9, + "source_restored": true, + "working_bits": 402 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.5, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "eedffc3dd5a9044a7b8d9bdea7b9948c8e2a79403affe0e22a36ad44e32871d7", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "56ba1e5e658735cd379f069bd700aee03c8991f48d57468b7ed7f2d0abc4985c", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -554.5, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "51127d5a95228925520c96e3e10db9cb821477e4df9dca7a25c2102e7e4c9175", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -554.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "d2fc9e7c089f5889f3f45822825c5dee2901ac3e7f95bea8f9fa119edbd46112", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -553.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "248d6f2239b09db27a25e68714f25db29d94a9f0239ac2be0376e12828e14243", + "radix": 11, + "source_restored": true, + "working_bits": 558 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -552.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "eb9c99f98f915fc175e55152439b73852bdbc39440cf20427dc0aa9427c0ca21", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -553.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "0f13149d619d2c061501e061969c3ec89746f6596e855504b811d3d03419a8ae", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 112, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -551.0, + "inverse_cancels": true, + "leaf_calls": 112, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "4c8d4d8d1fa405dd7fe3fb90c230b5b3694ea44d5824425b7e895db5a6c02534", + "radix": 11, + "source_restored": true, + "working_bits": 559 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -701.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "4f3bdbcb28e53998d7de1ad118461eeae22ddf13b9d87f418f5099f7c2996d16", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -701.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "7c2a64ebb7fe5a55af7481fb4909c4b4e52c23089648084b2726d9901705ff64", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "9921b0f28433a15e723f11cb294e4c2b83804db1f4ad23e9850320aff601a335", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "16014c1ecb6a4c3af21202a01b5be5dcf650b5090ab35c80936fde38ddbe8e71", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -700.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "53b2fa4e1b995855e502335286e8e29dc26dd7d6257232350e6ffb84a5d21d18", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -698.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "87934e7a8a0f601e774cdac0f00b4db9ec8aad40d1a8183ca7982d6e43bb37f5", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -699.5, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "c663719693f12d836abc0deea36ef67214aab860794c1d66435f8451a3c94105", + "radix": 13, + "source_restored": true, + "working_bits": 706 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 160, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -699.0, + "inverse_cancels": true, + "leaf_calls": 160, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "aa16c90a012c93c72dc1268c9330237d109a6bc6518258b61a0981f5e777246d", + "radix": 13, + "source_restored": true, + "working_bits": 707 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -678.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "084539bac212a25502ca3463c289c2baad776d1f9280996f1b59b3a9b1bc454d", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 1, + "nonzero_rounding": true, + "proof_sha256": "143f8928daee062d647e7cfb9f759e998f3c7101c15d0476ec57dc5bd237fdc5", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "5c45c2ebaf576986fc699c3c530b56b0ee9c3cd866b36ba4c793339d49018dbe", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -677.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 2, + "nonzero_rounding": true, + "proof_sha256": "797c751138c49ddeb651339ebc8a6ff71c09add9fb82efbaeedf8c4cd0530ee9", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -675.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "61fdcedb74864c966e71ec10e6c278f433c4ef7dab1fce12ca55781c40d5f6e1", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -674.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 3, + "nonzero_rounding": true, + "proof_sha256": "c09f5b711f785e2e6b38424ca1d2384cf48efe96d91441acb82e1111536dcffb", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": -1, + "dirt": -7, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -674.0, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "63900f4b24df0eee27dd017c742bc790073963267ae27ef7d3cc969aa3a677df", + "radix": 16, + "source_restored": true, + "working_bits": 684 + }, + { + "all_input_low_bits_odd": true, + "boundaries": 232, + "direction": 1, + "dirt": 11, + "dirty_restored": true, + "embedding": 1, + "error_log2_upper": -672.5, + "inverse_cancels": true, + "leaf_calls": 232, + "length": 8, + "nonzero_rounding": true, + "proof_sha256": "11845728caf2788fcbc83e701351d15416b25ee5eb457545a4b4b955dd77b238", + "radix": 16, + "source_restored": true, + "working_bits": 684 + } + ], + "scope": "Sufficient cubic precision for balanced arbitrary-dirty cyclic inverse arithmetic; inherited analytic/preparation/leaf hypotheses, no common-label or multiplication-exponent claim.", + "sources": { + "base": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "files": 22, + "source_pins_sha256": "fe92bb12941561a14ad50eb0b0581eac646edcaa103dc2ad4347aba732d06010" + }, + "status": "PASS_DIRTY_CUBIC_PRECISION", + "symbolic": [ + { + "bound": 2, + "inverse_prefix_coefficient_mass": 2, + "leaves": 1, + "n": 1, + "prefix_coefficient_mass": 2, + "sha256": "d7c145a5c2e77151dff3347d02d0ef85f93aef0ee268bbd55fc819b592ec440f", + "sign": 1 + }, + { + "bound": 2, + "inverse_prefix_coefficient_mass": 2, + "leaves": 1, + "n": 1, + "prefix_coefficient_mass": 2, + "sha256": "d7c145a5c2e77151dff3347d02d0ef85f93aef0ee268bbd55fc819b592ec440f", + "sign": -1 + }, + { + "bound": 6, + "inverse_prefix_coefficient_mass": 3, + "leaves": 4, + "n": 2, + "prefix_coefficient_mass": 3, + "sha256": "7d2660dd69c8e320628150bc2561d6a78ebc91cf83dfdad3b7330c8a7dfc824c", + "sign": 1 + }, + { + "bound": 6, + "inverse_prefix_coefficient_mass": 3, + "leaves": 4, + "n": 2, + "prefix_coefficient_mass": 2, + "sha256": "f0a82fed47dab5e7284a18be18c1c1c0b0392fbea6095b149aebb09449359f5f", + "sign": -1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 10, + "n": 3, + "prefix_coefficient_mass": 4, + "sha256": "99a6218ea2827492f6140b91728f0f9e5c272aee2b45cd01075a2e4ff3e694b6", + "sign": 1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 10, + "n": 3, + "prefix_coefficient_mass": 3, + "sha256": "9d1fb3c28b8394acf249db1452b3891544467be2ebffc1db2c1744b0b97a4722", + "sign": -1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 16, + "n": 4, + "prefix_coefficient_mass": 4, + "sha256": "129ea8e38b73d44d4250e2be8f9123e648c0386c1c458958d320b0ca19e16922", + "sign": 1 + }, + { + "bound": 18, + "inverse_prefix_coefficient_mass": 4, + "leaves": 16, + "n": 4, + "prefix_coefficient_mass": 3, + "sha256": "40387e9178e75b4f0d12b5feafe2cc1e4e61dfa43fea0711f85459e495953976", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 28, + "n": 5, + "prefix_coefficient_mass": 5, + "sha256": "6ff7484044216bce80b393dbaf49e0a901556d89d5675914bac9f46478664ea3", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 28, + "n": 5, + "prefix_coefficient_mass": 4, + "sha256": "a953be15f43608e054edab413e622b3262a88e385fb3de1736b1b7eb3d688596", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 40, + "n": 6, + "prefix_coefficient_mass": 5, + "sha256": "2377c943aeafc8041fb4aebae1f00de9c29ea390ecc55f823e188dc513ef4b32", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 40, + "n": 6, + "prefix_coefficient_mass": 4, + "sha256": "9baa74e7131a7ad3b872ece79e11584076d671dbd1f095cf0e3497b56fd20829", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 52, + "n": 7, + "prefix_coefficient_mass": 5, + "sha256": "223536801361a232800c21d2d4cdc7efe7659e866d0546ace4527198d9283e18", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 52, + "n": 7, + "prefix_coefficient_mass": 4, + "sha256": "46446c7d24d1a206ff7f8cfb83fb96750ecc503efa201fa6874c13c466c82b3b", + "sign": -1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 64, + "n": 8, + "prefix_coefficient_mass": 5, + "sha256": "9405110c8f4544eb292628f70a446b224f7a934345a15dd536d905e6f50bd9c2", + "sign": 1 + }, + { + "bound": 54, + "inverse_prefix_coefficient_mass": 5, + "leaves": 64, + "n": 8, + "prefix_coefficient_mass": 4, + "sha256": "3a67ec4bd5ab096fa1b86afc6157a5816abd64b017985be19c66c6130f1ce5e9", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 88, + "n": 9, + "prefix_coefficient_mass": 6, + "sha256": "d80c24249d7b70191f67ab39ef15339a4ec7697fca295e55e56ceb57846890f0", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 88, + "n": 9, + "prefix_coefficient_mass": 5, + "sha256": "84a2a1aa48bd458b90d53ebb37336691b4cad60e2242ae18ef5458deadef2a4f", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 112, + "n": 10, + "prefix_coefficient_mass": 6, + "sha256": "413bc678817ac2b903d5b64405e790344b3b319197bdbc540b72544cbba4d8f9", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 112, + "n": 10, + "prefix_coefficient_mass": 5, + "sha256": "cd37777a38193ec3b800b7b33e67ef0ad465674fc802b82cef82a12b75d3c2d4", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 136, + "n": 11, + "prefix_coefficient_mass": 6, + "sha256": "4063ceaecb2840766b8573f127cb3b7d22537b265581b07086c85b0578d259b3", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 136, + "n": 11, + "prefix_coefficient_mass": 5, + "sha256": "44d17228c884de2a5dd4e3740b4e8d8995d3710873836d7fc92a6b0ebb31a5eb", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 160, + "n": 12, + "prefix_coefficient_mass": 6, + "sha256": "e1c1f5a2bc6dcbc0ede92187e886f69a74fc8bfdbfe45a6570bf463155ca8544", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 160, + "n": 12, + "prefix_coefficient_mass": 5, + "sha256": "4a2e4927196c095e96bd5b2fb3e9af4f3d4df745165ad2cb43f4b40af4cac1cc", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 184, + "n": 13, + "prefix_coefficient_mass": 6, + "sha256": "4d1cb34c54a8420b0f6adf42187e5b24617d50a06ca69940fe224da7b2a0a6d3", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 184, + "n": 13, + "prefix_coefficient_mass": 5, + "sha256": "bde9f8516495e92c50a88ba2f11cea746ed99366e54969e6046e86d1a4890b34", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 208, + "n": 14, + "prefix_coefficient_mass": 6, + "sha256": "be57f6c3f013ef31458ca8e7231311bfa45c58c1b7866a9f1fa70ccc00c58697", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 208, + "n": 14, + "prefix_coefficient_mass": 5, + "sha256": "d5f32d87352a6b7b457faab8de4db7df2429f3fc7ec13d9c0079298c7402343c", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 232, + "n": 15, + "prefix_coefficient_mass": 6, + "sha256": "72fb9f63a2520173760947d42a081a0d71d21db4a5143e72923b1cc1416f81e7", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 232, + "n": 15, + "prefix_coefficient_mass": 5, + "sha256": "825d4fa46fb01b5e881aa067ee27e0a37dcef3fa0d6d02bd8ea7d79915a8c313", + "sign": -1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 256, + "n": 16, + "prefix_coefficient_mass": 6, + "sha256": "f08974a9a214e8b35c0d26f9899928f676ee083f1451e0d6918ca7c786cb4cdf", + "sign": 1 + }, + { + "bound": 162, + "inverse_prefix_coefficient_mass": 6, + "leaves": 256, + "n": 16, + "prefix_coefficient_mass": 5, + "sha256": "ff695932ee98584c773285a8df3e2dc5519afa3e961f55d1ff8f4afe285483ab", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 304, + "n": 17, + "prefix_coefficient_mass": 7, + "sha256": "41283ab6bb671336bbb6b3c4f93f59c2859218289245739b11833b9dd0890732", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 304, + "n": 17, + "prefix_coefficient_mass": 6, + "sha256": "d7266301efd62bfbd4078c34cd6a75141d165069d38d09731da24b8452896a63", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 352, + "n": 18, + "prefix_coefficient_mass": 7, + "sha256": "f0871bcb5d89dd6d1947e9c46ec90eb63815733c39a213e04596713f099ee28a", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 352, + "n": 18, + "prefix_coefficient_mass": 6, + "sha256": "1dfe5fe268e12008fa4d79cecaf11c4f61afc199a61fcf08266519b19dc7abe0", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 400, + "n": 19, + "prefix_coefficient_mass": 7, + "sha256": "e2fbf487dcff8162372c21da6292745bb39d57a900d912bf6e0d3dfbf8bd4122", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 400, + "n": 19, + "prefix_coefficient_mass": 6, + "sha256": "c414f242a838507753d54769977c31e4ed5f15315428b53f9ac1f2b83c385f9e", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 448, + "n": 20, + "prefix_coefficient_mass": 7, + "sha256": "c9c20fd5522b6de3341dea6c9217ac16625ee4430c2c96e017ab4975034e53bf", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 448, + "n": 20, + "prefix_coefficient_mass": 6, + "sha256": "914f3afd99f46e77a152f833fe1dc933d27363004783fbdf3eec04b8bb129039", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 496, + "n": 21, + "prefix_coefficient_mass": 7, + "sha256": "d4249ec871afdb28e6880e042799ac09a5d05883d2695fe359b3a6872ecc4cc4", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 496, + "n": 21, + "prefix_coefficient_mass": 6, + "sha256": "31609ba2ddaf20fec077c065ab5f9c42ea78dce4db12530afe24f959f4612968", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 544, + "n": 22, + "prefix_coefficient_mass": 7, + "sha256": "86c83a8f088013b6cd79547b4f435097201ec661a287fea218ed032525c6bce0", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 544, + "n": 22, + "prefix_coefficient_mass": 6, + "sha256": "613de07734c12a6b74914960bf89c6345f19ff47bbfae20e9bae45710c1be337", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 592, + "n": 23, + "prefix_coefficient_mass": 7, + "sha256": "76318e1697b088bd7b0ce76b9526c83421786dd87e147f7e7489005b9d4a45b8", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 592, + "n": 23, + "prefix_coefficient_mass": 6, + "sha256": "3e75caf3199fdb8b09f2edc41648a6d07d41770a323736aed9c42eee26cc47eb", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 640, + "n": 24, + "prefix_coefficient_mass": 7, + "sha256": "ca13342ba78aadedf55694ecd92dbd01bb6d05fab6b67d7795bd12f22ec074b3", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 640, + "n": 24, + "prefix_coefficient_mass": 6, + "sha256": "152b21d2e28c1c90a8489f2b1a25c2980b18a67d5e6d5be666f7e437b967a553", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 688, + "n": 25, + "prefix_coefficient_mass": 7, + "sha256": "036c05b6da1db93d5fe42a635113f500f73d3463b031a3595272a08af03d934c", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 688, + "n": 25, + "prefix_coefficient_mass": 6, + "sha256": "f997999aad897e894f8bb838b1c37b2637a28f9260e41599ebdafcb996521211", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 736, + "n": 26, + "prefix_coefficient_mass": 7, + "sha256": "8124e7c05d689509022acb4b02237db2068ba97f8773305f2d1af4c316f34a61", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 736, + "n": 26, + "prefix_coefficient_mass": 6, + "sha256": "cd048768b60081a87157734c628c90710394460de33d22cffaf7f9652b1c951b", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 784, + "n": 27, + "prefix_coefficient_mass": 7, + "sha256": "afb3b6d2401909407744f71b33ad692604ef39404b125276c6588d70e1765ea2", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 784, + "n": 27, + "prefix_coefficient_mass": 6, + "sha256": "eb69befb8be20d0b9ff5b52916dedb1752505c0b8546d98956b873bffc766482", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 832, + "n": 28, + "prefix_coefficient_mass": 7, + "sha256": "ad16db5004963d87ff285a3217fecd3fbf050a4bd3a79fb0fdfe49a4a6587130", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 832, + "n": 28, + "prefix_coefficient_mass": 6, + "sha256": "183c51c913b308cec8e410bb01590ff96e0c3354fdc7c71e92019b724e258d69", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 880, + "n": 29, + "prefix_coefficient_mass": 7, + "sha256": "057e685613508b910cc7ff7c5da04757955ca0d5ca13f97ba2bee48f89fb87c6", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 880, + "n": 29, + "prefix_coefficient_mass": 6, + "sha256": "2bf87bfdfe018919d1015bf59c9e5e6d018ccbfca1334332e3923e562406a3b7", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 928, + "n": 30, + "prefix_coefficient_mass": 7, + "sha256": "85a50967102efe71bb56d8e8e6ed11504653ccc6b6c2d95241998ee7c36495bf", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 928, + "n": 30, + "prefix_coefficient_mass": 6, + "sha256": "2a7ac377712e1cf52ef002982df8e9376a46d2e3b43e140a539b9cd2d0631f2f", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 976, + "n": 31, + "prefix_coefficient_mass": 7, + "sha256": "c1550b0be8386b920fad2a588a090d8420c701438f107edd4bc7271387346243", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 976, + "n": 31, + "prefix_coefficient_mass": 6, + "sha256": "e5a792819c45462d35671d39ae7e50eaab031ef0f572451a410876479e4b53a9", + "sign": -1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 1024, + "n": 32, + "prefix_coefficient_mass": 7, + "sha256": "7e66b9176f5520a6fcfce6ce5da39db3afb248ec00c1ebeb98b084b6ae810a39", + "sign": 1 + }, + { + "bound": 486, + "inverse_prefix_coefficient_mass": 7, + "leaves": 1024, + "n": 32, + "prefix_coefficient_mass": 6, + "sha256": "bfc8407348e0a8d4c49398fa7a4f5e4f815699b2442d43ec3efeaf3744440597", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1120, + "n": 33, + "prefix_coefficient_mass": 8, + "sha256": "17b352b4ef6583e11079aeba026ae6da80f09c252761e4a5ff856871ed934467", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1120, + "n": 33, + "prefix_coefficient_mass": 7, + "sha256": "dd14f9c146833a60d633bce6c1833dbbf745483b82079d7c087502c72df1eb0c", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1216, + "n": 34, + "prefix_coefficient_mass": 8, + "sha256": "df6663688f502e7458a0bbc8f9a6d7e51f36ee0247104a59e49e9dca6f0fa4c9", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1216, + "n": 34, + "prefix_coefficient_mass": 7, + "sha256": "058fb37a84ac1e7a826bc81c7b9acd0d50359ed6bc81f0404a25cb610f7b7700", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1312, + "n": 35, + "prefix_coefficient_mass": 8, + "sha256": "72b449d8b7775b4203da096313fe6987ad0a32e8d96d16f5ed90abbfd02a9fc6", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1312, + "n": 35, + "prefix_coefficient_mass": 7, + "sha256": "59e05b3518e522bf247bdad48c267841f2930101ba037b094f99e1cc5757ce9e", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1408, + "n": 36, + "prefix_coefficient_mass": 8, + "sha256": "012fd1d3c89dc19a19e27a0ed96e3c81c2eb2ce6a4d177ff30f59ce44c1175bb", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1408, + "n": 36, + "prefix_coefficient_mass": 7, + "sha256": "b5be8a662427a28c501130719adb59ff351a615f2bcc192b02cda3f5365021d6", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1504, + "n": 37, + "prefix_coefficient_mass": 8, + "sha256": "33d7fef9a6c3b472fbcd4aaba84e4d7af881f08da932666ffaf327934d1b39bc", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1504, + "n": 37, + "prefix_coefficient_mass": 7, + "sha256": "d99f287495e78dad0587ce455985555230db6e3be48a65b77b31002412b2c3dd", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1600, + "n": 38, + "prefix_coefficient_mass": 8, + "sha256": "39c751652200b47e43cb6ea2be773e76480333226a73b194dd11e17127d96c36", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1600, + "n": 38, + "prefix_coefficient_mass": 7, + "sha256": "edc9c7578315e578a3a82822d16527c3eef2c624184ac5d96e79a6e1b497ac82", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1696, + "n": 39, + "prefix_coefficient_mass": 8, + "sha256": "b03deec0779742d42cae9849f72ed3922c975c1acc3ec5a0c9f335f7c431609a", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1696, + "n": 39, + "prefix_coefficient_mass": 7, + "sha256": "54fc6dfc42dc8ba595289220e86bd586487cf37195ee8d92e7d744064d3590b8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1792, + "n": 40, + "prefix_coefficient_mass": 8, + "sha256": "ee1df68f380ef4e2a7a92622c44a1a97932fa86d8770d3466ef8d7fe9615d53d", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1792, + "n": 40, + "prefix_coefficient_mass": 7, + "sha256": "cd1c4e4e09bd5ed3623a172db33f887277ec5d19b15efc8a916560430048d3f5", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1888, + "n": 41, + "prefix_coefficient_mass": 8, + "sha256": "19d238102f5ee3d282ab787ca63818a54c3cf13754ff4a59b6150ef8c67103ee", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1888, + "n": 41, + "prefix_coefficient_mass": 7, + "sha256": "495f153fc6fce7949826c0b42072a2b60199290e7a34336b232c44f7b27b5b00", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1984, + "n": 42, + "prefix_coefficient_mass": 8, + "sha256": "4e7fe9f59e42efc5ee5e631550898ca0a73f30418dc3c0c106eea1c3c0b6ec93", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 1984, + "n": 42, + "prefix_coefficient_mass": 7, + "sha256": "d3026f964ef477ffe5b11a80c4b8f220e4945f50673c497e545413c941b847c2", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2080, + "n": 43, + "prefix_coefficient_mass": 8, + "sha256": "14b66ab6212a690746b3e837c2482355d0e41e5c6a806a90cbd78ee3b0021924", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2080, + "n": 43, + "prefix_coefficient_mass": 7, + "sha256": "bc1dff2bd9f2dbab4b2cbef679635790501aaed14bbefe495cca6f8ed24ae3f8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2176, + "n": 44, + "prefix_coefficient_mass": 8, + "sha256": "dcc187ee8352239abf204730291df76178c06d73012a05430903ca47765c63bb", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2176, + "n": 44, + "prefix_coefficient_mass": 7, + "sha256": "967391747629277fbdfa4f917b3c6061aa88d1632bdf94cdd2fb76e7bcf880df", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2272, + "n": 45, + "prefix_coefficient_mass": 8, + "sha256": "e3df4b58333d160c5d6b641cbe616f751922b52124ac61cafc0102a243c961e1", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2272, + "n": 45, + "prefix_coefficient_mass": 7, + "sha256": "937f16c936a07d77ac4e08d1a18b8f453dba3e13130e5f73b44432a695fe3670", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2368, + "n": 46, + "prefix_coefficient_mass": 8, + "sha256": "78132873164aa0fd3b2b31f61e833618731117293a30168d65e3ecf7f31a5a83", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2368, + "n": 46, + "prefix_coefficient_mass": 7, + "sha256": "2e1f3bd3910fa95dccd13cfd167622992f85eaa99bdd6be32dbc92062a7743e8", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2464, + "n": 47, + "prefix_coefficient_mass": 8, + "sha256": "6901f81ea2bfee9452c23326d505f23636d53e0c31c11f423010d9e3b3ab11e3", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2464, + "n": 47, + "prefix_coefficient_mass": 7, + "sha256": "a98879c659deac41fca22e1d287b25a1745a1cde0b021cfef159bb37b8d24359", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2560, + "n": 48, + "prefix_coefficient_mass": 8, + "sha256": "efd775922bc961b1f1fca1c95ceaef51353fed727249c4ca44144da57726e2ec", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2560, + "n": 48, + "prefix_coefficient_mass": 7, + "sha256": "7138d202d3b460aa734c56295fccc733c97fd85360f7c97504b2e62ed9337d5f", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2656, + "n": 49, + "prefix_coefficient_mass": 8, + "sha256": "20d0a61da3afe60ee75a8906d2cc1556f69c46546e6679658c3e9eef2f1467a5", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2656, + "n": 49, + "prefix_coefficient_mass": 7, + "sha256": "d67467767694bdb2fb18713b1b798ab261b9b8b9737b0952b42e39824229715f", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2752, + "n": 50, + "prefix_coefficient_mass": 8, + "sha256": "5033da12174b35d30415fd9f2f007d0f1bdeda284954195f4cb07cf5e380a348", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2752, + "n": 50, + "prefix_coefficient_mass": 7, + "sha256": "903016674b3cc132d90e2c746842ff5fb6fe858092dd3173fae1ecbb5cc7e5a5", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2848, + "n": 51, + "prefix_coefficient_mass": 8, + "sha256": "df74c9d0bb76772596e636daa66358ecdac9af54b701a09592ade0fcc3238a1e", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2848, + "n": 51, + "prefix_coefficient_mass": 7, + "sha256": "fd0d406315b34d29380ed29ae5213327f74473418f91c5163d0ad86767d5565d", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2944, + "n": 52, + "prefix_coefficient_mass": 8, + "sha256": "16a31d90e35de5daa5f756762dab096a5f3ee3bb64630986b36767e90a62bfaf", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 2944, + "n": 52, + "prefix_coefficient_mass": 7, + "sha256": "dcd9e34b314c6e35b3d507afc98a233c1087bc86f30f81ca9a69ee362d864a5b", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3040, + "n": 53, + "prefix_coefficient_mass": 8, + "sha256": "aafc49e4baaf88e5bcf799a4ffcfc10267eaed255d03996f8a830b2f06c3a8c7", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3040, + "n": 53, + "prefix_coefficient_mass": 7, + "sha256": "dd8947d204b97d8362a852f9ab9705dbbc1a4239f4c6c0a8ab2f974e3ca38631", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3136, + "n": 54, + "prefix_coefficient_mass": 8, + "sha256": "f80dfa169dc574a438b7700cb32e7e5b87cf5134184a3aa9fb6d4245376b656f", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3136, + "n": 54, + "prefix_coefficient_mass": 7, + "sha256": "cdf7c79aafb1231df1fe4aa4dc4aaeda80f941000debe476be30cc443884243a", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3232, + "n": 55, + "prefix_coefficient_mass": 8, + "sha256": "ad45ceecd23aefcaa4f02619e6a142c5c6c82c9230f72b43d1f4f4eba6adb26e", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3232, + "n": 55, + "prefix_coefficient_mass": 7, + "sha256": "8d427381c158b30ffa0337d9c6694adba0abb44a802d369cb60798aaed6652fe", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3328, + "n": 56, + "prefix_coefficient_mass": 8, + "sha256": "3793d3aaa4c2138fe6cad8f4f51148c7bed5a4d298b37b914e424ba1333d3072", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3328, + "n": 56, + "prefix_coefficient_mass": 7, + "sha256": "e98193a0f20edac0b0a018bb459b17d4f166068803d0bb7aae9018974b6ec813", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3424, + "n": 57, + "prefix_coefficient_mass": 8, + "sha256": "8ff08a77d48813af3a5a9d3644d2921bd5abb662b1c89dc2f9d9b0666da7773f", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3424, + "n": 57, + "prefix_coefficient_mass": 7, + "sha256": "774870868ac1e349baabd5cb920cce108524bb5d96f57227fde1a3a8a078512e", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3520, + "n": 58, + "prefix_coefficient_mass": 8, + "sha256": "0222f0e6a81e41d3d087b2104eae4307df27f074a3296277a28a95627a4cb340", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3520, + "n": 58, + "prefix_coefficient_mass": 7, + "sha256": "e932c5bb4afb0785569acdacc3e619508311b75a6077bd52a62b8a0a481c69ae", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3616, + "n": 59, + "prefix_coefficient_mass": 8, + "sha256": "ba17b4bc5f16a738181b42a28b4eb376cc7a3ada4188bcef4c90332ebfb2351c", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3616, + "n": 59, + "prefix_coefficient_mass": 7, + "sha256": "8409be104fec2072de74455997b063636fd06ebf9d35a267fc809bf0c3fcede6", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3712, + "n": 60, + "prefix_coefficient_mass": 8, + "sha256": "eb3d2f52475b8921e71928a47e2f0780c133d915fe09d63a0f2616d9b0037908", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3712, + "n": 60, + "prefix_coefficient_mass": 7, + "sha256": "cecd61793f74bb3361d9e37acc0f22a2122bfee10e45976d68bb32b10207b0b4", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3808, + "n": 61, + "prefix_coefficient_mass": 8, + "sha256": "57da169bbd2e7d198832c0ea0a9bc0aa6ff14bf8186c2ee8690dd948e40b475b", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3808, + "n": 61, + "prefix_coefficient_mass": 7, + "sha256": "cd8f3dad2bd66d80767027eea047522bc4632cd3530838f263655561e283d71a", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3904, + "n": 62, + "prefix_coefficient_mass": 8, + "sha256": "22bd42acadbd578147eb4a9eeb8eb1aca5bb2a45574e6b95546498997ff19135", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 3904, + "n": 62, + "prefix_coefficient_mass": 7, + "sha256": "539f31c193425b29063865a989003e372d9352ff1944149bf9e4088604ac0340", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4000, + "n": 63, + "prefix_coefficient_mass": 8, + "sha256": "a41d36478c96f91bdd594ddc42656fcd85867c0f5e1cea38f69e1cab20f38450", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4000, + "n": 63, + "prefix_coefficient_mass": 7, + "sha256": "f15c2f3a580576d440e2b7c2ef31b82b78288865f9fa05af56e5ba432102a3ae", + "sign": -1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4096, + "n": 64, + "prefix_coefficient_mass": 8, + "sha256": "21105e61da692794214e970dac1e95f64a2714f56726b8d2b0a6e3116d7c4bd0", + "sign": 1 + }, + { + "bound": 1458, + "inverse_prefix_coefficient_mass": 8, + "leaves": 4096, + "n": 64, + "prefix_coefficient_mass": 7, + "sha256": "24af359176e752bff603b32b16639809dfab8455057525646f6c0e9834ca582e", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 10048, + "n": 95, + "prefix_coefficient_mass": 9, + "sha256": "b77b6435f95711386689fa36d5ae43bae99719bf3074788416f30d0b619164ec", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 10048, + "n": 95, + "prefix_coefficient_mass": 8, + "sha256": "e6b7fb3f8738a000f69f62c11c50b021ad4037d2abc8bf62efe688d7eb0c15a6", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16192, + "n": 127, + "prefix_coefficient_mass": 9, + "sha256": "05a30eecacba7987a0bb24e64fca7d6895ef9ad137b28f513735f188062ddc0a", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16192, + "n": 127, + "prefix_coefficient_mass": 8, + "sha256": "d0e78f08054b1de2bc7fd2e01a480f7cd673376459c29f990397d2dec09c59ae", + "sign": -1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16384, + "n": 128, + "prefix_coefficient_mass": 9, + "sha256": "963f4c901f7ed3d9d60b5d746e546e394451b760b9fed48877b393a54d72fad6", + "sign": 1 + }, + { + "bound": 4374, + "inverse_prefix_coefficient_mass": 9, + "leaves": 16384, + "n": 128, + "prefix_coefficient_mass": 8, + "sha256": "96a96d47460fb21f8bdb4c8233e632f2aa7f14392949c529757d45aec87cbda6", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 16768, + "n": 129, + "prefix_coefficient_mass": 10, + "sha256": "37de4ab88bae97ed2190bba1c52a822ff1345025e91520288adf801a4f9b9857", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 16768, + "n": 129, + "prefix_coefficient_mass": 9, + "sha256": "f72928ffb4f5332f8cd60d45698dbbe333caf6b3aa965b7b01864168a36ebd01", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 40576, + "n": 191, + "prefix_coefficient_mass": 10, + "sha256": "f03b70e6143778b25fbcf067cc0f51d6c155d6df573ccd2013559dd09cf8d201", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 40576, + "n": 191, + "prefix_coefficient_mass": 9, + "sha256": "d4e2981794999dc71dd52a29e8d9607c47f53c0a893fad1113bc54a90f17c01a", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65152, + "n": 255, + "prefix_coefficient_mass": 10, + "sha256": "251269eee5dc846e69ff7e079073bcf376e8255b3be7576ba119c969111a84fe", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65152, + "n": 255, + "prefix_coefficient_mass": 9, + "sha256": "2a64267a446f4a4257f48520134d8f2c72f37a30072ff5fdaa71e2a941bc1a44", + "sign": -1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65536, + "n": 256, + "prefix_coefficient_mass": 10, + "sha256": "7f3d6fab9f0e67466a53acda572ca9e638e1b31861f0f3bbd1e3fdfaa0cf7f70", + "sign": 1 + }, + { + "bound": 13122, + "inverse_prefix_coefficient_mass": 10, + "leaves": 65536, + "n": 256, + "prefix_coefficient_mass": 9, + "sha256": "777b8743801202f442ba360972566e4c68c10196a8d08605396e92cc45b24ae0", + "sign": -1 + } + ] +} diff --git a/research/dirty-cubic-precision/MANIFEST.json b/research/dirty-cubic-precision/MANIFEST.json new file mode 100644 index 0000000000..73204606c7 --- /dev/null +++ b/research/dirty-cubic-precision/MANIFEST.json @@ -0,0 +1,39 @@ +{ + "files": { + "CLAIM.json": "90bff68da2b0f12dd2dc6287a40a8556e6ad3188399aaf0a53eb5b5de3137911", + "EXPECTED.json": "39901bc4654eb857f991a48eb9e5d839ff35153bbca2dd2c1e0d5ec9cef38764", + "NOTICE.md": "062efe3baa26ba98bb879c7d954cc557aedfd1b7fce6209e6bf8e6677e7257c5", + "PROOF.md": "fc6b863d940a6b7341e65f0627d88e409d11222f871b422dd784198db9ebf381", + "README.md": "b599aec1864cafdfc8b2ecde8cdc25278dfd8f1c56760f476249e8cfbaa5b201", + "SOURCES.json": "fe92bb12941561a14ad50eb0b0581eac646edcaa103dc2ad4347aba732d06010", + "check_algebra.py": "adc063acd213057acd022ee366e734d61f4932405e88e05b70701de45ec63c6e", + "check_budget.py": "0ce0300c3ce24917e66c4d7eac3946361f1c1c80332f5ce118e709157606f3dc", + "core.py": "54d59fa856d4ebf8c9e00108292095a6e8bc98a8f6884e00d72b36045ec98814", + "numeric.py": "18e44a45cebb75bc18a2490b205fad57185cbd9ca7746043b506cb65dcecb594", + "symbolic.py": "f002bac5eb1fe6eead468a51903f7d88f56ec221820d782c94a999b491bda7e5", + "test_package.py": "7947cc08d6682c7141f96a5a694389a3b8e05361095789e43872555e03074d66", + "vendor/628/DIRTY-PROOF.md": "bb7c2fdc1c4673d56531fd56fb8790c81a16813ac152c10f1afabc9efdd70d61", + "vendor/628/FACTORS.json": "643d60ac24d5e67f6c9305175bd1c99bf5e42edfef6d1995c051e0b98ba446a7", + "vendor/628/NOTICE.md": "abeacf1ad1491d5797cfcf1f3832799bbf3b24b99597229d7bc884059a51ec68", + "vendor/628/PROOF.md": "595893609764c64a90d9b21b9cbd6d9e61980703f3deb43361105cf8c3d1d093", + "vendor/628/SOURCE.json": "38a425e2d3a72a5e39b18b54c728e40407e121d481a1c6423edd5c18e9b68a04", + "vendor/628/check.py": "a3e46b556894d71a1c83bbbac01c50c1a541285fc9422a3567d5eb1d1ee86e7d", + "vendor/628/check_budgets.py": "581ba58a30e05cb09dadb35be6e25bd92232b2137a0cc7eb5b83e2ee20c0bf02", + "vendor/628/dirty.py": "09e7f41141594e6540828330d27be27c083ee6569660ae42c0cd519b09fc8d21", + "vendor/628/interval_kernel.py": "9b7bb24640a9a7d3f83c7951dfef483ec933db4c50de6c0130b85f450eeddfbe", + "vendor/628/scan.py": "1a9c01ca1a29a9be1e756858161202621db29d5d332a4266b4017a9502a50d7e", + "vendor/628/weighted.py": "8b0f93d131a30e64eb0ccd893779daffea79c0c00f1d2a30a91d23eb2bf0bff5", + "vendor/862/NOTICE.md": "08c25cd6248e8c4dc7008e14e9ea7690f9084e94f927bb602363773637a89921", + "vendor/862/PROOF.md": "bdb0518892c631f8b6ac149535ac5a92270def19fe7778ca737641cd56b7da0b", + "vendor/862/SOURCE.json": "2c35e44aeb4b9ab53eec9b6f0690ddc59c865a8dd38e458ca6805924cedbd877", + "vendor/862/budget.py": "7238030e1dfefc1e7a68eeaaae7bb987df572bcda608907e657b1a940e157a97", + "vendor/862/vendor/PR621-NOTICE.md": "96111c95cfec3c03a6f69c8e02c5d0bceff957d187e638d0534c676d6e3ffd77", + "vendor/862/vendor/PR621-PROOF.md": "2b8056c88e66f692f407450fff0414d41bcd09db8597be22e274a6c3dc20eb9e", + "vendor/877/PROOF.md": "a4ee1b8a0175048948272141c675a38625fda577770b9382af4d3cf328355e55", + "vendor/877/README.md": "59e2b38aef369b379977a97c768d0054f6f414d0e22808ab46c11bdedb42ebeb", + "vendor/877/SOURCES.json": "63ad734d3ca693114989ec794ed2be8a97f79299c7529962c8dc5f78086eb3ed", + "vendor/877/core.py": "f0ed30eec6f6cfc193ffcc20ca160aab21b837b30fb3b63589faf633d612bc71", + "vendor/877/matrices.py": "dd7fb26bf5977480c07e69f1a99ba3c883cab322a4d41ce08437cd82c19e1f13", + "verify.py": "b1bef69dc95e887811a169963e5b914123245d2d89a234686598d15fe403d51a" + } +} diff --git a/research/dirty-cubic-precision/NOTICE.md b/research/dirty-cubic-precision/NOTICE.md new file mode 100644 index 0000000000..03c791502e --- /dev/null +++ b/research/dirty-cubic-precision/NOTICE.md @@ -0,0 +1,36 @@ +# Attribution and scope + +New contribution by Chafik Boukhalfa (@chafreaky), prepared with substantial +OpenAI Codex assistance, under the repository's Apache-2.0 license. + +- Chafik Boukhalfa, PR628 at + `0768f97d06c623b8211e651543c66135796b62bf`: balanced dirty dispatcher, + exact grid restoration, rounded cyclic leaves, fixtures and preparation. + Original proof, source record and notice are retained under `vendor/628/`. +- Gareth Davidson (@bitplane), PR877 at + `80a60c0da2b916798167deb0ce3a5ef22fda147a`: the restored-child prefix audit, + inverse-prefix and nonlinear perturbation argument, quartic comparison, + independent word generator and dense prefix/inverse/interval checks. + Original source/proof/README/source pins are retained under `vendor/877/`. +- Chafik Boukhalfa, PR862 at + `57e0659150d323b784580110b36aa64a2dca2a33`: complementary-factor subset + bound, cubic coefficient preparation and precision analysis. Its + reserved-zero-bit recovery method is not used here. Its proof, budget, + source record and notice are retained under `vendor/862/`. +- Ali Romman (@aliromman), PR621: prime-power kernel, circle lower bound and + length-uniform Fourier inverse estimate. Its original proof and notice + are retained through PR862's pinned vendor bytes. +- 0xkilgore, PR663: exact balanced leaf count and nonlinear dirty restoration + audit. Androolloyd, PR673: related restoration/phase-alias audit. No source + from these two packages is imported directly. + +The free-algebra no-repeated-factor prefix induction and its application to +arbitrary-dirty cubic precision are the new contribution. Mahler measure, +variation of constants and the inherited approximate-factorization methods +are not claimed as new. The numerical checker follows the predecessor +boundary-monitor/oracle pattern while using the new bound and full-grid +arbitrary input words. Separate code paths are not independent human or +multi-agent review. No literature-priority, optimal-precision, full-theorem, +practical performance or new-kappa claim is made. + +All consumed files and original locations are pinned in `SOURCES.json`. diff --git a/research/dirty-cubic-precision/PROOF.md b/research/dirty-cubic-precision/PROOF.md new file mode 100644 index 0000000000..c3bd9e0a3d --- /dev/null +++ b/research/dirty-cubic-precision/PROOF.md @@ -0,0 +1,191 @@ +# Cubic precision for balanced cyclic inverses with arbitrary dirty arrays + +This is a local arithmetic result, not a new multiplication +exponent or a common-label/Clifford implementation. + +## 1. A free-algebra prefix lemma + +Let A_0,...,A_(n-1) be composable linear operators. Use exactly PR628's +balanced binary commutator word with distinct source, target and one dirty +connector at each recursion depth. At this point the A_j need not commute. +At complete leaf boundaries regard each instruction as the ideal shear +`target += sign A_j source`. Source rows and target columns of every +primitive prefix matrix are the corresponding identity row and column. +The same holds for its inverse. Other coordinates outside the current +subproblem are untouched. This follows directly because no leaf writes the +subproblem's source or reads its target. + +Every matrix entry of every prefix and inverse prefix is a noncommutative +polynomial in the A_j whose monomials have strictly decreasing indices. +In particular no factor occurrence is repeated. The sum of absolute integer +coefficients in any block row is at most + + C_n = 2 * 3^h, h = ceil(log2 n). + +Proof by induction on the balanced tree: the leaf assertion is immediate, +with coefficient row sum at most two. At an internal node let B be the full +left product and A the full right product. All indices of A exceed every +index of B. Write U for `z += B x`, V for `y += A z`. A prefix has the form +`R C`, where C consists of zero to three completed children and R is a +prefix inside the next child. Complete children restore all deeper scratch. +Their exact outer-coordinate states, with unchanged x, are: + +| Word | completed children k | z after C | y after C | active child | +|---|---:|---|---|---| +| positive U,V,U^-1,V^-1 | 0 | z | y | left | +| positive | 1 | z+Bx | y | right | +| positive | 2 | z+Bx | y+Az+ABx | left | +| positive | 3 | z | y+Az+ABx | right | +| negative V,U,V^-1,U^-1 | 0 | z | y | right | +| negative | 1 | z | y+Az | left | +| negative | 2 | z+Bx | y+Az | right | +| negative | 3 | z+Bx | y-ABx | left | + +Each C and C^-1 has coefficient block-row sum at most three. The last +boundary is the completed product shear and has row sum at most two. + +For an active left child, R's target column z is the identity column and +its source row x is the identity row. In R C, any Bx term already in z is +therefore added without another left factor; the y row is untouched by R. +In C^-1 R^-1, a nontrivial product can only prepend A to an expression from +the left child. For an active right child, R's target column y and source +row z are identities. In R C a nontrivial product can only append B to an +expression from the right child; in C^-1 R^-1 all A terms multiply the +identity source row. Inspection of the eight displayed cases includes the +AB terms, signs, and both inverse formulas. Thus all new products are +ordered concatenations of disjoint index sets. Addition and cancellation +cannot create another monomial. Coefficient row sums are submultiplicative, +so both R C and C^-1 R^-1 have row sum at most three times the child bound. +The balanced depth is h, proving the assertion for all n. + +Consequently, if EVERY ordered subset product of the A_j has operator +norm at most G>=1 (including the empty product), then every ideal prefix +P and its inverse have norm at most B=C_n G in the maximum joint-array +norm. Every interval propagator P_j P_i^-1 has norm at most B^2. This last +step need not have squarefree monomials; the two prefix bounds suffice. + +## 2. Common cyclic factors give a small subset bound + +Now let U be a unit-weighted permutation, hence an isometry in every integer +power, and let `product_j(z-rho_j) = r Q(z)` for n=r-1. All inverse factors +use this same U, direction, and immutable phases. PR628 puts scale r on +exactly one factor; all other factors have scale one. + +Suppose `||Q||_1<=M`, `||Q(U)^-1||<=H`. For any subset J, commutativity gives + + product_(j in J)(U-rho_j I)^-1 + = product_(j notin J)(U-rho_j I) Q(U)^-1 / r. + +The elementary Mahler-measure inequality +`product_j max(1,|rho_j|) <= ||r Q||_1 <= r M` implies that the complementary +polynomial has coefficient norm at most `2^n r M`. Thus every unscaled +subset inverse has norm at most `2^n M H`; a subset of the actual scaled +factors has norm at most + + G = max(1, r 2^n M H). + +This is PR862's complementary-factor argument, now applied to the free +prefix lemma, rather than to an in-place scan. There is no low-zero-bit +requirement. The factor r is paid even for subsets containing the scaled +leaf. The assertion is false in general for different noncommuting shifts; +the free-algebra lemma alone does not supply a small G. + +## 3. Rounded execution and exact dirty restoration + +At complete leaf boundaries the unchanged PR628 leaf has local error at +most `a u (||source||+1)`, where `a=13(r+1) beta^-3`, `u=2^-w`, and the +closure condition is `u<=beta^2/2`. All initial arrays, including borrowed +ones and target, have norm at most D. Leaves are deterministic target- +independent signed increments and restore their sources exactly. Immutable +phase and factor data must be disjoint from every mutable array. + +Let N be the actual paid leaf count, including all inverses and restoration: +`N=3 q n-2 q^2`, q=2^floor(log2 n), hence N<=2n^2. Let M_actual be the +largest computed joint norm at leaf boundaries. Variation of constants +inserts the actual, possibly nonlinear, errors into the ideal shear word. +With B=C_n G and t=N B^2 a u it gives + + M_actual <= B D + t(M_actual+1). + +If t<=1/2 then M_actual<=2 B D+1 and the complete execution error is at most + + 2 N B^2 a u (B D+1). + +This is the perturbation argument in PR877, with a different, smaller +prefix bound. It does not assume rounded children are linear or independent +of dirt. Their exact inverse identities still restore source and borrowed +arrays, and the negative whole word exactly cancels the positive whole +word on the same grid. Intermediate state inside a leaf retains PR628's +separate causal/closure bounds. + +## 4. Explicit cubic budgets + +For prime power r>=3, put n=r-1, ell=ceil(log2 r), h=ceil(log2 n), +phi=EulerPhi(r), and suppose D<=2^m, m>=0. Reuse the PR621/PR862 bounds + + d0 = 1+2ell+r n phi, + a0 = 2d0+r+2, + g = d0+ell+2r+2, + beta = 2^-g. + +The original kernel has inverse norm <=2^a0. Prepare the same dyadic-root +polynomial Q using coefficient error epsilon=2^-e, where + + e = max(d0+1, a0+1, p+2a0+m+4), + b = max(n ell, e+r+3). + +The common-isometry Neumann argument gives ||Q(U)^-1||<=2^(a0+1), +||Q||_1<=2^r and original-versus-prepared inverse error on the source at +most 2^(-p-3), in particular <=2^(-p-1). The inherited radial derivative +bound gives the leaf margin beta. As in PR862, these are supplied +approximate-factorization/coefficient-verification algorithms, not a claim +that the rational fixture executable implements their asymptotic runtime. + +Then the scaled subset bound is <=2^(a0+2r+ell). Put + + J = a0+2r+ell+1+2h, + Aerr = 3g+ceil(log2(13(r+1))), + w = max(w_input, Aerr, 2g+1, + p+3+ceil(log2 N)+Aerr+m+3J). + +Here 2^J>=B because 3^h<=2^(2h). The execution error is at most 2^(-p-1), +and closure and feedback smallness both hold. Combined preparation and +execution error is <=2^-p. No incoming grid is silently coarsened. + +Since phi<=r, ell,h<=r, and ceil(log2 N)<=1+2h, the precision overhead is +at most `9r^3-9r^2+48r+33 <=16r^3` for r>=3: the difference is +`(r-3)(7r^2+30r+42)+93`, which is positive. Thus + + w <= max(w_input,p) + m + 16r^3. + +Also b=O(p+m+r^3). Integer magnitude bits are O(m+r^3): the leaf-boundary +bound is 2BD+1 and the inherited internal leaf adds O(g+ell) bits. The +complete word size is therefore `max(w_input,p)+O(m+r^3)`. + +The neighboring-layout execution and preparation bill is + + soft-O((L r^2+r^3)(max(w_input,p)+m+r^3)). + +All N leaf calls, their three passes and validation/source access, inverse +work, scalar arithmetic, descriptors and routing remain paid. Borrowed +storage is ceil(log2 n) arbitrary dirty length-L arrays; no clean length-L +array and no reserved zero bits have been added. Phase-oracle or long exact +phase-description access is an additional charge. Arbitrary-stride routing +and the inherited arithmetic/preparation hypotheses remain as in PR628. + +## Scope and credit + +This proves a sufficient local precision bound for the existing balanced +classical arithmetic dispatcher. It does not prove minimum precision, +practical speed, bit-reversible arithmetic, a common-label or Clifford word, +physical owner layout, a full transform recurrence, a multiplication +reduction, or any change to kappa. A finite symbolic trace supports but does +not replace the all-size induction above. The general statement depends on +the inherited leaf and preparation lemmas. + +Credit Chafik Boukhalfa / chafreaky for PR628 and PR862, Gareth Davidson / +bitplane for PR877's restored-child prefix and nonlinear perturbation audit, +0xkilgore for PR663's exact leaf count and restoration audit, and the +original PR621 kernel lineage. This draft was prepared by Chafik Boukhalfa +with substantial OpenAI Codex assistance. No independent human review, +formal verification of the full theorem, or literature priority is claimed. diff --git a/research/dirty-cubic-precision/README.md b/research/dirty-cubic-precision/README.md new file mode 100644 index 0000000000..0dcb9089c7 --- /dev/null +++ b/research/dirty-cubic-precision/README.md @@ -0,0 +1,95 @@ +# Cubic precision with arbitrary dirty arrays + +For PR628's balanced prime-power cyclic inverse, sufficient complete word +size is + + max(p, incoming_grid_bits) + O(m + r^3), + +where every initial array has norm at most 2^m. The dispatcher, rounded +leaves, quadratic leaf count, and logarithmic number of borrowed dirty +arrays are unchanged. **No reserved zero bits or clean length-L array are +required. No new kappa is claimed.** + +The new [proof](PROOF.md) shows that every ideal prefix and inverse prefix +is a sum of ordered products with no repeated factor occurrence. PR862's +common-isometry complementary-factor bound therefore controls these dirty +prefixes. PR877's variation-of-constants argument then bounds the nonlinear +rounding errors. The same exact restoration and inverse-word identities +from PR628 remain in force. + +At radix 64, target p=128 and initial magnitude bound 2^20: + +| Sufficient bound | Fractional bits | Leaf calls | Dirty arrays | +|---|---:|---:|---:| +| PR877 quartic budget | 73,245,212 | 4,000 | 6 | +| This cubic budget | 1,162,553 | 4,000 | 6 | + +These are conservative proof budgets, not minimum precision, measurements, +or a runtime benchmark. The current formulas need not dominate every older +formula at small radices. Finer incoming grids must always be retained. +The preparation bound is also cubic, using PR862's full-inverse estimate. + +## Reproduce + +Standard-library Python 3.11 or later, from any working directory: + +```sh +python3 -I -O -B research/dirty-cubic-precision/verify.py +python3 -I -O -B research/dirty-cubic-precision/test_package.py +``` + +The mathematical replay checks the manifest and source pins before running +and compares every generated mathematical field with [EXPECTED.json](EXPECTED.json). +It writes no package files. Expected final marker: + +```text +PASS_DIRTY_CUBIC_PRECISION budgets=5220 symbolic=142 rounded=80 kappa=unchanged +``` + +- 5,220 exact integer budgets, with a separate recurrence/inequality checker. +- 142 free noncommuting polynomial traces through 256 factors, checking + 652,654 leaf boundaries in both signs for prefix and inverse prefix. +- 128 independently generated words compared with the frozen dispatcher. +- 18 dense matrix traces, 66 separate Gauss-Jordan inverse checks, and + 5,104 directly reconstructed interval propagators. +- 80 actual rounded kernel runs on all ten pinned fixtures, lengths + 1, 2, 3 and 8, both directions and signed initial dirt. Every real and + imaginary input component has an odd numerator on the chosen working + grid, including every borrowed word: no unused low-zero-bit assumption + can explain their restoration. Every run has nonzero rounding error, + bounded against a dense exact oracle, and checks true-kernel perturbation, + exact source/dirty restoration and exact cancellation by the inverse word. +- Thirteen mathematical controls and separate package-binding controls. + +The `--bindings-only` option checks only source/package integrity; it does +not run or certify the mathematics. `--write NEW_PATH` is an authoring mode +that creates a new complete receipt without overwriting an existing file. +The default mode requires the committed manifest and receipt. + +## Scope and predecessors + +All factors must use the same immutable unit-weighted permutation U and +one direction. All mutable arrays and phase storage must be distinct. +The proof does not infer subset bounds for unrelated noncommuting shifts. +All leaf passes, validation, source access, restoration, scalar arithmetic, +preparation and routing remain paid; long phase descriptions or phase +oracle access add their own costs. The neighboring-layout bound is + + soft-O((L r^2+r^3)(max(p, incoming_grid_bits)+m+r^3)). + +This remains a local classical arithmetic theorem under the inherited +analytic, leaf and supplied-preparation hypotheses. It supplies no +bit-reversible compiler, common-label/Clifford word, physical owner layout, +full-transform recurrence, multiplication reduction or practical speedup. +Finite checks support the written all-size proof; they are not a formal +verification or independent human review. + +Twenty-two predecessor files are retained unchanged with exact Git heads, +Git object identifiers and SHA256 hashes in [SOURCES.json](SOURCES.json). +PR628 supplies the dispatcher, leaves and fixtures; PR877 supplies the +retained prefix/perturbation argument, comparison budget, independent word +and dense-check engines; PR862 supplies the subset-inverse and cubic +preparation arguments. Historical relative links inside retained documents +refer to their original layouts. [NOTICE.md](NOTICE.md) records attribution +and substantial OpenAI Codex assistance. Selected construction files and +`upstream/` are unchanged. diff --git a/research/dirty-cubic-precision/SOURCES.json b/research/dirty-cubic-precision/SOURCES.json new file mode 100644 index 0000000000..ba5fcdd6f9 --- /dev/null +++ b/research/dirty-cubic-precision/SOURCES.json @@ -0,0 +1,181 @@ +{ + "base": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "files": [ + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/dirty.py", + "path": "vendor/628/dirty.py", + "sha256": "09e7f41141594e6540828330d27be27c083ee6569660ae42c0cd519b09fc8d21", + "git_blob": "2b9471083706a37519a1af7598e012f5fecf2636" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/weighted.py", + "path": "vendor/628/weighted.py", + "sha256": "8b0f93d131a30e64eb0ccd893779daffea79c0c00f1d2a30a91d23eb2bf0bff5", + "git_blob": "da90ee6e83b15164cabdbe4472a2c5d53706160e" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/check.py", + "path": "vendor/628/check.py", + "sha256": "a3e46b556894d71a1c83bbbac01c50c1a541285fc9422a3567d5eb1d1ee86e7d", + "git_blob": "5ef6dd67b6c6cf949fedf16c0cd7b34ca4ccafc2" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/scan.py", + "path": "vendor/628/scan.py", + "sha256": "1a9c01ca1a29a9be1e756858161202621db29d5d332a4266b4017a9502a50d7e", + "git_blob": "d620e493596f12578c1ce47f216c44c79b65de08" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/interval_kernel.py", + "path": "vendor/628/interval_kernel.py", + "sha256": "9b7bb24640a9a7d3f83c7951dfef483ec933db4c50de6c0130b85f450eeddfbe", + "git_blob": "1182175a55cb871481de0f56ea9ae56e474705fe" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/check_budgets.py", + "path": "vendor/628/check_budgets.py", + "sha256": "581ba58a30e05cb09dadb35be6e25bd92232b2137a0cc7eb5b83e2ee20c0bf02", + "git_blob": "ff21b6e1904b5b492fb4389ae1c49ca69588c002" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/FACTORS.json", + "path": "vendor/628/FACTORS.json", + "sha256": "643d60ac24d5e67f6c9305175bd1c99bf5e42edfef6d1995c051e0b98ba446a7", + "git_blob": "d3894bd2a1660229f1a7ed16c9d982689effc96f" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/DIRTY-PROOF.md", + "path": "vendor/628/DIRTY-PROOF.md", + "sha256": "bb7c2fdc1c4673d56531fd56fb8790c81a16813ac152c10f1afabc9efdd70d61", + "git_blob": "caf4aafc784a630d61ca7874a0bd19cbcb34e585" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/PROOF.md", + "path": "vendor/628/PROOF.md", + "sha256": "595893609764c64a90d9b21b9cbd6d9e61980703f3deb43361105cf8c3d1d093", + "git_blob": "fb8fe7cb3bd036c69047ae7b4f4009a51b11825b" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/NOTICE.md", + "path": "vendor/628/NOTICE.md", + "sha256": "abeacf1ad1491d5797cfcf1f3832799bbf3b24b99597229d7bc884059a51ec68", + "git_blob": "22fbeb8ef0a28dd6b3feea718492091319ceb96e" + }, + { + "pr": 628, + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/SOURCE.json", + "path": "vendor/628/SOURCE.json", + "sha256": "38a425e2d3a72a5e39b18b54c728e40407e121d481a1c6423edd5c18e9b68a04", + "git_blob": "59bddaea4d66725bf675a67b6d2cf85a061b1fae" + }, + { + "pr": 877, + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/core.py", + "path": "vendor/877/core.py", + "sha256": "f0ed30eec6f6cfc193ffcc20ca160aab21b837b30fb3b63589faf633d612bc71", + "git_blob": "9ca79fdc2f1688fd4a0ea71bf6c33edda4ff3c98" + }, + { + "pr": 877, + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/matrices.py", + "path": "vendor/877/matrices.py", + "sha256": "dd7fb26bf5977480c07e69f1a99ba3c883cab322a4d41ce08437cd82c19e1f13", + "git_blob": "25ece6ffbbecc460e0ef11b66852175782b0e58f" + }, + { + "pr": 877, + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/PROOF.md", + "path": "vendor/877/PROOF.md", + "sha256": "a4ee1b8a0175048948272141c675a38625fda577770b9382af4d3cf328355e55", + "git_blob": "69c98a21d1c957135baaf7e763ffe3d8d70906cd" + }, + { + "pr": 877, + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/README.md", + "path": "vendor/877/README.md", + "sha256": "59e2b38aef369b379977a97c768d0054f6f414d0e22808ab46c11bdedb42ebeb", + "git_blob": "5ce83ef209894ab7f4fd7935a3d56001c93be0fe" + }, + { + "pr": 877, + "head": "80a60c0da2b916798167deb0ce3a5ef22fda147a", + "source_path": "research/dirty-prefix-precision/SOURCES.json", + "path": "vendor/877/SOURCES.json", + "sha256": "63ad734d3ca693114989ec794ed2be8a97f79299c7529962c8dc5f78086eb3ed", + "git_blob": "c95a6b17e2e44ec8693f5f15b31970ca062f90a7" + }, + { + "pr": 862, + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/PROOF.md", + "path": "vendor/862/PROOF.md", + "sha256": "bdb0518892c631f8b6ac149535ac5a92270def19fe7778ca737641cd56b7da0b", + "git_blob": "0196499f010857b58ea297611f44721a4b7a0ec6" + }, + { + "pr": 862, + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/budget.py", + "path": "vendor/862/budget.py", + "sha256": "7238030e1dfefc1e7a68eeaaae7bb987df572bcda608907e657b1a940e157a97", + "git_blob": "32562bc20c428da06a1d4930e5c20f9399b6352c" + }, + { + "pr": 862, + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/NOTICE.md", + "path": "vendor/862/NOTICE.md", + "sha256": "08c25cd6248e8c4dc7008e14e9ea7690f9084e94f927bb602363773637a89921", + "git_blob": "737060bd4d9666a925dfd1e17fc6eaa53c289b8d" + }, + { + "pr": 862, + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/SOURCE.json", + "path": "vendor/862/SOURCE.json", + "sha256": "2c35e44aeb4b9ab53eec9b6f0690ddc59c865a8dd38e458ca6805924cedbd877", + "git_blob": "ee7556c940053e771d9bc163f322b46561fd12d3" + }, + { + "pr": 862, + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/vendor/PR621-PROOF.md", + "path": "vendor/862/vendor/PR621-PROOF.md", + "sha256": "2b8056c88e66f692f407450fff0414d41bcd09db8597be22e274a6c3dc20eb9e", + "git_blob": "0c757c37c70fdeb261d73f111ceedd3b233287bf" + }, + { + "pr": 862, + "head": "57e0659150d323b784580110b36aa64a2dca2a33", + "source_path": "research/cubic-cyclic-inverse/vendor/PR621-NOTICE.md", + "path": "vendor/862/vendor/PR621-NOTICE.md", + "sha256": "96111c95cfec3c03a6f69c8e02c5d0bceff957d187e638d0534c676d6e3ffd77", + "git_blob": "a78e84066711e2f4776152d69d480e9629c26961" + } + ] +} diff --git a/research/dirty-cubic-precision/check_algebra.py b/research/dirty-cubic-precision/check_algebra.py new file mode 100644 index 0000000000..0871a25260 --- /dev/null +++ b/research/dirty-cubic-precision/check_algebra.py @@ -0,0 +1,63 @@ +"""Independent dense and frozen-dispatch checks of the free-prefix claim.""" +from pathlib import Path +import importlib.util,random,json,hashlib,math +P=Path(__file__).resolve().parent + +def load(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +s=load('free_symbolic',P/'symbolic.py');c=load('new_core',P/'core.py') +m=load('dense877',P/'vendor/877/matrices.py');v=load('dirty628',P/'vendor/628/dirty.py') + +def check(): + words=[] + for n in range(1,65): + for sign in [-1,1]: + generated=list(s.core.word(n,sign));literal=m.vendor_word(v,n,sign) + c.need(generated==literal,'independent word matches frozen dispatcher') + c.need(len(literal)==c.resources(n)[1],'complete leaf count') + words.append(dict(n=n,sign=sign,leaves=len(literal),sha256=hashlib.sha256(json.dumps(literal).encode()).hexdigest())) + dense=[];rng=random.Random(890877862) + for n in [1,2,3,5,8,15,16,31,63]: + factors=[[[rng.randrange(-2,3) for _ in range(2)] for _ in range(2)] for _ in range(n)] + if n<=8: + # Enumerate ordered subsets independently, including identity. + products=[m.identity(2)] + for f in factors:products+= [m.multiply(f,p) for p in products] + G=max(1,max(m.norm(p) for p in products)) + else:G=math.prod(max(1,m.norm(f)) for f in factors) + depth,N,C=c.resources(n) + for sign in [-1,1]: + row=m.trace(factors,list(s.core.word(n,sign)),sign,depth+2,C*G) + dense.append(dict(n=n,sign=sign,subset_bound=G,coefficient_bound=C,**row)) + controls=[] + def reject(name,action): + try:action() + except (ValueError,StopIteration) as err:controls.append(dict(name=name,rejected=str(err))) + else:raise ValueError('control accepted '+name) + # Distinctness of factors is a real condition, not a count-degree heuristic. + bad=s.identity(2);bad[1][0]={(0,0):1} + reject('repeated_factor_monomial',lambda:s.audit(bad,2)) + bad=s.identity(2);bad[1][0]={(0,1):1} + reject('unordered_noncommuting_word',lambda:s.audit(bad,2)) + fs=[[[1,2],[0,1]],[[1,0],[3,1]]] + W=list(s.core.word(2));B=6*max(1,m.norm(m.multiply(fs[1],fs[0]))) + reject('omitted_last_restore',lambda:m.trace(fs,W[:-1],1,3,B)) + reject('wrong_inverse_order',lambda:m.trace(fs,[(a,b,j,-q) for a,b,j,q in W],-1,3,B)) + # A zero full product leaves a nontrivial prefix; full norm alone is insufficient. + fs=[[[3,0],[0,3]],[[0,0],[0,0]]] + reject('whole_product_only_bound',lambda:m.trace(fs,W,1,3,1)) + reject('missing_feedback_smallness',lambda:c.execution(2,3,1,10,0)) + row=c.uniform(64,128,20,160) + for key,value in [('working_bits',row['working_bits']-1),('prefix_exponent',1),('leaf_calls',63),('coefficient_error_exponent',128),('input_bits',True)]: + bad={**row,key:value};reject('corrupt_'+key,lambda bad=bad:c.check_uniform(bad)) + reject('unsupported_radix',lambda:c.uniform(6,128,20,160)) + saved=m.inverse_step + try: + m.inverse_step=m.prefix_step + reject('incorrect_inverse_prefix_engine',lambda:m.trace([[[1,2],[0,1]],[[1,0],[3,1]]],W,1,3,100)) + finally:m.inverse_step=saved + # The full kernel can be identity while a nonshared first inverse is arbitrarily large. + f1=[[16,0],[0,1]];f2=[[0,1],[1,0]] + c.need(m.multiply(f1,f2)!=m.multiply(f2,f1),'noncommuting witness') + # Deliberately no full-inverse-to-subset assertion is admitted for these factors. + return dict(status='PASS',frozen_words=words,dense_prefixes=dense,negative_controls=controls) diff --git a/research/dirty-cubic-precision/check_budget.py b/research/dirty-cubic-precision/check_budget.py new file mode 100644 index 0000000000..71a0e462f0 --- /dev/null +++ b/research/dirty-cubic-precision/check_budget.py @@ -0,0 +1,39 @@ +"""Separate integer inequalities and recurrence checks for uniform budgets.""" +import hashlib,json +from functools import lru_cache +from pathlib import Path +import importlib.util +P=Path(__file__).resolve().parent + +def load(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m + +@lru_cache(None) +def calls(n): + return 1 if n==1 else 2*(calls(n//2)+calls(n-n//2)) + +def check(rows): + old=load('quartic877',P/'vendor/877/core.py') + inherited=load('old_budget628',P/'vendor/628/check_budgets.py') + comparison=[] + for row in rows: + r,p,m,w0=[row[k] for k in ('radix','target_bits','magnitude_bits','input_bits')] + phi=inherited.prime_power_data(r);n=r-1;depth=(n-1).bit_length() + if calls(n)!=row['leaf_calls'] or phi!=row['phi']:raise ValueError('independent resource check') + ell=(r-1).bit_length();delta=1+2*ell+r*n*phi;Ai=2*delta+r+2;gap=delta+ell+2*r+2 + J=Ai+2*r+ell+1+2*depth + if row['prefix_exponent']!=J:raise ValueError('independent prefix exponent') + w=row['working_bits'];loc=row['local_error_exponent'];e=row['coefficient_error_exponent'];b=row['factor_bits'] + if loc<3*gap or 13*(r+1)>2**(loc-3*gap):raise ValueError('independent leaf error constant') + if 2*3**depth>2**(J-Ai-2*r-ell):raise ValueError('independent coefficient mass') + if w2**exponent:raise ValueError('independent execution') + if emax(p,w0)+m+16*r**3:raise ValueError('independent cubic majorant') + previous=old.kernel_budget(r,p,m,inherited) + comparison.append(dict(radix=r,p=p,m=m,input_bits=w0,cubic_bits=w,quartic_bits=max(w0,previous['working_bits']))) + def digest(rows):return hashlib.sha256(json.dumps(rows,sort_keys=True,separators=(',',':')).encode()).hexdigest() + return dict(cases=len(rows),budgets_sha256=digest(rows),comparisons_sha256=digest(comparison), + radix64=[r for r in comparison if r['radix']==64 and r['p']==128 and r['m']==20]) diff --git a/research/dirty-cubic-precision/core.py b/research/dirty-cubic-precision/core.py new file mode 100644 index 0000000000..1d5f0e1abb --- /dev/null +++ b/research/dirty-cubic-precision/core.py @@ -0,0 +1,61 @@ +"""Cubic dirty-prefix budgets. See PROOF.md for universal hypotheses.""" +from fractions import Fraction as F +from math import gcd, isqrt + +def need(ok,label): + if not ok:raise ValueError(label) + +def logceil(x): + x=F(x);need(x>0,'positive logarithm input') + j=x.numerator.bit_length()-x.denominator.bit_length() + return j+(x>F(2)**j) + +def primepower(r): + if type(r) is not int or r<3:return False + prime=next((i for i in range(2,isqrt(r)+1) if r%i==0),r) + rest=r + while rest%prime==0:rest//=prime + return rest==1 + +def resources(n): + need(type(n) is int and n>0,'factor count') + depth=(n-1).bit_length();q=1<<(n.bit_length()-1) + return depth,3*q*n-2*q*q,2*3**depth + +def uniform(r,p,m,incoming): + need(primepower(r),'prime power radix >=3') + need(all(type(x) is int and x>=0 for x in (p,m,incoming)) and p>=1,'integer precision') + n=r-1;ell=logceil(r);h,N,C=resources(n) + phi=sum(gcd(j,r)==1 for j in range(1,r)) + d0=1+2*ell+r*n*phi;a0=2*d0+r+2;g=d0+ell+2*r+2 + e=max(d0+1,a0+1,p+2*a0+m+4);b=max(n*ell,e+r+3) + J=a0+2*r+ell+1+2*h;A=3*g+logceil(13*(r+1)) + w=max(incoming,A,2*g+1,p+3+logceil(N)+A+m+3*J) + need(w<=max(incoming,p)+m+16*r**3,'cubic working precision') + need(b<=p+m+7*r**3,'cubic coefficient precision') + return dict(radix=r,target_bits=p,magnitude_bits=m,input_bits=incoming,n=n,phi=phi, + depth=h,leaf_calls=N,coefficient_row_bound=C,circle_exponent=d0, + original_inverse_exponent=a0,margin_exponent=g,coefficient_error_exponent=e, + factor_bits=b,prefix_exponent=J,local_error_exponent=A,working_bits=w) + +def check_uniform(row): + need(all(type(v) is int for v in row.values()),'integer certificate') + need(row==uniform(row['radix'],row['target_bits'],row['magnitude_bits'],row['input_bits']), 'certificate fields') + w,p,m,J,A,N,g=(row[k] for k in ('working_bits','target_bits','magnitude_bits','prefix_exponent','local_error_exponent','leaf_calls','margin_exponent')) + need(w>=row['input_bits'] and w>=2*g+1,'input grid and closure') + need(w-p-m-3*J-A-3>=0 and N<=1<<(w-p-m-3*J-A-3),'execution error exponent') + need(row['coefficient_error_exponent']>=p+2*row['original_inverse_exponent']+m+4,'coefficient perturbation') + +def execution(n,G,a,D,bits): + need(G>=1 and a>0 and D>=0 and type(bits) is int and bits>=0,'execution hypotheses') + h,N,C=resources(n);B=C*G;t=N*B*B*a*F(1,1<=0 and type(incoming) is int and incoming>=0,'grid parameters') + _,N,C=resources(n);B=C*G + bits=max(incoming,target+logceil(2*N*B*B*a*(B*D+1)),logceil(2/beta**2)) + result=execution(n,G,a,D,bits) + need(result['error']<=F(1,1<bound:raise ValueError(('coefficient mass bound',n,count,m1,m2,bound)) + peak=[max(peak[0],m1),max(peak[1],m2)];count+=1 + stream.update(json.dumps([m1,m2,t1,t2]).encode()) + expected=identity(dim);expected[1][0]={tuple(reversed(range(n))):sign} + if forward!=expected:raise ValueError('endpoint') + expected[1][0]={tuple(reversed(range(n))):-sign} + if inverse!=expected:raise ValueError('inverse endpoint') + return dict(n=n,sign=sign,leaves=count,bound=bound,prefix_coefficient_mass=peak[0],inverse_prefix_coefficient_mass=peak[1],sha256=stream.hexdigest()) diff --git a/research/dirty-cubic-precision/test_package.py b/research/dirty-cubic-precision/test_package.py new file mode 100644 index 0000000000..b9db898bd3 --- /dev/null +++ b/research/dirty-cubic-precision/test_package.py @@ -0,0 +1,55 @@ +"""Disposable source/package-boundary controls; not a mathematical replay.""" +import argparse,hashlib,json,shutil,subprocess,sys,tempfile +from pathlib import Path +P=Path(__file__).resolve().parent + +def duplicate(destination): + shutil.copytree(P,destination) + destination.chmod(0o755) + for path in destination.rglob('*'): + path.chmod(0o755 if path.is_dir() else 0o644) + +def main(): + ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--out',type=Path);args=ap.parse_args() + if args.out and args.out.exists():raise ValueError('output exists') + rows=[] + with tempfile.TemporaryDirectory(prefix='dirty cubic bindings ') as tmp: + root=Path(tmp) + mutations=['core','fixture','expected','source_pins','missing_source','extra_file','manifest_path','resigned_fixture'] + for name in mutations: + case=root/name;duplicate(case) + if name in ['core','fixture','expected','source_pins','resigned_fixture']: + target={'core':'core.py','fixture':'vendor/628/FACTORS.json','expected':'EXPECTED.json', + 'source_pins':'SOURCES.json','resigned_fixture':'vendor/628/FACTORS.json'}[name] + file=case/target;file.write_bytes(file.read_bytes()+b'\n') + if name=='resigned_fixture': + manifest=json.loads((case/'MANIFEST.json').read_text()) + manifest['files'][target]=hashlib.sha256(file.read_bytes()).hexdigest() + (case/'MANIFEST.json').write_text(json.dumps(manifest)) + elif name=='missing_source':(case/'vendor/628/dirty.py').unlink() + elif name=='extra_file':(case/'unbound-proof-input.txt').write_text('unexpected') + else: + manifest=json.loads((case/'MANIFEST.json').read_text());manifest['files']['../escape']='0'*64 + (case/'MANIFEST.json').write_text(json.dumps(manifest)) + p=subprocess.run([sys.executable,'-I','-O','-B',str(case/'verify.py'),'--bindings-only'],capture_output=True,text=True,timeout=30) + if not p.returncode:raise ValueError('corruption accepted: '+name) + rows.append(dict(control=name,rejected=p.stderr.strip().splitlines()[-1])) + case=root/'read only relocated package';duplicate(case) + files=list(case.rglob('*')) + try: + for path in files: + path.chmod(0o555 if path.is_dir() else 0o444) + case.chmod(0o555) + p=subprocess.run([sys.executable,'-I','-O','-B',str(case/'verify.py'),'--bindings-only'],cwd=root,capture_output=True,text=True,timeout=30) + if p.returncode or 'PASS_PACKAGE_BINDINGS' not in p.stdout:raise ValueError('relocated binding replay failed: '+p.stderr) + finally: + case.chmod(0o755) + for path in files: + path.chmod(0o755 if path.is_dir() else 0o644) + report=dict(status='PASS_PACKAGE_BINDINGS',rejected=rows,read_only_relocation=True, + scope='Integrity and source pin checks only; mathematical replay is verify.py without --bindings-only.') + if args.out: + with args.out.open('x') as f:f.write(json.dumps(report,indent=2)+'\n') + print('PASS_PACKAGE_BINDINGS controls='+str(len(rows))+' readonly_relocation=1') + +if __name__=='__main__':main() diff --git a/research/dirty-cubic-precision/vendor/628/DIRTY-PROOF.md b/research/dirty-cubic-precision/vendor/628/DIRTY-PROOF.md new file mode 100644 index 0000000000..caf4aafc78 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/DIRTY-PROOF.md @@ -0,0 +1,128 @@ +# Cyclic inverse shears with dirty array restoration + +This extends the classical rounded cyclic-inverse primitive of PR628. It removes +its need for a clean length-L intermediate array. It does not supply a common-label +Clifford realization, reversible bit arithmetic, transform layout, or the complete +integer-multiplication reduction. No new kappa follows from this lemma. + +## Contract + +Input x, target y and h borrowed arrays are complex dyadic grids of spacing u=2^-w. +Every array has length L>=1 and may initially contain arbitrary data. The arrays +are distinct. Their initial infinity norms are at most D. Read-only phases tau_i +have modulus one. Phase generation/storage and coefficient preparation are paid; +there is no free phase table. The primitive adds an approximation to Q(W)^-1 x +to y, restores x and every borrowed array exactly, and needs only a constant number +of clean scalar arithmetic registers besides loop counters and factor descriptors. +Here (Wx)_i=tau_i*x_(i-d), initially for d=+/-1 in a cyclic layout, and +Q(z)=r^-1 product_(j=1)^n(z-rho_j), n=r-1, with stable reciprocal/inner factors +of norm at most 1-beta. The final increment can depend on the initial dirt within +the stated approximation error. Exact independence of the increment from dirt is +not claimed for rounded arithmetic. + +## One factor + +First consider T x = y defined by y_i=x_i+b_i*y_(i-d), |b_i|<=1-beta. +Choose the cyclic order in direction d. Let z be the zero-boundary causal solution +and p_i the product of b from the first position through i. Let c be the complete +product. Then y_i=z_i+p_i*s, s=z_last/(1-c). The stable cyclic equation itself +implies ||y||<=B/beta when ||x||<=B, so |s|<=B/beta. + +On the dyadic grid, perform the causal pass directly in x, skipping the first +position: x_i += round(b_i*x_previous). These are integer lifts. Reversing their +order and subtracting the same rounded source products restores x exactly, +including arbitrary nonzero initial values. During the first pass also accumulate +the rounded scalar product c_hat. Compute s_hat=round(z_hat_last/(1-c_hat)). +In a second pass accumulate rounded prefix products p_hat_i and add +round(m_i*(z_hat_i+round(p_hat_i*s_hat))) to the appropriate target position. +Finally undo the causal lifts. Each target position is written exactly once; +its existing value never enters the computed increment. Scalar arithmetic and +coefficient scratch can be cleared classically; no reversible arithmetic gate +claim is made. Three passes suffice, excluding validation scans and paid +coefficient access. O(1) clean scalar words and O(log L) indexing bits suffice. + +Nearest complex rounding has norm error at most u. Assuming u<=beta^2/2, +|z_hat-z|<=u/beta, |p_hat-p|<=u/beta, |c_hat-c|<=u/beta, and +|1-c_hat|>=beta/2. Using s=z_last/(1-c), rather than separately bounding the +numerator and denominator, gives + + |s_hat-s| <= u + (2/beta)*(u/beta + (B/beta)*(u/beta)) + <= 5*(B+1)*u/beta^3. + +Also |p_hat|<=1+u/beta<=3/2. Hence the corrected output before m multiplication +has error at most 12*(B+1)*u/beta^3. If |m_i|<=r, the final rounded multiplication +has error at most a*(B+1)*u, a=13*(r+1)/beta^3. None of these constants depends +on L. + +For an outer root, b_i=rho^-1*tau_i, m_i=-rho^-1. For an inner root, scan in +direction -d with b_i=rho*conjugate(tau_(i+d)); the value at position i is +multiplied by conjugate(tau_i) and added at i-d. This is +(W-rho I)^-1=(I-rho W^-1)^-1 W^-1. The scalar r is included in one leaf's +multiplier. Each exact factor has operator norm at most K=r/beta. No permutation +of the mutable source array is required for the inner factor. + +## Product of factors + +For exact linear maps A,B and a dirty scratch array z, the sequence + + z += B*x; y += A*z; z -= B*x; y -= A*z + +adds AB*x to y and restores z. Split the factor list in halves recursively; +use one distinct borrowed array per recursion depth. A negative call executes +the exact inverse instruction word (reverse operation order and invert signs). +It is not obtained by negating signs in the original order. + +The rounded construction still restores every borrowed array and x exactly. +Inductively each call preserves its input and all deeper scratch, and its increment +is independent of its target. The paired calls computing B therefore see the same +input and deeper initial dirt. Never use an ancestor input or target as deeper +scratch: the ancestor target may have changed between the paired calls. This is +an explicit alias exclusion in the executable contract. + +There are h=ceil(log2 n) borrowed arrays and at most N=4*n^2 leaf calls. Pad to the +next power of two for this count if desired (identity leaves require no rounded +inverse). The implementation splits without padding and checks the actual count. + +For the ideal elementary shears, the joint max norm grows by at most C=1+K per +leaf. With a*u<=1 the computed trajectory satisfies + + M_j+1 <= G^j*(D+1), G=C+1. + +Comparing the complete rounded word with the ideal word on the same initial +arrays, and summing the propagated leaf errors, gives + + E_N <= N*a*(D+1)*u*G^(N-1). + +The ideal word cancels all borrowed initial data exactly. This proves the target +error bound for every length and every initial dirt bounded by D, while actual +restoration is exact without an error allowance. Choosing + + w >= p+1+ceil(log2(N*a*(D+1)))+(N-1)*ceil(log2 G) + +and enforcing a*u<=1 and u<=beta^2/2 gives execution error <=2^(-p-1). +PR628's coefficient/phase perturbation bound, budgeted to <=2^(-p-1) for the +original x, then gives total <=2^-p. That perturbation bound scales with ||x||; +for general input bound X use p+ceil(log2(max(1,X))) in its preparation budget. +The initial borrowed dirt does not enter the ideal operator perturbation bound. + +PR628 has log2(beta^-1)=O(r^3). Therefore these deliberately loose budgets need +w=O(p+log(D+1)+r^5) bits, and O(r^2) passes. Inside a leaf, the causal state and closure scalars add at most another +O(log(beta^-1)+log r) magnitude bits. Maximum transient magnitudes thus add +O(log(D+1)+r^5) integer bits, already covered by this word-size bound. Standard +fast fixed-precision arithmetic yields soft-O((L*r^2+r^3)*(p+log(D+1)+r^5)) +bit work plus charged phase-oracle and routing costs. Factor preparation and +coefficient enclosures are inherited from PR628. Borrowed storage is +O(L log r) words; clean arithmetic storage is O(w+log L) bits up to the chosen +multiplication implementation's workspace, plus O(r) read-only factor descriptors. +A machine with only a fixed number of dirty data arrays is not covered by this +contract. Arbitrary stride still incurs PR628's explicitly charged routing. + +## Executable evidence + +`dirty.py` uses exact rational arithmetic and explicit nearest dyadic rounding. +It checks generic variable-coefficient leaves, dense independently assembled +factor inverses, both orientations, nonzero targets, several initial dirty arrays, +exact source/scratch restoration, exact whole-word inversion, and the leaf count. +Finite checks support the implementation; the inequalities above are the all-L +argument. The exact-rational prototype does not itself implement the claimed +fast fixed-precision arithmetic cost. diff --git a/research/dirty-cubic-precision/vendor/628/FACTORS.json b/research/dirty-cubic-precision/vendor/628/FACTORS.json new file mode 100644 index 0000000000..d3894bd2a1 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/FACTORS.json @@ -0,0 +1,402 @@ +[ + { + "radix": 3, + "embedding": 1, + "roots": [ + [ + "-49530798732358771146118901080958076273052470912342260266258914227109710325121387637640669783171544976658235453737966492290535102314016775076196131137253281608605845416954368911072190053165368500463077348683479820730223655747230034954087192637416985282711781569366341015472238222901103154593890125768068166111/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "13475305001181955152635744113343228941870362999235845156852762789867665164197346764233250937361286208084929252607275859697194884125876348244811537318304219573113812813781235059890295167053180994008138010725194287959555680271101985158640265590661977057048524039192974778963502923615772560082862029626247356915/11235582092889474423308157442431404585112356118389416079589380072358292237843810195794279832650471001320007117491962084853674360550901038905802964414967132773610493339054092829768888725077880882465817684505312860552384417646403930092119569408801702322709406917786643639996702871154982269052209770601514008576" + ], + [ + "-170592372764629843867157976456437557496591605016661465377627293282379593058008669423781376417268214078363699912331157051907114448593591383586878883684704623349440149303389490092308949295538404178253469730760549011796778712019234252302695280536406885179602202888146765328976392461917368148065254242900199873601/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-46411209039859540974176647362240554857493432165837745376222291831822369430116719300153189465225800706342648078500395279868781491155333745970178758722507111433403998868313736485156740909917748907461424289090884948593897673112150836753179290605396652366677201787911857343898640266500768045571317618646184981515/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152" + ] + ], + "beta": "1/32", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 4, + "embedding": 1, + "roots": [ + [ + "18839227606306460928750436776825014273496077882053237212856774153163841259423959845929808348046828320902424357370784726029073309579224150022196016795678227966011136545266483378669974662335269472502528125472018535885295396863622929964034462260120294171947340433492325221872688727385544533583048885326400903597/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "12796926340379968523293584046788682991068081520875261248350397459182248423294625032260126325308015563095435234200881380927938236702421262255195096551267084999719624023209458696352316971284756123109784206671973205284974765619111294724890379061690528176512207203087118838657451331182211930074180553022205037717/11235582092889474423308157442431404585112356118389416079589380072358292237843810195794279832650471001320007117491962084853674360550901038905802964414967132773610493339054092829768888725077880882465817684505312860552384417646403930092119569408801702322709406917786643639996702871154982269052209770601514008576" + ], + [ + "-67937135992698413485848028692002309503217002121030373236286063853851112002834956545147982981350737462809662177353146777437281023159349478379475061510263643694108201092716816673971478633600166383954345966000686009575573734331558302198133439150275018280298091260360209316562436177361876091474717502741308380027/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304", + "5835616822424528393018276731807351617575339522981934688817604363901147520344005371600541622764811103253229296878826668528234697818556822582094397306602957922127281544555831623274134108430066605792876461395490781682749981003075479237572505884700169238753265724966398880489058963937223602091905317904711941499/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ], + [ + "73140002878255602241711158912281750377574232707837598458857400104507930946414903201953646254948585509216110472170409026061261014243757141002856798605902222432653774400735298040913720270819301943861772786445719733578848858120147397354586183800152541785894513923362213804429810043582243527480464796014608479295/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-101965650555502300179425242688687701922297090080040644000576714490063310164897746283818166254598757360914998703650200531654685086831846027226086641171539829015447750993610037727758956893880614628095284026104635045032186714065136378505612299766669091235639722208461448795105675773286000398597466612399588126671/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ] + ], + "beta": "1/32", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 5, + "embedding": 1, + "roots": [ + [ + "18410399432434593285169076294769602275894540638275295419244544381879773242101229303192661033873560946309710294140171891893900372823577853227464636318197065166893737578492060390055766605671671799743745029504200984650324085253453636489088551766233790345264477955593735634726155875498225455897152145422527110857/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304", + "88926944313291886897540182389959275756316664511795052113045934836868436387626350644157761509746590523735127289561482706452011713192888368531757723983026280383546034048812998372260884484021077768824721106874944498264700931287184901932524740060871613024772296891180592599727648764929046216006068462246504374811/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-167545453603640477774873977068820521490816283320967799058419418306745166535530698475752796883467944874062781699503482002031721106189111733803133269028126037337336557647540282023493990675410251006273872459992624200925878916492155324954465535073616098706096481035319289799489810569175272312690818408702357774707/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "154556349957963769064367096421348364953192572923709918873780464142362058554060160862470338328380796109257170485631887393041866922712420579126848130118663444268007905141768967672162702816973919207497792878550271826416467017062585388767141690359055369161984340591026398951036705551282299373389928249065466957777/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-246025941110189748337782398645962696281966535596390989644134716992878047915802819087254020031137007742552596547220618828803263741659091725736455982888598484589330876923271022291321628747736395867996706991862080909718783945688678933156172363230796038024619721716767295126085355526352538295019215908632644428645/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-80017827675325207808535539612151904575968566998857213977754346138586638701168117409273474539675100516306047838318004762335480802433891996015633286597935493715465198565408881501720917279311214162172063959383782684101469915657487668687514739767345963311117394934914437584673901163128059865890829000565376585079/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "215712256432223249791838888842272962081449782057642246390000600800148072180501294511436300947360881829332748816482640829932179778301978229874156851415522923858548828681148808544326153700577210577826268148302190110772732181100719565734873230271520263077404047413202169567004576671193383551882477838906429979943/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-343345360254883912964398674422494284929201599795775129858953529504351638375339699421889616865554200011416676596545392950323715795619267003477668104686330984199520110843844773329958643601792506764296355657817381043552933491542452533905205092594361844214785757345776857492089057313413558295951124845050277505639/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ] + ], + "beta": "1/64", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 7, + "embedding": 1, + "roots": [ + [ + "120836177722361423700961200616746340939117621826067821546283999942075497210076949759460370715678904626969473270870038244427213482017330996532718477962097048482765518680096123147561488619800104812093083654163138766755667970537231472653449243809561047362543545086368385980168510507433365046715788937161703716085/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "68125532188584294286663341974472312621216872199921619246009406654878430278942492383247031997235044995684216361049673718348715972217344544049530857813500428243332162775155119877092074201530144921889140264057120091137424453307505120185335081880162914431352955991832950471916200413514695655590549673800742347681/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-23352251484866588814984102757151938020295470378892869474143458720257279649755690100107547794252764950418419952156812046731260229125257633674879904341802608588717478148648944135150233501962993159400202815681865439334171539946279604850805926161998688918951893236128852170350420117380648887992523528703050194783/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "12132115037519896013585104434007386698287966150528447173769745653094849377705471451533571302407701987585405260939215552836593163546110098278844478687559077536413118639791236269008047600329470759689721901333721666143586701098282693338033702985076136987291514686849805451278368411427725280317893977203863584583/11235582092889474423308157442431404585112356118389416079589380072358292237843810195794279832650471001320007117491962084853674360550901038905802964414967132773610493339054092829768888725077880882465817684505312860552384417646403930092119569408801702322709406917786643639996702871154982269052209770601514008576" + ], + [ + "-92291382711014775221380021171202817794657125260699000287682436525116249639100986456003288102293593362503506340776371812568234629218022304094954295338321708547490187028615230917002633870289187269289797994714342072570440381702763361962356356505306507682202967183538465154964375441642931008189553934230981931559/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "119712689918657651145189233762925546457090337327810229148877839636675818166345698397220337691661044465436596246450977563970023691296540621113539611731979073364553791157261962787179002477238112224575127636003783615332436194461854998451162028079761177278027679849503098212639903585808693056859631675024978403655/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-241550214101542094297167535638151897507830585201411331736006717246868123702109366984690181768784545848116906421886000314994526788327659530751761942604584557795696877540130891932133377552105984741145270626005788962709578395270874088233819746015884483414705471639012552028950063730900626438412769308246134412423/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-44636521770478560155358654717184927568066750073373513015128082461673476496822166780757639936727928123676721979818426533919863914831246651250724819329685161786373417321779253128206274251444083819402120012005681947845516990805594334226921578412078056649090375828519802643691118444466847932595531100425230751867/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-30203061381136258809439665112684149466527548721381460346906377733218206927673101886508360525270680857362678859262610296498976901610754244593890353821856268232116927740493603349537265139809747876075016798077935946460243881062966294672661437770702005876180419387161259974619074523496342984580783717368906963491/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-305110068800135848497848181573777483300901124284310624770759696080464881064477659631992063113691884421747360163819890589058455217115247182223505704124808283746309249249359889226760626023333388774388559141421503453637601946482828567415910388069454422041311561341290600832629150554612317238895704865818852456303/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "321370196207928824720915204711075455015246912340098126751032311594524033112453537345445629309422537818066392684089031234715114932786141935425039670921672922753033036803089443416637226862726853593951312786044577899391357952048006221305816041423551248138900234992740786667031784280806046850529260976098348049203/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-24530473927531504467392407392323938052443883461832126187972943992643983667419063708657378422819680820353364287646948211385092126125885316040368239976682069981937416789728921378575979136146542456286295719081463657034678512460199743093437741946258402070242087927157968777687527815825283515074190769218475070497/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152" + ] + ], + "beta": "1/512", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 8, + "embedding": 1, + "roots": [ + [ + "8676521756510435418408946804461767324891306204862417174847745121263025946650658922911780062841899310292089809846830833767424385518217195893825119278967539421517248349379935548836275419185719990536047729374806106190931483190985689626709113976582272252929209174868395094303365494483709135736692733466731317795/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "46927175506395187795687931561127127492542914401987186784106756230323458946080644106593751363160127877209084537223858819579870206674713563202937305209536930043680869885123270522345465099010053820092378973496193748874813123926250211050432217802376301722910925291572156201602782436939032617502745379314433603689/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ], + [ + "66202580992830939447277596770820976547224187818360015042315917699790056190563629777404288554237323292216596605503553003282188641500233854198283302909676455062335042428271478810798541736972692302397024682764300702362971680590029381246736867638520196791172922404288387541122616211813091943463685403402194819637/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "121765996413538109244722158430733772946581021648295379494316178425975201830123378250127037871022862140665047768946333869871635524590445958253367982270652171353818448747755198251644533171986927552011666923832137891571028711514868831622149886611924577771659219065857057020727239216653669500246218019089692681775/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-63004972185514719302016938882476801018029290150894658797428428794872008178224844068489106570343956469890320581237050176572657244106576400241496924996645905145525690133237596136064437406720491787085549650786601720713499367232077045311041089715211178346785441054922158278590254819899949862505839484404422514173/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "162089912107789904580698670024539381013319877304490279642065801647607770297007606234339566380838505368774389327096714260667996331814249381137709093996072587356720324791880511287815302447216666542808264118488552050522502999610415668210833042811542567219354932850746955158614010677677778588862432609198364889609/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-114541150781975074659493858700499576773418741657487570824179357865241951223155018561684267907712799100922762526706741412523928902105409038951683693424204620570355075936652546398681787931145609090635335092259268023627437543404884939870413071359280803563668076790897925194743799223677433801998275248938099138653/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "28536383328959703993730430075303364190020911254551649423945663982045094704274492977093462377686393175454598424578736919668575596341930388955047068633656361481992620692814813327812876623975978375572536423322145652113828759035405388077251778997084312380853597717028602612494470837499099867849196700594746333193/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-201517388249894989478411032097072751718656423446768498708508564928448662660651229648295542554051448907899318156973678948290345776073447986354173204606393763408869392055271224486081374851034619526102418795206963640221560398265963426462213308991975932816594775660953319668579841424702426262528857537080463794965/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-174513042277315163849266924439208792551210027773319873062117112212107791949617487997311514602133978721591638988373550045126013490861600577744660221983293741489328994487990284644844821816190752936317045684025385986252691736431523152528005392504331486525860129092504396317973074372934850065698391093382548690683/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "20853952201633312877387277508463847055126394746254519899742972932555894208910866792849243688527659586695779456772099102381103863965624564255350878448532450809472846089800434934408081189773222964612807975923115727341248896300480297539550915338524351483735093086771402116129065052573895987568833471894650866121/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-312641081391502269606656250395689464714521237121044730843195101985540858918629890694914712449559446202158312842962672451031785756934401273144496289056535368585556084621907933962326641902682587075123817870096547428328478755021925309233810847720403976729205559662801376490464233034499544774061638742784145893525/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "166672131806845776192896885973661042124973372869940345006468266318743480528703466414015865739675637832291806442497067063319157094307655919219743641987468037062277740025664176448810213542701871758655081692776525610517996057224630655703118199190067622390022656134231632552577778502578893106037108271941930607565/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-4376967838200489497250994948825473623872235696381225795629850903139948925947408138790254476399212615558494266176816561458243901205759824715627651584088611054101239737165343081922176424447484738906847833188948761892037696110205922052863065492314158621446222809067390965832669530284377833079714832042153910245/5617791046444737211654078721215702292556178059194708039794690036179146118921905097897139916325235500660003558745981042426837180275450519452901482207483566386805246669527046414884444362538940441232908842252656430276192208823201965046059784704400851161354703458893321819998351435577491134526104885300757004288" + ] + ], + "beta": "1/8192", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 9, + "embedding": 1, + "roots": [ + [ + "333910482659483459438655528550746003905249000982454975806894848438737707753764976869561366054330641369183833856032301628669487010009234742939505872476695122089942073608783197493524773122513229557328670182714416409970596568787760524274687406159411184511162472265702547672362929076759614595740589264277517789373/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-47752137171466876261593994891268639759720371836251849522631883826242730835462895269072450253303956251409642499713362915697132486294075863280378249136595798406260146271799670133428231669418934780402000503782168565275986637683350570973550359499708480182227099344116449794282936783930506661431843381346792007145/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "180857061429154340683796569249229633634282740219290917942321763794161703285567755908320831766805092839199995120635992701965884419377793868614453316178802274842846369150241658175248894374357637462187419868434067659967756992677108864166432671147587357826434832424046949718532074646758771501650950393504125313/702223880805592151456759840151962786569522257399338504974336254522393264865238137237142489540654437582500444843247630303354647534431314931612685275935445798350655833690880801860555545317367555154113605281582053784524026102900245630757473088050106395169337932361665227499793929447186391815763110662594625536", + "89031252177887495190665762976190738719635134333314194291508015840329805457255816648024444476560108063934040996807695532427466053700897943316995019084184510458211965571902286576252834532496294909472140013944090159918770767649059087712467909540838463240479671623720707864757601071992191516521915069518033316617/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-77570549831923552874388989142731030044682007042905840083400846000380141528891579777851595702752702328774473303959132662315889278783543232097424451580806347987068043391866782113060657867967927073555566291117612044119958405987268589066112630178066419315079209294063775976558795584459682150886660045413954013769/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "179897435173147029214413437523250288359207247872041518170502120727641382930349650875642891171666569302908673314657961466832174273548337212606432197485311335192890539535613453859826823968059826198019685012450454506061510186429992789952527736462387221084655053453668251388987921959301870000019796834301705370287/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-190010959094347690462269137172070133553459071158786598796602362999138607180514755593009011514443911574926856975116553278070950196565545016104446202259984121956425990468540175254088981798543541253103375431235218242689895049528330746625788021572824829150972581783014458284949616718799691063891716331606263765491/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "99030770506346274571412767249597026710488468973300656614141769044065104917082032751052659130642873032747152401206156730746432904390655127956658220469005080826426402974997601139897941906522466353259384287497934337081931282143875656631456401729850661272991846764776573277336890519241664182121666563815825108741/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-233081207055107292068614793986538528139321828237103534257403268711362307316433680696116996201453280211587720811602707281081949546040375748910078559633641468576989928431965548210945788819468022114946692214502141994372721141673746177085180557226353646152761400166555794272666489885938550232614191513505184437909/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-55943527093538648994131853774327760706423292404958516460832453352530715831038895988364294084379075527404154738093222713072803156085772412806543739693673201174982311509658713101771928709767111169834072902328747368130517026338521314072319621096339894710376582330134409800137590938355592424671582274968784888015/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-73674816051867153651072739874884099639564752966078427342019842615755828513593612394516445502429253037266855084255963456491511864584968452239949356574902784890872662314770973795626380106098390700582613148829779523841278267045301960823172752044249996830463280555136131109752238430106594324223891786255349386507/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-229807430732849177117110644126555193643659835289545136715286801956254443227030503648670842696618870987609340139528277927495657195520865722750609252335913869508408276603724155327353030563572875987772902902949206596449124196495306939290344827467222870442728695524546121120411264232478377181674795998646854090937/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "21321939274995178538221961206791871382984274797017580984543305003879576871583449027897925288200755917559935688963418115740792809342472296149539253956569356996997885510566587640382490543578910073936695660519193238722044786613345993169911490333550849222184308269478701581148338439803843307487853418615205531513/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304", + "-150737439183938417466026541943664853780573301677390200716773762546802420416786746939455291356847900573293657693272612561521417054798588970409780434875913176859075028648525952666660665297532915477471545641607412073362848129142966744244476665807658602486321803579387819475245914693110974696229125922432406831735/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "35114167688248708489705226725520322239757602458420567049561448419515293002391419875052402245031950661384666638645168035176238701372703027255979313802828205032500024750897988872631333460681293263507451895457087663973744113306278768660451880594853026913028478026418649968409550880245338037923086078312777680791/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304", + "27546478297781289342951459913655862154150871859653605939980547557514582388613385010841997426553751173842745619847075795184069081850799605852120546322776304239444231584968459156764651674979961647993059971657017151034383284332304041936961882154160895082836934427447719866692376787959364467530446014008721598863/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ] + ], + "beta": "1/1024", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 9, + "embedding": 2, + "roots": [ + [ + "36627579605007658966659778461203634251371697379108157264801251842963340495317878340007270952160418991100126967216105106719737629728806468143838917422932843178173126209184087556635317452073232467886327807084905993395510516160589404741476340166934455525421308327705599519861799297110888754524674156034983913189/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "91213904696706307172757488630720409637634441273504301106383789102894171902182804905443189017899008504696948838212829861096814223539148482614848676923111790231266756795679293509188920363735763072749479237417340538439822705330283204140328446148978965322292213168306231351893475906153300657761895447665575697199/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "84035680545684351602473661021561463081168863906638834415994052385965625479101474846868259017791131826318727391437910192088726625481437554020823348149067175314300228396308280676735847981399985641700401470915484644497581666130585473688371033657369860576189725447930344844832440162634723948823836250202417994515/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "8148013099263468190653788738472861941241579884501632117571698363380494060372231299699288233780855988276576215383902261263316045847213105572379987687627519561818982137927974561918890474195006623065707914273566644830852081228319342987631236139162161704438123829472498354324469835175859687317768243701014103519/11235582092889474423308157442431404585112356118389416079589380072358292237843810195794279832650471001320007117491962084853674360550901038905802964414967132773610493339054092829768888725077880882465817684505312860552384417646403930092119569408801702322709406917786643639996702871154982269052209770601514008576" + ], + [ + "-100078953961497513827019582958503948692313436745489773412119737617020533859319405373115780371895107700252180090915260674831636736234959936041881253145088199481284819872914984423224863245178613426667354296068721645475017118632587754300463918861969486842414948740548757053004934043822785610986714760398365599679/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "3398809930139403861148899090261015484845408816967426658162601582201664636905280230206674173374829015640972007851858863447180055375534479268107072312487849563160091306886763149122921123989532906823269948436995082554330272656634564774170850622113683532802699002449190529818559937755553698477368426140195610501/2808895523222368605827039360607851146278089029597354019897345018089573059460952548948569958162617750330001779372990521213418590137725259726450741103741783193402623334763523207442222181269470220616454421126328215138096104411600982523029892352200425580677351729446660909999175717788745567263052442650378502144" + ], + [ + "-183338193122679443380740560128812455004059475231783258422114826847995734608876245819348478430541727370982727757486771145154226239259518782402684145929956021883455556122678489997638290182053381073341880321623966722662080562479192139016173619844654784754986657599090969957280567175733144107276191731039944767793/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "69544043884892615520046310400849713710736128335193355114162837516266036707296210585162307101033581669414559740283356404136662487557992456157952373635087040782218145130401822170858673477542223017483990259128019803079762888726928377309670948765232529247230492706760919274284002471550667971352710783976141811759/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-286271387236816925280241522879228420963755468856311152978521691079419985629370744590058055558139090150368540678259547716089060942385350516235204508672078069739575899105386310373908278914441421362759756269445058265422389064137253935790453915270461746334070802354549224387950778330302172659661620800950476186749/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-82918958338806825753830833680976263062074588869905593699233198939242160296448906481827055827641905389023514571488788279137339639543608846689251136263565750412573086750041060060195606898601160434500732786154396471493243930049913562346718453598705146259982726005531537274756750753151714066487137785910761431947/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-49807632985904636056327801309165668569949679703177249904015612774568110724009981257491882061879367530463687202275856313301341867893146717453038446249068471976860842053788497157502426856271448101222353866671376525212460060433231010076669364400926876741344107657680474212816727791674300296404422336397687738749/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-177362022940644076757392587993194089526114195004881930778497281946886928035272836044916000656700084837927346549061559295412976727004631522383668857538236746314783697433474028860696915143971089197553031019918950340000537004506529613569767212474004309695951498140271896557248889203205304701749822638973665710421/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "151726435005196152503621229407512430240201194430624150994328999718615893705101127231153874291153282523199899481986566943279721987880106907314573029521495326835809641098557389722103622116104726637641894632029695112812573695921454951502415653852282073265566820064948245713045069992446951560447509654860385758977/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-384822354883360534431812042911405387725218348666290124845083009057711843252196160570381320302098793490714437674025650657316209395944001060980319931861297115592823638687839794408498221389027544281560445374349368840423996714188312856799321242909238654232390908052313482832343212428064897303568712693638467285975/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "41081431198079572611558466625440658048255168639522243169055624589826066923314664776521434977008446938486253681718692790654307094043265416041383699295454020975360572161215700150415363540172271447445087225207715238810462166560904016969936740545340760747113041037652787910341644753600676564529962945902837220001/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304", + "-4118711747111065465143117971635801376758138406433752164082253287354658505291179385338879623132445718177109921503638931942611426340975801223027948444391682221345950298080184044770827371312364405460096337648485815254515555637274146065727250436766509743948076237782619108756462233723207660043495600271274827343/5617791046444737211654078721215702292556178059194708039794690036179146118921905097897139916325235500660003558745981042426837180275450519452901482207483566386805246669527046414884444362538940441232908842252656430276192208823201965046059784704400851161354703458893321819998351435577491134526104885300757004288" + ] + ], + "beta": "1/128", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 11, + "embedding": 1, + "roots": [ + [ + "19987067627228188344629069299179400482723624880399215433823291767545287429199097189201872739530866475858846834340571882225835111913315556842511345498467666815253246841468908666504463346483028254245326381190693095283853100267355904488055841487849491381199845949444150700195520393828374821557134768600767466237/11235582092889474423308157442431404585112356118389416079589380072358292237843810195794279832650471001320007117491962084853674360550901038905802964414967132773610493339054092829768888725077880882465817684505312860552384417646403930092119569408801702322709406917786643639996702871154982269052209770601514008576", + "-16371177452751777825563018362473384628992592467063145384041920070193938502884230358731455517486303546488422975735506625293320144959392098974784869852824091878513232785682339953450977565251051966045793101131935501779170807314388776610230256291440229867741336996952861254445223349520745729923222550176564288491/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "18856846747548568697588208088342677025973301317628666942362894682533954455666322781604686688583386331954228030929273184779113235417601784513933283718249884792714800236464676089878514996628927413059992636963593921322785923317037817194703770654332326501994334024022987493666601426630817081203976984338145763405/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152", + "92987134558769461110036206867296860043881621638534166853641725913226172224366088756826381486275497978147294133585381794639930001435905110892538226145300666954747499650465654558096450639522609112222032585019033582960779504653453557208357386268301504380446208517791958035784800586179182112037390042935466531117/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-8755627176049049991226664047137245698863739906064153437347452970558147035098726451283760392997679178295614102787623006912674241102405755920868082634752574119386112664741472162925566921061850884242496676415467646079844403140934545444691802820099406918031463518136566579394224020189874248767924449767942783925/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "184869178819451977603611176386928738242876901648101569688171783567941034492292441694469196166591126057251772941746470171157037212752090292935695497021766339398687078438294125034073412980357691297887600434603353395394298477189459158524716423700412207205879422399971470449045719677938588065634394716581191836817/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-54478583300645253822831870111416997505140953588934025523583341251965664154365796078024298205741864555549713807076133144301802106929744713687687990384993502959532496048549753489310281500438525352868503316582822328826656480517864695496618221362284012857411443021555596782792697074220181225526863918268300639411/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "20286205262628437605254043475721537150966571526564811549532640552204714056754728803364947802459551692869353686447919641018139868478560640763273306515452613049046891837083267506195031814938252858003236870013002284111289860505997396859958206617069856782707127987927582577818632717973254483287992421656734652759/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152" + ], + [ + "-95898183509014184241500254592800463383859036505354131097291586846162888704186664657955359052988941231121132518651068021267889402827792190056019212109768207300155797496969688201128119018149578616452527735438289364195597833846776297049494445152908588057194749724385825905412784224692093180207921450384112242461/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "42778814428655042090098870059327487099864258445354926673871694836725119840952203199861360259612720795076463940032853087688047118369165810858094712277252996243488507752097503657331562950399220905133886815882248888535031166708361760343306732503522179656046809130881476963896662304795263022774723587080694995587/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-225921504279610020642388278131970798218208536978767361355204927337288732255627291982651523854880824990070444198973400989148467743303745890374317986738214990201636073279077380395278347044974050305694703888747355737926977743906487115905900433985192373300492134362778507994126188996113276482333293522946874166163/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-18512006630388580492498585919316792146843256940712140321718354870283077911759945301636725256521424427374811915420777847665766697831971631267719642616122994338671795328699256187096082707061323572720759145517912510241431847044219321767359552211168619158510793131072148281713269420146872738380344999839805482673/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-180384503040408332969274788910647993002194348933408627006352614755504198801432827860872973900664892565262188160970148757056307523990146812970216425530483920281444046886004414828488834832305952363622670602928505922661923912562146105294903808098488454307366830380059864074416998974794846587590490652864169574297/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-176646969751708359448147936704547232946199217170499539675033536510376224673878639512761397186205834591084970427821916955369563206972314869103885725048066220048023304706002429705664922747797907812155061260294680552052160516977538525542207321666484952876348281560646346378263539923187144743564731897674171100239/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-38861837212388384976420529976991509417115833041275628837436068047549600060280382176786322036369939502791851622004559175908329336385610877310085063200757697917251570206071466998822689139170709736990644246151849501271239337143095479406182219416332143451639476774213058321348321744184322700650862375330310963823/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-277565260286031004677878130054188583191705289863934684844268782639173497999273973903587616669187872134632967542328894598608374892255412381085758974558621898023147837402060395658900058771526410416451986547731710938161234642213649079303903522523174051553608817790842230009020182395206171132818408527279761433361/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "21488211622826500960553162925976956012202845211007392491489641798267308432671711630040098232679466316650764179735598419427366676486749904192558644332299235921421144714023516384651586190355271133895433014816047193327744219762731373547159612179053454955452144677625900088969121688703953521421817439565637653255/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152", + "-128511894661549286531404877158872813325425204854650114042374504318410629316789283103583139449251533177702910299315398368686906037165442415057629373076402635077289348627984153358667785498500978795932314288919594386024513282286275663286707605543358820950021120445081138909212973329449308021598533550888061275955/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "83585712907819930372525737678387002726043373066088394654745598301106562580077687197093984735045193590830082209556833412016347775904780083057550263000319559749883171904511683435215084292917686994094634613938974636571702338378693688527807890580242888639214849494751714712417179164070115873698326690655414974855/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "39527043648482950010229499119972439999724135181397298119791477377378696955872414923351111484626654042810194997537223158576386497412597956774521165982556008744194574609655834444282255397016231889321227196472166056329130778270908426382465705876154201534793629442915901015100724328325125021229484333621969864103/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ] + ], + "beta": "1/1024", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 13, + "embedding": 1, + "roots": [ + [ + "18692326237161478268382893815511145026088685648190526628486457135249558896952920917514467617130261745382206732573150104474804362843637309165023312885970700945843085407379411136466208630482730176116475442280579227987505293153616103902239142645063037996256214288997875546400775697052054140996875722199535144377/11235582092889474423308157442431404585112356118389416079589380072358292237843810195794279832650471001320007117491962084853674360550901038905802964414967132773610493339054092829768888725077880882465817684505312860552384417646403930092119569408801702322709406917786643639996702871154982269052209770601514008576", + "6486859248533430000780273205701654512173970909417755732036832012643583151844496919483104176207017793400666110165169957902541959012070998111285223760348081928328199544477282093388192150307015875863662558373792923793254558604148460967249276341192795957495960108311024542088237938103987924150576546911604521261/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "157323348664187956666822829330189664661635426810358914253796127992247865612061106690649235990527526045899298682970108967127473022845446753514004123946631683036181536536551113663594714055940804627834938973774495105472785669307840365432825878956659739101252967010629991460289857031165177301889783427611928177035/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "40452681226070075570072472344401074944712003983589808887925600577667159697646220867905051803615621855045591166578947446549771630680539405755136473452812017494827925564012739248547906421181216869880258586492201563801160785331284811700400735399327336162196251093715630564873576011674857714278044254516933544179/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "34899392812722428966123339680611544816703491872217428378010116691058846226498126253227436478273425414652638211700583485046158136663268894227982165278243907434398134769506468269248093633129553630375056939180388351514797408409815225914896580843925098996214002147635347069013543757886234918338529369491958625833/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "88011579740709610420551536777095471880520733731329804909182057295159138856658844441946791253952523971367978325361906101288855444899057938251340285018035035161867960959529967697490808156919827046584265520088861647898766523277648589169329276572810161414081405603460615665641982272371797657744614418548585824559/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-23632344362636047103245294315793142313888805211632242345277872394180256512662942947584023084035033218243173110811282908595282258284332226870800162079433188907613058231842037992245668397834548268318570993706111537983389312729510092584842380438077530588177371098312347383358971591168761951695032633273140864129/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "179549417839364571074172991064461500088264697781045040638237379539937742850790852186678832881823049512825498163936194969819369072795634141188946475578546985346143228307209114122988494462198458310511930360221307110264021454197646686772971727200632632260525068224424641531327341793787119527322865955849707710265/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-64171504828073803152954152937711567711542666684035601356646712378688470076580612870475769092135067000533842853688036144897397023533079657883641351971704778429165978068814538057468601770310658772323207554597087096804145799486637998411913965567996425496787598923735682562388421874636442133233905377559485353157/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "73251115769149306473345828646266294966486765451643471177403942814435204983959223865491318323457407052192740413543012493039306909122000661827522200300183854470520931139463523567192277441532807875169028627798601616463280909274217382738236473252288608372738895951142823317852525506369814133883275719630758807137/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-96104599738951769633676493389601285253005282559510584694569816846333257502863917660923538247139087495252208921646849092614916922614604316843162321832456288793741483649147875280476706456286703917113215728033231503625203893643516836727765185675495923663427569333306934484123850806643288701454825729811953604323/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "9516631030430603547304258413179041787814767345466107116984577378638068226215235344637777767447480019230821635109605408066669055840851972438579815757178810228708736258218847736218387748283693992362423328654952423382366630325601232318115927373324378897688359132242894713899973429384583590542101150580140274839/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152" + ], + [ + "-55062228354540215497376005863565840475664320925484203015301893653352734911931366500499734179862501376983233255651835114951841126300871292416409994938947913247339808265695383764522624850188675657931604747407328681915351414694957246542297547449812418192888195444651234827845753423977115916824720713929628153581/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304", + "-12496569895905601754496446211252110954226257293968968523070001442676531897713204634587293165700868423273240811744498014947415054071256992206134858336956107724864774886993506222731936628197452918495709094251331874681454069575341628004137867852588704373449128871488326320348282721855230926986775081427488534319/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-97236621922926488171753094952475321839966850867104708437058094218576032195216305246450562921641655245078955900922369570464505990156267416121818652856643194067118861143473065056879134133679172250527578434553971705148706518072819842042031704168804575722945478691295867602666460085505768296696878111825723393123/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-139974366379725222238941562299015165007954582856054307766040303104694071987798318784342412584103837521837750166553176969910384907399840762917340723142586181202439284159762153726030716323608885065258852362112003980666178559063919724073261539914546317386542228981943211320210328234291676368809663605528890583427/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-12916153817227395308964320333307521693172637922378933961237847141531974139138197199274579477201858620610500507563920459598428400153777012639967564196276145126945301605944903521853118392469464413956941118844472993633600262566258024731392397410303362620852019080248276163503519613363724636522615542062596291175/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152", + "-238994272365838385358698151204558291126185120423482408759980968611149377358699437412307564621248256757262516810026759206258728546995344843798934973819120821031754741483239472065190876326354096946934497360840975069467809446930323282385605750700824263085431792466905140472727845592124191127039452483105619360915/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "6013043937133886929785992231257511969627667249481246735439580322562221982328578577554836403334984733439034934735034117774148354364364987263562214790340175882986670622045334794157783337444852881404655139096629253059946504379613666594193738691315078072319789952637941430021364779329441507323583528933381210005/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152", + "-278679923529189704360039255534940158059487346553817563199472560610069982490137529352759281333079523373930862003820159709004193000121849875645389874369158065539387537232566451095140876980715405549825629533527920059018461562814145916859044343901996440993708624557401126980979858868823094800991662382134844602877/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "109989007535808651476018626898092526943022773744744817418914845584436965704556653332778848051969834606627072091810750458326495050646220897112757542708660487042684367750689381549049479775617896373974012758542109149431726669145658671611746929890662655791701705849605871346529807065359253700271713756945440448383/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-51882011778821188484364240793453110774348786484062001914177257798483135937985388930919631365603190565770832669699636056548063889192925119116887789197614808884804148831874399739412809224443826013793004508047851389354227654919416055982643722487389332768423157423587133671627261738239235292352438537394793285609/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ], + [ + "105894466188666824637797522379481298816044382741836996193011641682857452110816736028928950018833122381771371198703803457128745525851017334778410249826879397875759195534689495859965994904874626346162905042038177007336006951294064455526202243127641508935278616124494878183999313811884724475030368145374684989523/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "70513352389598145213663477133635023707890899921823566159207226270576916995395924683079445594271942693838367850660040457845959093720558038483352469338574636265642119180155548293660979873985809604194360555360145016038237726142654627699688283243073137486408739406691752226458425337231524766414622661143826464579/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ] + ], + "beta": "1/4096", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + }, + { + "radix": 16, + "embedding": 1, + "roots": [ + [ + "134039650432496433101295605159145494804947147618859989214825957778126813783946265379824234530653079795983300535220081531974499830210731306488624875267801121995052729438299927149721093666927526785655754801147235486784301827065913383198135946696241002975265831017168785200446019385215181318777012203053206775435/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "10043776175087489111857420427705466089122018604250422834704851221257606484042652956267827527042103582138401817998484317090147751084140645935922861891946502301969712627060390112286498548692413675638854082746767615556998261778873625372575511704320589333963130560858950109780981665146820923938000446283595843981/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ], + [ + "163698198267763187271175317732354162942142798991132287897605537834861074139898973926663170112137318749861087075458509497866923709014367775583409379820255381037822285641799332965596998682187512678394888610812074850883841645394925104103931217581714852536893012837648469034763538149987146660169793180318525683963/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "34154907814115855601778002615718880203068084565931904547779687937911408288344869439590995495717368706638636414617448243280929199776252293685154663952500722290615662112290390816093868694604275838431637064859423302174318393837094657848778434379080583038727143019868879816065247203874832557642095346180510541817/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "125972697409629971610668644095806954773026269483836139794069300342348858033512225247311677027781101220433900638850299785029618718841248714192496025858197851778421685409754264599923508300047622246726630559684778235132368096407527643305232066166954976575730325609055979040383084148029612053926198944646591312277/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "15167790659874947924589060300057100404989113576637779018845337397852208471948163165837442910874732484685189549202575299032263922362242746686661085009319025178790114153139930066286476936454793858408781296809315075998603335912470151363640101092646280120351957483245267415973808462131927199015047640649421685169/22471164185778948846616314884862809170224712236778832159178760144716584475687620391588559665300942002640014234983924169707348721101802077811605928829934265547220986678108185659537777450155761764931635369010625721104768835292807860184239138817603404645418813835573287279993405742309964538104419541203028017152" + ], + [ + "13853536865015261579911150032049872304272006558508656999350196565098776518334784731805531655741656799427586114638867558728051351302042284720128353136488689847220369858233808059733505486343038607449224336533854935610047845464572670709769013819513710914519750342782309697087053886069773135656466958608061541769/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "177545851147179895490196191648273709559870852473948635168982933050035672511543664292889660396400875012049726711091359491491643948309945736293014186853449971590825791166882789030071391843162221062181697202769315484013800917514554939433749527198631298084673567294376435632058165815416832640235572073617726120941/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-52210378056113995222526794456200026551550434350267615704607002484161409961625123864247636241912256583356359184500954597575895892110205892926433892520877857803012652172002684435938465544783335544671181399418477865628149454975798200306362483024809010252305140774988065045567446320437361416053738363358747644443/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "87648308710707093471187039917458706451472578491021738770540393300719242093206053400276097328660396266053722682800563211432811793974391639650142917556304518681178604701687327846402527191048522814812999729648713916842250073122954579935163661634587626288322854319550536493507991774193503157659239580292987842157/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608" + ], + [ + "-116664073824034912718051835779935450320038013857443941308097484208019490686854521720422334021093095268154662714097019061138743852755115144088228123078315232346900394049166264273018455963049040513237001187564736700035245183063339192035351382225907798789582613795974065118752512750692942562782534375193614661861/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "149449269678260753521945326074791968079519019469792743136375292271466248404832296872514640066703937306939051683043529915596390678603913779661604066173180108039752595884583226240160259044735240089986116711339120429442816430176353855415258845446067522565220002881930958366647672375789662340506634532555558066251/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-85610957404387028634243322426648242688663257839375635069698465559559419377521551982033761821736612609921595358004172251326835155119996617686944093557730406618580170261786725657706867217353963671009491290423195732204000640025294244393939752267572032643929785491689258684316664163295188812404572449637311320451/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "99615833663101054301816080147826293655285718447019552564330413357835145945778960092597289825973787281964918942430276502793281215764935713502351704443126657759517272838966727793208748184206115834330960302736430555573552466912693730743584134891685941797179902285300308856534717258649051539716231977831990434935/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-206470925126790414958903095327931072696188278347167769164325237872418927430185815104414777620540205015448274164195641352218542457975169039791010753378777708716944076446597350330115681723054142766603880278838717720575430103778172708862328494065918713903827091679242299103863352097855468435963485647011288487845/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "28326730094049526360308020645864856724598891128838513609367588904514833835204347361667185978800994436970191543152173345365891935121884286237303162650500563575271973969509154285033455092089962932786873166080400502570268738193931444116625301385853996639117280974700258567439169279262226550039720244993440086577/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-212793201622109962448330100692808593439645159644577548679667883054110536914612983822159045347472254754395342771708966598767283083523909873556284381276124835470115664134649247694090104295004718385271153849431718533152316853933967919972046963990390480364949318130626453951329110678301062337081449200475601735875/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-57964249005932469131896837719919287256295100537523457777437606447238450243954529094264672294496860934864424519386491456408615251057823684209861120741434670159618673936343232127524840096572869938406481577342691505214852241781904532730223280532007263456890157126325151281429988053858853115810915974956182248013/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-181906514405143036384357434995971625275836390798303598349017616251000415282024441569357952686816616444878672327665448828051994214624348737805868406889846662816154885625310561267277397135353478192043756460106331313083421328902239020972755544322708347048855909898995764083966273823919667161396109476550719848725/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-147945663340461763698212430143771286414026284146309945071685010721085537380641268203814890803383015075422455405339014135542776026293391412163500686456905034790428849048670266153134094858649998069511486106390629359568273414843847740088984032890568291491121209596476991217967574780912075401622245788540973317237/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "-109295650712632922954470152700014140962344687784228817505917409852933900860213282982253187319663670767937851495649957296830456277490544817826798947725684889752695688092754004821393186285277520453649669774004548684876352062161227459330029625465970767406457202300678613241928430071212855440266575276167464763807/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "-56200741848002868079111868432724886507129621548125121648642474266599250489673841691778046881437449293933434722648357280706913445930283045991236908716738562916199191451345481529063774448710946467551285759609323141571550416355308596877200595274065373565280076263027603986562578831336689401091825392816459762247/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304" + ], + [ + "15968822176892792285891476438139425317687583108455281192008770761103687215213981897594608046751009662616135817210933151016991807601573680585709456982599855455736137633949541869722566316681492518193528500018722529515726386747292338115274696063766393314538517893691137581991598848479112650484943606294759671/1404447761611184302913519680303925573139044514798677009948672509044786529730476274474284979081308875165000889686495260606709295068862629863225370551870891596701311667381761603721111090634735110308227210563164107569048052205800491261514946176100212790338675864723330454999587858894372783631526221325189251072", + "-266324790638046954468748086815326096854011998014910958879637384810491281671701735342579622902906841022217262017537242815542832447116697353634706329017518582629343845840130883918382746688279956080610789278337184153491906948023245930590272626869013417164765399270940382908317755754807962553226947387458433481969/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "1060865642031292630770255648031651464303955219241748845301061404301449150107131123877033982501236564870546734157170738071205142825981730629211934466958373310795930234883644313113012070731987912222503770737372313560840648279391481374684780737322726034313967342539259478356716096981485614792922808816297076935/1404447761611184302913519680303925573139044514798677009948672509044786529730476274474284979081308875165000889686495260606709295068862629863225370551870891596701311667381761603721111090634735110308227210563164107569048052205800491261514946176100212790338675864723330454999587858894372783631526221325189251072", + "-246799233700152837800565619104070457222176842192478672102595825359550055541867252492449227477274629665694532828700249246838030620913792598556947021011742874894999694125075108903854687975235844168506798118891370394456073402356817011957930168970746212902758217822556747842079095849448037149783703853881509351465/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "74864797941206513281047175374406371423373655545874336711328481273747977974984455616940936075339467433634151221026156653070150698647294564580345247390350645817572015177013890581338145235391049860293804890641833349803840457797326162410138640935908664989180260619163393823243511563841284652103776498758852275761/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216", + "158507016237416030279508951176317259509379692049347194102510424353036380843727700204504205980624447511489013333078714007658126019484831026660454241743943509290714726174111157436372813963025263036212831092360360315950519574485871493725846468575071813444421951074798721371147434849601216160281721594412331444679/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ], + [ + "126287595802823388378145790573347116516250877023657551588569070335106577368621778092749228800089231992059072999369812292461321688715048725080489109408634374024142218044000898630952519239661477382516567361587110636505950019813691734756152201601098996057298499115007197346303456331071237494888612444968034206643/89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608", + "-143526397691224128056251209454968080411106577138808675995376721394908697117978740021220231248704896684803444156609685788793425078524968774144075750535259582404256698559171991950020896681595928832179228331976729295065837037698098662420392076528307364731612360503267270299597486337931330781272500922478650324859/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216" + ] + ], + "beta": "1/512", + "factor_bits": 1024, + "working_bits": 768, + "target_bits": 128 + } +] diff --git a/research/dirty-cubic-precision/vendor/628/NOTICE.md b/research/dirty-cubic-precision/vendor/628/NOTICE.md new file mode 100644 index 0000000000..22fbeb8ef0 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/NOTICE.md @@ -0,0 +1,24 @@ +# Attribution and scope + +Ali Romman's PR621, exact head 520774462b19b29af41554b74def31f9d01e997e, +supplies the prime-power kernel circle bound. Its kernel attribution is +OpenAI's exact-DFT preprint at adc7f1241b42e322a6451854ab7e4b4c146bf78a +(`loc:newton`, `loc:fourier-factorization`) and classical q-Pochhammer/Newton +factorization, including Alexey Kuznetsov's cited q-calculus work. This +package does not claim to originate those constructions. + +Pan's approximate-factorization theorem is used in the form stated by +Mehlhorn, Sagraloff and Wang; Brent's work supplies fast elementary-function +evaluation. Causal/anticausal recursive filtering is standard, as illustrated +by the Briand-Davy source listed in SOURCE.json. Sources are cited for these +specific tools, not as proofs of this package's complete claim. + +The scan rounding analysis, explicit budget composition, interval and +factor certificates, routed reference execution, and packaging were +prepared with substantial OpenAI Codex assistance for chafreaky. The dense +matrix solver and algebraic coefficient crosschecks provide independent +computational paths, not human peer review or formal Lean verification. + +No new multiplication exponent, literature priority, maintainer acceptance, +physical tape execution, or production performance result is claimed. +The code and documents use the repository's Apache-2.0 license. diff --git a/research/dirty-cubic-precision/vendor/628/PROOF.md b/research/dirty-cubic-precision/vendor/628/PROOF.md new file mode 100644 index 0000000000..fb8fe7cb3b --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/PROOF.md @@ -0,0 +1,269 @@ +# Uniform preparation and rounded inversion of a neighboring cyclic kernel + +This note combines PR621's circle lower bound, standard approximate +factorization, and the local two-scan rounding lemma. It concerns a +neighboring cyclic shift with gauge 1 and clean input/output work arrays. +It is not a complete multiplication algorithm, reversible word, arbitrary +stride tape schedule, or new kappa result. The proof uses the cited +factorization theorem; the accompanying numerical nomination program does +not implement that theorem's worst-case algorithm. + +## Statement and model + +Let r>=3 be a prime power, k coprime to r, zeta=exp(2 pi i k/r), and + + P(z)=sum_(j=0)^(r-1) h_j z^j, + h_j=1/product_(s=1)^j(1-zeta^s). + +Let S be either neighboring cyclic shift on L>=1 entries. Given p>=1 +and an exactly supplied dyadic complex vector x with ||x||infinity<=1, +there is an algorithm producing y with + + ||y-P(S)^-1 x||infinity <= 2^-p. + +Coefficient preparation is independent of L. Both the required coefficient +bit lengths and the execution precision are O(p+r^4), including magnitude +bits. The array execution uses O(rL) rounded scalar operations and O(r) +sequential full-array passes. With ordinary near-linear integer arithmetic, +including a conservative exact coefficient-product verification in setup, +the bit-operation bound is + + soft-O((Lr+r^3)(p+r^4)). + +Here soft-O suppresses logarithms in the displayed parameters. Input +fractional precision is assumed at most the execution budget below; +longer exact inputs require their reading/rounding cost and a separately +charged input-error budget. Clean arrays and standard arithmetic scratch +are allowed. The scan layout is sequential for S=Z or Z^-1; this statement +does not assert that an arbitrary modular-stride permutation is free. +The setup bound uses the bit-complexity model of the cited factorization +result. A concrete fixed-tape implementation of its setup is not supplied. + +## Explicit budgets + +Put n=r-1, D=phi(r), ell=ceil(log2 r), and + + d=1+2 ell+r n D, + g=d+ell+2r+2, beta=2^-g, + a=ell+n g, Abar=2^a, + e=max(d+1, a+1, p+2a+3), epsilon=2^-e, + b=max(n ell, e+r+3), + w=max(2g+ceil(log2(14n)), + p+(n+2)g+ceil(log2(28n(r+1)))), u=2^-w. + +All these are computable integer budgets. Their sizes satisfy +d,g=O(r^3) and a,e,b,w=O(p+r^4). No array length occurs in them. +The executable budget checker verifies the integer inequalities used below +for a range of radices and precisions; the algebra proves them generally. + +## Approximate factorization and preparation + +Define f=rP. Its leading coefficient is 1 and its coefficients are + + f_j=product_(s=j+1)^(r-1)(1-zeta^s). + +Thus ||f||_1<=H=2^r-1, and Cauchy's bound places all roots inside +|z|<=1+H<2^(r+1). Its logarithmic root bound is O(r). + +Pan's approximate-factorization theorem, in Theorem 2 and Corollary 1 of +Mehlhorn, Sagraloff and Wang [1], provides dyadics rho_1,...,rho_n with +||f-product_j(z-rho_j)||_1<=2^-b ||f||_1. Its factorization cost is +soft-O(n b+n^2 Gamma), with coefficient-oracle precision O(b+n Gamma), +where Gamma bounds the logarithmic root magnitudes. Repeated roots do not +require a distinct-root count for this factorization step. + +Let Q=(1/r) product_j(z-rho_j). Our choice b>=e+r+3 gives + + ||P-Q||_1 < epsilon/8. + +Only this coefficient error is needed. We do not isolate the true roots, +match approximate roots to true roots, or require simple roots. + +The coefficient oracle is also charged. Compute zeta to the requested +precision, its first r powers, and the backward products defining f_j. +There are O(r) complex operations. Products have magnitude at most 2^r; +guarding by O(r+log r) bits bounds coefficient errors. Fast elementary +function evaluation [2] supplies the required pi, sine and cosine values +with near-linear precision cost up to logarithms. Hence the oracle fits +soft-O(r(p+r^4)). This is an algorithmic preparation argument, not a +complexity claim about the Fraction/Decimal reference scripts. + +An independent certificate can expand the dyadic-root product exactly and +compare it with rigorous coefficient enclosures of total componentwise +error at most epsilon/8. Replacing complex moduli by the sum of absolute +real and imaginary parts costs at most a factor of 2, so the resulting +upper bound is still below epsilon. Exact expansion +of n B-bit roots has O(nB)-bit coefficients; a simple iterative expansion +costs soft-O(n^3 B) bit operations, B=O(p+r^4). This conservative setup +cost is included in the theorem. Faster expansion is unnecessary here. + +## Stability without individual root certification + +PR621 gives |P(z)|>=delta on |z|=1, where + + delta=1/[2rn H^(nD-1)] >= 2^-d. + +The coefficient certificate and e>=d+1 imply |Q(z)|>=delta/2 on the +unit circle. Also ||Q||_1<=H/r+epsilon<=H/r+1<=2^r. + +For any root rho of Q at radial distance t=||rho|-1|<1/2, integrate Q' +along the radial segment to the unit circle. On that segment |z|<2, so + + delta/2 <= t n 2^r 2^(n-1). + +Roots farther than 1/2 already have a fixed gap. Therefore every root of +Q lies at radial distance at least + + eta=min(1/2, delta/[2n 2^r 2^(n-1)]). + +Our g ensures beta<=eta/2. If |rho|>1, b_rho=1/rho has modulus at most +1-beta. If |rho|<1, b_rho=rho has modulus at most 1-beta. These comparisons +can be made exactly on the dyadic rho. Inverting an outer rho produces +an exact rational complex coefficient with O(p+r^4) numerator and +denominator bits; it need not be rounded to a dyadic. + +For each factor, + + (S-rho I)^-1 = -rho^-1 (I-rho^-1 S)^-1 if |rho|>1, + (S-rho I)^-1 = (I-rho S^-1)^-1 S^-1 if |rho|<1. + +Each stable inverse has norm at most beta^-1. Outer scalar factors have +modulus less than 1, while the inner shift has norm 1. Apply the scalar r +to the input first. Exact stage-j values have norm at most r beta^-j. +In particular, ||Q(S)^-1||<=r beta^-n<=Abar, uniformly in L. + +Since epsilon Abar<=1/2, a Neumann perturbation bound gives + + ||P(S)^-1-Q(S)^-1|| + <= Abar^2 epsilon/(1-Abar epsilon) + <= 2 Abar^2 epsilon <= 2^(-p-2). + +This is an operator bound for arbitrary input vectors, not just samples +or a particular Fourier mode. + +## Rounded execution + +Use the two-scan periodic first-order procedure proved in +SCAN-PROOF.md, with grid u and exact rational coefficients. +An inner factor scans in the opposite direction and includes the unit +cyclic shift. An outer factor includes a final rounded multiplication by +-rho^-1. The per-factor error is bounded by + + 7(B+1)u/beta^3 + +for input norm B. The constant 7 includes the outer scalar multiplication; +the original scan constant is 6. Copying and shifting dyadic entries is +exact. Multiplying the original dyadic input by integer r is exact. + +If E_j is the error after j factors, then E_0=0 and + + E_j <= E_(j-1)/beta + +7(r beta^(-(j-1))+E_(j-1)+1)u/beta^3. + +Set T_j=beta^j E_j. Since beta<=1 and j>=1, + + T_j <= (1+7u/beta^2)T_(j-1)+7(r+1)u/beta^2. + +The budget u<=beta^2/(14n) implies +(1+7u/beta^2)^n<=exp(1/2)<2. Consequently + + E_n <= 14n(r+1)u beta^(-(n+2)) <= 2^(-p-1). + +Adding the factorization perturbation yields at most 3*2^(-p-2)<2^-p. +All scan intermediates have O(p+r^4) bits including integer magnitude. +In particular, b_rho^L is accumulated with rounding at every step, so its +representation does not grow with L. The closure denominator stays at +least beta/2, by the single-factor proof. + +Exact rational multiply/add followed by dyadic rounding and the one +closure division use integers of O(p+r^4) bits. Standard fast integer +multiplication and division give the stated scalar bit cost. A bounded +number of sequential passes suffices per factor, including rewinds and +the unit cyclic rotation. Two alternating clean data arrays suffice for +the streaming values. A conservative space allowance is +soft-O((L+r^2)(p+r^4)) bits, including setup and arithmetic scratch. + +## Paid unit phases + +The same factor certificate works for U=tau S when tau is an exactly +supplied rational complex number of modulus 1. In an outer factor, the +scan coefficient becomes tau/rho and the final scalar remains -1/rho. +In an inner factor, it becomes rho/tau; after the backward scan and unit +shift, multiply by tau^-1. Both new coefficients retain the same margin +beta. The inner scalar has modulus 1, so the same constant 7 covers its +rounded multiplication. If tau has T representation bits, scalar +arithmetic costs use O(p+r^4+T)-bit operands; T is not silently free. + +More generally suppose a unit tau has a charged approximation oracle. +Choose a rational unit sigma with |tau-sigma|<=nu, where + + nu <= epsilon/(n 2^r). + +Then ||P(tau S)-Q(sigma S)||<=epsilon+n||Q||_1 nu<=2 epsilon. +Because e>=p+2a+3, we still have 2 epsilon Abar<=1/2 and + + ||P(tau S)^-1-Q(sigma S)^-1|| + <=4 Abar^2 epsilon<=2^(-p-1). + +The same rounded execution budget contributes at most 2^(-p-1), giving +the original target 2^-p. The phase needs O(p+r^4) approximation bits, +in addition to reading whatever representation defines it. + +Here is a constructive way to obtain sigma with exact unit modulus. +Choose C in {1,-1,i,-i} so v=C^-1 tau has Re(v)>=1/2. A coarse enclosure +suffices to choose such a chart: one coordinate of a unit vector has +absolute value at least 1/sqrt(2). Put t=Im(v)/(1+Re(v)). Its denominator +is at least 3/2. Approximate t by a dyadic t0 with |t-t0|<=nu/2 and set + + sigma=C (1-t0^2+2i t0)/(1+t0^2). + +This is exactly rational and unit. The stereographic map's derivative +has modulus 2/(1+t^2)<=2, proving |tau-sigma|<=nu. Obtaining t0 costs +the oracle request plus scalar arithmetic at the stated precision. +For a phase exp(2 pi i h/m), [2] supplies that oracle after the cost of +reading/reducing the integer phase description; a very long h or m is +an extra input cost and is not covered by a bound that omits its length. + +This section treats a single constant unit phase. WEIGHTED-PROOF.md +extends the same bounds to a unit-weighted neighboring shift with an +independent phase at each position. The full transform's collection of +phases still needs its composition and preparation accounting. + +## Scope and finite evidence + +For r bounded by a fixed power of log p, the cost is quasi-linear in p +up to polylogarithmic factors and polynomial dependence on that radix. +There is no extra factor proportional to p in the number of full-array +passes. This removes the repeated-Neumann-pass obstruction for this +neighboring, clean-array inverse primitive. + +The mixed-factor reference certificate at CERTIFICATE-PROOF.md checks +ten kernel/embedding cases through radix 16, including inner roots, exact +rational unit phases, and a certified rational approximation of +exp(2 pi i/7). It uses exact coefficient enclosures, exact factor products, +and an explicit rounding budget. These finite certificates do not implement Pan's +worst-case factorizer or prove its complexity. The uniform argument above +depends on [1], [2], PR621, and the proved scan lemma. + +Remaining work for a multiplication application includes the complete +collection of phase gauges and their paid preparation, the actual strides/layout of every kernel, +composition across the complete transform and recursion, its total +precision guard, input/output normalization, and restoration of dirty +scratch where required. None is inferred from this standalone theorem. + +## Sources and attribution + +[1] K. Mehlhorn, M. Sagraloff, P. Wang, *From Approximate Factorization to +Root Isolation with Application to Cylindrical Algebraic Decomposition*, +Theorem 2 and Corollary 1 (crediting V. Pan), +https://arxiv.org/pdf/1301.4870, PDF page 8. + +[2] R. P. Brent, *Fast multiple-precision evaluation of elementary +functions*, J. ACM 23 (1976), 242-251, +https://maths-people.anu.edu.au/~brent/pub/pub034.html. + +PR621 by aliromman, head 520774462b19b29af41554b74def31f9d01e997e, +supplies the kernel and circle bound. Causal/anticausal filtering and +approximate factorization are standard methods. The explicit budget +composition and reference certificates here were prepared with OpenAI +Codex for chafreaky. No literature-priority claim is made. diff --git a/research/dirty-cubic-precision/vendor/628/SOURCE.json b/research/dirty-cubic-precision/vendor/628/SOURCE.json new file mode 100644 index 0000000000..59bddaea4d --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/SOURCE.json @@ -0,0 +1,18 @@ +{ + "upstream_kernel_pr": "https://github.com/CrocSwap/integer-mult-bounds/pull/621", + "upstream_kernel_head": "520774462b19b29af41554b74def31f9d01e997e", + "upstream_proof_url": "https://github.com/CrocSwap/integer-mult-bounds/blob/520774462b19b29af41554b74def31f9d01e997e/research/prime-power-cyclic-inverse/PROOF.md", + "upstream_proof_sha256": "2b8056c88e66f692f407450fff0414d41bcd09db8597be22e274a6c3dc20eb9e", + "factorization_primary": "https://arxiv.org/pdf/1301.4870", + "factorization_result": "Theorem 2 and Corollary 1, PDF page 8, crediting Pan", + "elementary_functions_primary": "https://maths-people.anu.edu.au/~brent/pub/pub034.html", + "recursive_filter_primary": "https://www.ipol.im/pub/art/2019/257/article_lr.pdf", + "local_provenance": { + "stable-cyclic-scan": "bc36a9d44893f9cd25225b64b08f1f3e938a248f39c16fa50d71e84eb0a1b0ef", + "stable-cyclic-mixed": "df063d9ec36d95a65119af4518137f78935ac6fac0e88de11e6a7212492afe4a", + "uniform-neighbor-cyclic-inverse": "1f8fc021a466d03d62ccf708ef6cc83d2b38b340b50893fbcceb39c704922a71" + }, + "base_commit": "ed49217ad6244f1d3bfe4588f122fa861849739c", + "reference_runtime": "Python standard library; no external packages or historical workspace files required.", + "unimplemented": "Pan worst-case factorizer, fast elementary-function implementation, literal tape simulator, dirty-scratch restoration, complete multiplication reduction." +} diff --git a/research/dirty-cubic-precision/vendor/628/check.py b/research/dirty-cubic-precision/vendor/628/check.py new file mode 100644 index 0000000000..5ef6dd67b6 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/check.py @@ -0,0 +1,178 @@ +"""Rational proof of mixed inside/outside cyclic factor inversion.""" +from pathlib import Path +from fractions import Fraction as F +import argparse,importlib.util,json,math,sys +sys.set_int_max_str_digits(100000) +P=Path(__file__).resolve().parent +def module(name): + s=importlib.util.spec_from_file_location(name,P/(name+'.py'));m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m +c=module('scan');ik=module('interval_kernel') + +def prime_power(r): + if type(r)!=int or r<3:return False + p=next((d for d in range(2,math.isqrt(r)+1) if r%d==0),r) + while r%p==0:r//=p + return r==1 + +def certify(data): + r,k=data['radix'],data['embedding'] + c.need(prime_power(r) and type(k)==int and 00 and type(target)==int and target>0,'precision budget') + c.need(type(fb)==int and 0=F(1,2),'gauge chart') + parameters=[im/(1+re) for im in v[1] for re in v[0]] + mid=(min(parameters)+max(parameters))/2 + t=c.rounded((mid,F(0)),1024)[0] + sigma=c.mul(center,((1-t*t)/(1+t*t),2*t/(1+t*t))) + c.need(c.norm2(sigma)==1,'exact rational unit phase') + error=sum(max(abs(endpoint-coordinate) for endpoint in iv) for iv,coordinate in zip(box,sigma)) + c.need(error0) + for name in ('unit_root','missing_root','wrong_embedding','low_precision','bad_margin'): + row=json.loads(json.dumps(mixed)) + if name=='unit_root':row['roots'][0]=['1','0'] + if name=='missing_root':row['roots'].pop() + if name=='wrong_embedding':row['embedding']=row['radix'] + if name=='low_precision':row['working_bits']=8 + if name=='bad_margin':row['beta']='1' + try:certify(row) + except ValueError as error:controls.append(dict(name=name,rejected=str(error))) + else:raise ValueError('bad control accepted '+name) + state=certify(mixed);x=[c.ONE,c.ZERO,(F(1,2),F(1,4))] + bad=apply(x,state,1,omit_inner_shift=True) + try:residual_check(x,bad,state,1) + except ValueError as error:controls.append(dict(name='omitted_inner_shift',rejected=str(error))) + else:raise ValueError('inner-shift mutation accepted') + try:apply(x,state,1,(F(1),F(1))) + except ValueError as error:controls.append(dict(name='nonunit_gauge',rejected=str(error))) + else:raise ValueError('nonunit gauge accepted') + args.out.write_text(json.dumps(dict(status='passed',kernel_crosschecks=crosschecks,irrational_gauge=gauge_record,certificates=certificates,cases=cases,controls=controls),indent=2)+'\n') + print(json.dumps(dict(status='passed',certificates=len(certificates),cases=len(cases),dense_cases=sum(row['dense_comparison'] for row in cases),controls=len(controls)))) + +if __name__=='__main__':main() diff --git a/research/dirty-cubic-precision/vendor/628/check_budgets.py b/research/dirty-cubic-precision/vendor/628/check_budgets.py new file mode 100644 index 0000000000..ff21b6e190 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/check_budgets.py @@ -0,0 +1,59 @@ +"""Exact integer checks of the explicit uniform precision budgets.""" +from pathlib import Path +import argparse,json,math + +def need(ok,msg): + if not ok:raise ValueError(msg) +def ceil_log2(n): + need(type(n)==int and n>0,'positive integer log argument') + return (n-1).bit_length() +def prime_power_data(r): + need(type(r)==int and r>=3,'radix') + prime=next((d for d in range(2,math.isqrt(r)+1) if r%d==0),r) + q=r + while q%prime==0:q//=prime + need(q==1,'prime power') + return r-r//prime +def budgets(r,p): + D=prime_power_data(r);need(type(p)==int and p>=1,'target bits') + n=r-1;ell=ceil_log2(r);d=1+2*ell+r*n*D;g=d+ell+2*r+2;a=ell+n*g + e=max(d+1,a+1,p+2*a+3);b=max(n*ell,e+r+3) + w=max(2*g+ceil_log2(14*n),p+(n+2)*g+ceil_log2(28*n*(r+1))) + return dict(radix=r,target_bits=p,n=n,D=D,ell=ell,d=d,g=g,a=a,e=e,b=b,w=w) +def check(x): + r,p,n,D,ell,d,g,a,e,b,w=(x[k] for k in ('radix','target_bits','n','D','ell','d','g','a','e','b','w')) + need(D==prime_power_data(r) and n==r-1 and ell==ceil_log2(r),'kernel parameters') + need(d>=1+2*ell+r*(n*D-1),'delta bound exponent') + need(g>=d+ell+2*r and g>=2,'root gap exponent') + need(a>=ell+n*g,'inverse prefix bound') + need(e>=d+1 and e>=a+1 and e>=p+2*a+3,'factor perturbation budget') + need(b>=n*ell and b>=e+r+3,'approximate factorization precision') + need(w-2*g>=ceil_log2(14*n),'rounded recurrence growth budget') + gap=w-p-(n+2)*g-1 + need(gap>=0 and 14*n*(r+1)<=1<0,'distinct equally sized arrays') + c.need(d in(-1,1)and sign in(-1,1),'orientation and sign') + c.need(0=(beta/2)**2,'closure denominator') + seed=c.rounded(c.div(x[previous],denominator),bits) + power=c.ONE + for i in ordered(n,d): + power=c.rounded(c.mul(coefficient(i),power),bits) + value=c.add(x[i],c.rounded(c.mul(power,seed),bits)) + value=c.rounded(c.mul(multiplier(i),value),bits) + j=destination(i);y[j]=c.add(y[j],scaled(value,sign)) + # The scalar seed and coefficient scratch may be cleared by ordinary classical + # arithmetic. The dirty data itself is restored by exact inverse integer lifts. + first=0 if d==1 else n-1 + for i in ordered(n,-d): + if i!=first:x[i]=c.sub(x[i],c.rounded(c.mul(coefficient(i),x[i-d]),bits)) + if stats is not None:stats['leaves']+=1;stats['scalar_steps']+=3*n + +def leaf(x,y,factor,phases,beta,bits,d,sign,stats): + inside,b,scale=factor;n=len(x) + if inside: + lift(x,y,lambda i:c.mul(b,conj(phases[(i+d)%n])),beta,bits,-d,sign, + lambda i:(i-d)%n,lambda i:scaled(conj(phases[i]),scale),stats) + else: + lift(x,y,lambda i:c.mul(b,phases[i]),beta,bits,d,sign, + multiplier=lambda i:scaled(c.neg(b),scale),stats=stats) + +def compose(x,y,factors,scratch,phases,beta,bits,d,sign=1,stats=None): + """Balanced commutator; negative call is the exact inverse instruction word.""" + c.need(sign in(-1,1)and d in(-1,1),'orientation and sign') + c.need(factors and len(scratch)>=(len(factors)-1).bit_length(),'dirty depth') + arrays=[x,y]+scratch;c.need(len({id(v)for v in arrays})==len(arrays),'all ancestor arrays distinct') + c.need(len(x)>0 and all(len(v)==len(x)for v in arrays)and len(phases)==len(x),'array lengths') + c.need(all(c.norm2(t)==1 for t in phases),'unit phases') + if len(factors)==1:return leaf(x,y,factors[0],phases,beta,bits,d,sign,stats) + mid=len(factors)//2;B,A=factors[:mid],factors[mid:];z=scratch[0];rest=scratch[1:] + operations=[(x,z,B,1),(z,y,A,1),(x,z,B,-1),(z,y,A,-1)] + if sign==-1:operations=[(src,dst,fs,-sgn)for src,dst,fs,sgn in reversed(operations)] + for src,dst,fs,sgn in operations:compose(src,dst,fs,rest,phases,beta,bits,d,sgn,stats) + +def exact_operator(x,factors,phases,d): + # Dense rational oracle constructed independently from the lifting recurrence. + n=len(x);out=x[:] + for inside,b,scale in factors: + a=[[c.ZERO for _ in range(n)]for _ in range(n)] + if inside: + for i in range(n):a[i][i]=c.neg(b);a[i][(i-d)%n]=c.add(a[i][(i-d)%n],phases[i]) + else: + rho=c.div(c.ONE,b) + for i in range(n):a[i][i]=c.neg(rho);a[i][(i-d)%n]=c.add(a[i][(i-d)%n],phases[i]) + out=[scaled(z,scale)for z in w.solve(a,out)] + return out + +def certificate(n,beta,r,D,bits): + N=4*n*n;a=13*(r+1)/beta**3;G=2+F(r)/beta;u=F(1,1<4:raise ValueError('angle bound') + itheta=(point(0),theta) + total=term=ONE + # Taylor remainder for complex exp: <=exp(4)*4^(N+1)/(N+1)! <128*... + n=0 + while True: + n+=1;term=cmul(term,itheta);term=(scale(term[0],F(1,n)),scale(term[1],F(1,n)));total=cadd(total,term) + remainder=F(128*4**(n+1),math.factorial(n+1)) + if remainder 0, 'empty cycle') + need(direction in (-1, 1), 'invalid direction') + need(0 < beta <= 1, 'invalid margin') + need(norm2(b) <= (1-beta)**2, 'uncertified stable factor') + u = F(1, 1 << bits) + need(u <= beta*beta/2, 'precision too low for closure') + order = list(range(len(x))) if direction == 1 else list(reversed(range(len(x)))) + z, power = ZERO, ONE + for i in order: + z = rounded(add(x[i], mul(b, z)), bits) + power = rounded(mul(b, power), bits) + den = sub(ONE, power) + need(norm2(den) >= (beta/2)**2, 'closure lower bound failed') + seed = rounded(div(z, den), bits) + y, previous = [ZERO]*len(x), seed + for i in order: + previous = rounded(add(x[i], mul(b, previous)), bits) + y[i] = previous + return y + +def dense_solve(x, b, direction): + """Independent exact Gaussian elimination on the cyclic matrix.""" + n = len(x) + a = [[ZERO for _ in range(n)] + [x[i]] for i in range(n)] + for i in range(n): + a[i][i] = add(a[i][i], ONE) + j = (i-direction) % n + a[i][j] = sub(a[i][j], b) + for k in range(n): + pivot = next(i for i in range(k, n) if a[i][k] != ZERO) + a[k], a[pivot] = a[pivot], a[k] + p = a[k][k] + a[k] = [div(v, p) for v in a[k]] + for i in range(n): + if i == k: continue + p = a[i][k] + a[i] = [sub(v, mul(p, w)) for v, w in zip(a[i], a[k])] + return [row[-1] for row in a] + +def residual_bound(x, y, b, beta, direction, bound): + # Neumann inverse norm <= 1/beta converts residual to forward error. + for i in range(len(x)): + residual = sub(sub(y[i], mul(b, y[(i-direction) % len(x)])), x[i]) + need(norm2(residual) <= (beta*bound)**2, 'residual error bound failed') + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--out', type=Path, required=True) + args = parser.parse_args() + cases = [] + for beta in (F(1, 2), F(1, 16), F(1, 4096)): + for unit in (ONE, (F(-1), F(0)), (F(3, 5), F(4, 5))): + b = mul((1-beta, F(0)), unit) + for n in (1, 2, 3, 8, 17, 64): + x = [(F((i*7)%13-6, 8), F((i*11)%17-8, 16)) for i in range(n)] + B = max(abs(v[0])+abs(v[1]) for v in x) + for direction in (-1, 1): + bits = 64 + bound = 6*(B+1)*F(1, 1 << bits)/beta**3 + y = scan(x, b, beta, bits, direction) + residual_bound(x, y, b, beta, direction, bound) + if n <= 8: + exact = dense_solve(x, b, direction) + need(all(norm2(sub(v,w)) <= bound**2 for v,w in zip(y,exact)), 'dense comparison failed') + cases.append(dict(beta=str(beta), b=[str(v) for v in b], length=n, + direction=direction, bits=bits, forward_error_bound=str(bound), + dense_crosscheck=n<=8, residual_check=True)) + controls = [] + for name, x, b, beta, bits, direction in ( + ('unstable', [ONE], ONE, F(1,2), 64, 1), + ('underprecision', [ONE], (F(15,16),F(0)), F(1,16), 3, 1), + ('empty', [], ZERO, F(1,2), 64, 1), + ('bad_direction', [ONE], ZERO, F(1,2), 64, 0), + ): + try: scan(x,b,beta,bits,direction) + except ValueError as error: controls.append(dict(name=name,rejected=str(error))) + else: raise ValueError('negative control accepted: '+name) + x = [ONE, ZERO, ONE] + b, beta = (F(1,2),F(0)), F(1,2) + y = scan(x,b,beta,64,1) + y[0] = add(y[0],ONE) + try: residual_bound(x,y,b,beta,1,F(1,1<<40)) + except ValueError as error: controls.append(dict(name='corrupt_output',rejected=str(error))) + else: raise ValueError('corrupt output accepted') + args.out.write_text(json.dumps(dict(status='passed',cases=cases,controls=controls),indent=2)+'\n') + print(json.dumps(dict(status='passed',cases=len(cases),dense_cases=sum(c['dense_crosscheck'] for c in cases),controls=len(controls)))) + +if __name__ == '__main__': main() diff --git a/research/dirty-cubic-precision/vendor/628/weighted.py b/research/dirty-cubic-precision/vendor/628/weighted.py new file mode 100644 index 0000000000..da90ee6e83 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/628/weighted.py @@ -0,0 +1,118 @@ +"""Exact certificates for varying unit phases on a cyclic neighbor shift.""" +from pathlib import Path +from fractions import Fraction as F +import argparse, importlib.util, json +P=Path(__file__).resolve().parent +s=importlib.util.spec_from_file_location('kernel',P/'check.py');k=importlib.util.module_from_spec(s);s.loader.exec_module(k) +c=k.c + +def scan(x,bs,beta,bits,direction): + c.need(len(x)>0 and len(bs)==len(x),'coefficient length') + c.need(direction in (-1,1),'direction') + c.need(0=(beta/2)**2,'closure denominator') + previous=c.rounded(c.div(z,den),bits);y=[c.ZERO]*len(x) + for i in order: + previous=c.rounded(c.add(x[i],c.mul(bs[i],previous)),bits);y[i]=previous + return y + +def apply(x,state,phases,direction,wrong_phase=False): + n=len(x);c.need(n>0 and len(phases)==n,'phase length') + c.need(all(c.norm2(t)==1 for t in phases),'unit phases') + y=[(v[0]*state['radix'],v[1]*state['radix'])for v in x] + for inside,b in state['factors']: + if inside: + inv=[(phases[(i+direction)%n][0],-phases[(i+direction)%n][1])for i in range(n)] + if wrong_phase:inv=[(v[0],-v[1])for v in phases] + bs=[c.mul(b,t)for t in inv] + y=scan(y,bs,state['beta'],state['bits'],-direction) + y=[c.rounded(c.mul(inv[i],y[(i+direction)%n]),state['bits'])for i in range(n)] + else: + y=scan(y,[c.mul(b,t)for t in phases],state['beta'],state['bits'],direction) + y=[c.rounded(c.neg(c.mul(b,v)),state['bits'])for v in y] + return y + +def matrix(q,phases,direction): + # Independently expand W^j entry-by-entry, including wrap-around phases. + n=len(phases);a=[[c.ZERO for _ in range(n)]for _ in range(n)] + for i in range(n): + weight=c.ONE + for j,v in enumerate(q): + col=(i-direction*j)%n;a[i][col]=c.add(a[i][col],c.mul(v,weight)) + weight=c.mul(weight,phases[col]) + return a + +def residual(x,y,a,bound): + for i,row in enumerate(a): + v=c.ZERO + for z,t in zip(row,y):v=c.add(v,c.mul(z,t)) + c.need(c.norm2(c.sub(v,x[i]))<=bound**2,'expanded weighted residual') + +def solve(a,x): + a=[row[:]+[v]for row,v in zip(a,x)];n=len(a) + for j in range(n): + i=next(i for i in range(j,n)if a[i][j]!=c.ZERO);a[i],a[j]=a[j],a[i] + z=a[j][j];a[j]=[c.div(v,z)for v in a[j]] + for i in range(n): + if i!=j: + z=a[i][j];a[i]=[c.sub(v,c.mul(z,t))for v,t in zip(a[i],a[j])] + return [row[-1]for row in a] + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--out',type=Path,required=True);a=ap.parse_args() + units=[c.ONE,(F(0),F(1)),(F(3,5),F(4,5)),(F(-5,13),F(12,13))] + cases=[];certs=[];generic=[];controls=[] + for beta in (F(1,2),F(1,16),F(1,4096)): + for n in (1,2,3,8,17,64): + bs=[c.mul((1-beta,F(0)),units[(i*i+3*i+1)%4])for i in range(n)] + # Alternate magnitudes as well as phases. + bs=[(z[0]/(1+i%2),z[1]/(1+i%2))for i,z in enumerate(bs)] + x=[(F(i%5-2,4),F(i%7-3,8))for i in range(n)] + B=max(abs(z[0])+abs(z[1])for z in x);bound=6*(B+1)*F(1,1<<64)/beta**3 + for d in (-1,1): + y=scan(x,bs,beta,64,d) + m=[[c.ZERO for _ in range(n)]for _ in range(n)] + for i in range(n):m[i][i]=c.ONE;m[i][(i-d)%n]=c.sub(m[i][(i-d)%n],bs[i]) + residual(x,y,m,beta*bound) + if n<=8:c.need(all(c.norm2(c.sub(v,t))<=bound**2 for v,t in zip(y,solve(m,x))),'generic dense') + generic.append(dict(beta=str(beta),length=n,direction=d,dense=n<=8)) + sigma,nu,phase_cert=k.irrational_gauge() + for row in json.loads((P/'FACTORS.json').read_text()): + if row['radix'] not in (4,9,16):continue + st=k.certify(row);A=F(st['certificate']['inverse_norm_bound']) + eps=F(st['certificate']['coefficient_error_bound'])+sum(j*(abs(v[0])+abs(v[1]))for j,v in enumerate(st['q']))*nu + c.need(A*eps<1 and A*A*eps/(1-A*eps)+st['budgets'][-1]<=F(1,1<=3, the PR628 neighboring +cyclic scan needs working precision + + max(p,w) + O(r^3 + log(D+1)), + +including integer magnitude bits, to approximate the inverse to absolute +error 2^-p on a source of norm <=D initially on the 2^-w grid. The same +precision suffices for coarse-grid in-place source recovery. The previous +uniform scan composition charged O(r^4) because it propagated every local +error through a product of individual reciprocal margins. Here every +partial inverse is bounded by the full inverse and complementary factors. + +Array execution still costs O(rL) rounded scalar operations. With the same +charged approximate-factorization and coefficient-verification algorithms, +the bit cost for a neighboring cyclic layout is + + soft-O((Lr+r^3)(max(p,w)+r^3+log(D+1))). + +This is a standard-arithmetic, supplied-layout theorem. The worst-case +factorization and fast arithmetic are inherited algorithms, not implemented +by the Fraction reference. The restored-source version needs owned widened +source words whose low working bits are initially zero; those bits are +charged. No arbitrary dirty-bit, Clifford, common-label, complete-transform +or multiplication-exponent claim follows. +Phase-oracle costs and the cost of reading a longer phase description are +additional to the displayed bit bound. + +## Full inverse controls every partial inverse + +Let U be an invertible isometry in the maximum norm: ||U^k||=1 for every +integer k. A unit-weighted permutation, including a weighted cyclic shift, +has this property. Let + + f(z)=product_(j=1)^n (z-rho_j) = s Q(z), + M >= sum_j |Q_j|, ||Q(U)^-1|| <= A. + +Assume Q(U) is invertible. All factors are polynomials in the **same U**. +The assertion below does not apply to different noncommuting shifts. + +For a monic polynomial f define its Mahler measure + + M(f)=product_j max(1,|rho_j|). + +For completeness, the elementary circle identity +mean_t log|exp(it)-rho| = log max(1,|rho|) follows by integrating the +power series of log(1-z) when |z|<1 and factoring out rho when |rho|>1. +There are no unit-circle roots in this application. Summing the identities, +then applying concavity of log and Parseval, gives + + log M(f) = mean log|f(exp(it))| + <= (1/2) log(mean |f(exp(it))|^2) + = (1/2) log(sum_j |f_j|^2). + +Thus M(f)<=||f||_2<=||f||_1<=sM. For any subset J of the root occurrences +(multiplicities included), the complementary factor has coefficient norm + + ||product_(j notin J)(z-rho_j)||_1 + <= product_(j notin J)(1+|rho_j|) + <= 2^n M(f) <= 2^n sM. + +As the factors commute, + + product_(j in J)(U-rho_j I)^-1 + = product_(j notin J)(U-rho_j I) Q(U)^-1 / s. + +Every such inverse, including every prefix and every contiguous suffix, +therefore has norm <= B=max(1,2^n M A). Importantly, log B depends on the +full inverse bound, not n times the worst individual reciprocal margin. + +For later source restoration, let K_j=1+|Re rho_j|+|Im rho_j|. Then +K_j<=3 max(1,|rho_j|), so every forward subproduct has norm bounded by +its product of K_j, which is <=F=3^n sM. This also bounds amplification of +the rounding errors introduced during forward restoration. + +## Rounded execution without repeated reciprocal-margin multiplication + +Suppose every factor is implemented by PR628's stable scan with margin +beta, and u=2^-W<=beta^2/2. Including the final outer scalar or inner unit +shift, its local error for an input of norm <=X is at most + + a (X+1)u, a=7 beta^-3. + +Begin with s x and apply all n inverse factors. The exact prefix norm is +<=sBD. Let E_j be the computed prefix error, E=max_(0<=j<=n) E_j, and +delta_j the local error at stage j. Then + + |delta_j| <= a(sBD+E+1)u. + +The error at any prefix is the sum of earlier delta_j propagated through +contiguous inverse subproducts. Each propagation has norm <=B, hence + + E <= nBa(sBD+E+1)u. + +For t=nBa u<1 this implies + + E <= t(sBD+1)/(1-t). (1) + +This rearrangement is not an inductive assumption that the error is small: +all finite computed prefixes exist by the stable closure condition, and +their maximum obeys the displayed inequality. The strict contraction +condition then bounds it. The verifier compares every prefix with an +independent exact dense oracle in its small-cycle cases. + +## Recovering a coarse-grid source + +The cyclic inverse's first pass computes the boundary seed read-only. Its +second pass reads each original source entry before overwriting that slot. +An inner factor's unit shift is performed in place with one saved boundary +entry; an outer factor needs a scalar pass. Thus no full-length intermediate +array is required for evaluation on a neighboring cyclic layout. + +After adding the computed inverse to a distinct working-grid target, +apply the forward factors in reverse order. Each forward pass saves the +original cyclic predecessor before overwriting the current entry. It has +error at most u per output entry. Divide by s and round at W bits. Relative +to the original source, the resulting error is at most + + R <= F E/s + nF u/s + u. (2) + +Alternatively, the finite checker uses the sharper exact recurrence +R=E, then R=K_j R+u for j=n,...,1, then R=R/s+u. If R<2^(-w-1), rounding +each component to the original grid recovers the source exactly. The target +increment is independent of its initial value. The low W-w source bits +are explicit reserved zeros; their capacity is 2L(W-w) bits. Integer guards, +target widening and arithmetic workspace are also charged. + +For a fixed coarse-grid external shear, round the computed increment to +the original grid before its exact addition to the target. The resulting +function f(x) approximates Q(U)^-1 x, depends only on x, and gives the exact +grid bijection (x,y)->(x,y+f(x)). Subtracting the identical f(x) is its inverse. +All arrays then stay on the same coarse grid between calls. The separate +composition proof gives a fixed (w,W) budget for an entire prescribed word; +it does not require new low bits at every stage. + +## Explicit prime-power budgets + +Let r>=3 be a prime power, n=r-1, Dfield=phi(r), H=2^r-1 and +ell=ceil(log2 r), c=ceil(log2 n). To avoid overloading D, write the source +bound as D<=2^m with m>=0. PR621 supplies + + delta = 1/(2rn H^(n Dfield-1)), + |P(z)|>=delta on |z|=1, + ||P(U)^-1|| <= delta^-1 + 2nH/(r delta^2). + +Its absolutely summable Laurent-series argument applies to the isometry U +above, including varying unit phases. No phase table is constructed for +this norm argument. Put + + d=1+2ell+r n Dfield, delta>=2^-d, + a0=2d+r+2, ||P(U)^-1||<=2^a0, + g=d+ell+2r+2, beta=2^-g, + h=a0+2r, + e=max(d+1,a0+1,p+2a0+m+3), epsilon=2^-e, + b=max(n ell,e+r+3). + +As in PR628, approximate-factorization and exact coefficient verification +produce dyadic roots for Q=(1/r)product(z-rho_j) with ||P-Q||_1<=epsilon. +The first two e constraints imply |Q|>=delta/2 on the circle and +||Q(U)^-1||<=2^(a0+1). The last one gives + + D ||P(U)^-1-Q(U)^-1|| <= 2^(-p-2). + +Also ||Q||_1<=H/r+epsilon<=2^r. PR628's radial derivative argument applied +to Q supplies the stated stable margin beta for its inner or reciprocal +outer roots. Consequently the complementary-factor bound gives B<=2^h. +The forward product bound gives F<=2^v for v=3r+ell. + +Define + + J=c+2h+3g+ell+m+5, + W=J+max(p+2,w+v+3). (3) + +This W satisfies u<=beta^2/2 and t<=1/2. Since rBD+1<=2^(ell+h+m+1), +equation (1) yields E<=2^(J-W)<=2^(-p-2). Combining with coefficient +perturbation gives total inverse error <=2^(-p-1), leaving extra slack. +Since 2^J>=n+1, equation (2) gives + + R <= 2^(v+J+1-W) <= 2^(-w-2) < 2^(-w-1), + +which proves exact source recovery after coarse rounding. + +These are explicit integer exponent inequalities, not numerical fits. +Using Dfield<=r, ell<=r, c<=r and r>=3 gives the convenient bounds + + W <= max(p,w)+12r^3+m, + b <= p+6r^3+m. + +For example, J+v+3 <= 7r^3+35r+25+m <=12r^3+m. Likewise +e+r+3<=p+4r^3+11r+14+m<=p+6r^3+m, and n ell<=r^2. +Intermediate magnitude bits also have order O(r^3+m): exact prefixes are +bounded by rBD, scan closure state adds at most O(g) magnitude bits, and +forward subproducts add O(r) bits. A target additionally needs the bits +for its own initial magnitude. Bounds (3) concern fractional precision; +the complete word width includes these integer bits. + +## Preparation, phases, and scope + +The monic exact polynomial rP has coefficient norm <=H and logarithmic +root bound O(r). Pan's approximate-factorization bound, as stated in +Mehlhorn–Sagraloff–Wang, Theorem 2 and Corollary 1, applies at b>=n log n +with cost soft-O(nb+n^2 Gamma) and O(b+n Gamma) coefficient precision. +Here Gamma=O(r) and b=O(p+r^3+m). The same coefficient oracle and +conservative exact product verification from PR628 cost +soft-O(r^3(p+r^3+m)); the latter forms exact O(rb)-bit coefficients. +Repeated roots need not be individually isolated. This inherits the cited +algorithms; the finite fixture checker does not implement their worst-case +runtime. [Approximate-factorization source](https://arxiv.org/pdf/1301.4870), +PDF page 8. + +A supplied exact rational unit phase uses its actual numerator/denominator +length in scalar costs. For an approximate phase oracle, bound the induced +polynomial coefficient perturbation separately and allocate additional +slack by replacing p with p+O(1). Its required precision is O(p+r^3+m) +under the same bounded description assumptions as PR628. An arbitrarily +long phase description remains an extra input cost. + +The proof applies to any implementation of each factor with the stated +local error bound. The concrete in-place and restored-source schedule here +covers neighboring cyclic layouts only. PR846's clean-tape arbitrary-stride +solver has a compatible local bound and an additional depth admission +condition; extending the present tape claim would require retaining that +condition and its clean-scratch model. That solver is not part of this +package or its certified source-restoration claim. + +The cubic improvement comes from bounding intermediate inverse products, +not from improving PR621's circle lower bound. The full multiplication +assembly, common-label and Clifford interfaces, arbitrary dirty storage, +transform-level phase and normalization accounting remain separate. +No new kappa, practical timing improvement, or literature-priority claim +is made. + +## Executable evidence and attribution + +The exact verifier checks 5,220 integer budgets over all 116 prime-power +radices from 3 through 512, five target precisions, three source precisions +and three magnitude bounds. These support implementation of (3); the +inequalities above are the all-size proof. + +There are 120 kernel executions on ten pinned PR628 fixtures, with both +directions, varying exact rational unit phases and lengths 1,2,3,8,17,64. +Sixty executions compare every prefix to independent dense solves. All +120 check the expanded polynomial residual, pre-round recovery error, +exact coarse-grid restoration and total true-kernel error <=2^-128. +The finite tests use PR628's existing, conservative supplied inverse-norm +certificates; they do not claim that those finite certificates are tighter +than every previous finite execution budget. Six controls reject omitted +complement growth, insufficient target/recovery/coefficient precision, +nonshared shifts and lost prefix contraction. + +Credit Ali Romman for PR621, Chafik Boukhalfa for PR628, and the standard +Mahler-measure, cyclic-filtering and approximate-factorization methods. +This extension was prepared by Chafik Boukhalfa with substantial OpenAI +Codex assistance. The independent dense checker is a separate implementation, +not an independent human or delegated-agent review. Source pins are in +`SOURCE.json`. diff --git a/research/dirty-cubic-precision/vendor/862/SOURCE.json b/research/dirty-cubic-precision/vendor/862/SOURCE.json new file mode 100644 index 0000000000..ee7556c940 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/862/SOURCE.json @@ -0,0 +1,96 @@ +{ + "repository": "https://github.com/CrocSwap/integer-mult-bounds", + "base_commit": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "sources": [ + { + "path": "vendor/PR621-PROOF.md", + "head": "520774462b19b29af41554b74def31f9d01e997e", + "source_path": "research/prime-power-cyclic-inverse/PROOF.md", + "sha256": "2b8056c88e66f692f407450fff0414d41bcd09db8597be22e274a6c3dc20eb9e", + "git_blob": "0c757c37c70fdeb261d73f111ceedd3b233287bf" + }, + { + "path": "vendor/PR621-NOTICE.md", + "head": "520774462b19b29af41554b74def31f9d01e997e", + "source_path": "research/prime-power-cyclic-inverse/NOTICE.md", + "sha256": "96111c95cfec3c03a6f69c8e02c5d0bceff957d187e638d0534c676d6e3ffd77", + "git_blob": "a78e84066711e2f4776152d69d480e9629c26961" + }, + { + "path": "vendor/PR628-PROOF.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/PROOF.md", + "sha256": "595893609764c64a90d9b21b9cbd6d9e61980703f3deb43361105cf8c3d1d093", + "git_blob": "fb8fe7cb3bd036c69047ae7b4f4009a51b11825b" + }, + { + "path": "vendor/PR628-SCAN-PROOF.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/SCAN-PROOF.md", + "sha256": "6be99f0dce58d82ecb07967664e4a23f202ae3858f124a1bdcdcac3e660548db", + "git_blob": "a4c013606dd96e66b2986fdbd62b0538912efdd8" + }, + { + "path": "vendor/PR628-WEIGHTED-PROOF.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/WEIGHTED-PROOF.md", + "sha256": "b0643ad6ae448ca2fe11ee9a9597b5656e5e2feaaa89b16939e1d1bc7ba7437d", + "git_blob": "77c3b0785fe3437cae8ca9640eb6757585883929" + }, + { + "path": "vendor/PR628-NOTICE.md", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/NOTICE.md", + "sha256": "abeacf1ad1491d5797cfcf1f3832799bbf3b24b99597229d7bc884059a51ec68", + "git_blob": "22fbeb8ef0a28dd6b3feea718492091319ceb96e" + }, + { + "path": "vendor/check.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/check.py", + "sha256": "a3e46b556894d71a1c83bbbac01c50c1a541285fc9422a3567d5eb1d1ee86e7d", + "git_blob": "5ef6dd67b6c6cf949fedf16c0cd7b34ca4ccafc2" + }, + { + "path": "vendor/scan.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/scan.py", + "sha256": "1a9c01ca1a29a9be1e756858161202621db29d5d332a4266b4017a9502a50d7e", + "git_blob": "d620e493596f12578c1ce47f216c44c79b65de08" + }, + { + "path": "vendor/interval_kernel.py", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/interval_kernel.py", + "sha256": "9b7bb24640a9a7d3f83c7951dfef483ec933db4c50de6c0130b85f450eeddfbe", + "git_blob": "1182175a55cb871481de0f56ea9ae56e474705fe" + }, + { + "path": "vendor/FACTORS.json", + "head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_path": "research/prime-power-cyclic-scan/FACTORS.json", + "sha256": "643d60ac24d5e67f6c9305175bd1c99bf5e42edfef6d1995c051e0b98ba446a7", + "git_blob": "d3894bd2a1660229f1a7ed16c9d982689effc96f" + } + ], + "files": { + "vendor/PR621-PROOF.md": "2b8056c88e66f692f407450fff0414d41bcd09db8597be22e274a6c3dc20eb9e", + "vendor/PR621-NOTICE.md": "96111c95cfec3c03a6f69c8e02c5d0bceff957d187e638d0534c676d6e3ffd77", + "vendor/PR628-PROOF.md": "595893609764c64a90d9b21b9cbd6d9e61980703f3deb43361105cf8c3d1d093", + "vendor/PR628-SCAN-PROOF.md": "6be99f0dce58d82ecb07967664e4a23f202ae3858f124a1bdcdcac3e660548db", + "vendor/PR628-WEIGHTED-PROOF.md": "b0643ad6ae448ca2fe11ee9a9597b5656e5e2feaaa89b16939e1d1bc7ba7437d", + "vendor/PR628-NOTICE.md": "abeacf1ad1491d5797cfcf1f3832799bbf3b24b99597229d7bc884059a51ec68", + "vendor/check.py": "a3e46b556894d71a1c83bbbac01c50c1a541285fc9422a3567d5eb1d1ee86e7d", + "vendor/scan.py": "1a9c01ca1a29a9be1e756858161202621db29d5d332a4266b4017a9502a50d7e", + "vendor/interval_kernel.py": "9b7bb24640a9a7d3f83c7951dfef483ec933db4c50de6c0130b85f450eeddfbe", + "vendor/FACTORS.json": "643d60ac24d5e67f6c9305175bd1c99bf5e42edfef6d1995c051e0b98ba446a7" + }, + "new_contribution": [ + "complement-polynomial partial inverse bound", + "cubic precision budgets", + "coarse-grid source recovery", + "fixed-grid signed-shear composition" + ], + "source_scan_origin": "New local reference implementation based on the attributed PR628 scan; included and reviewed in this contribution, not previously published.", + "ai_assistance": "Substantial OpenAI Codex assistance; no independent human or delegated-agent review claimed." +} diff --git a/research/dirty-cubic-precision/vendor/862/budget.py b/research/dirty-cubic-precision/vendor/862/budget.py new file mode 100644 index 0000000000..32562bc20c --- /dev/null +++ b/research/dirty-cubic-precision/vendor/862/budget.py @@ -0,0 +1,100 @@ +"""Complement-polynomial control of every rounded inverse prefix.""" +from fractions import Fraction as F +from math import gcd, isqrt + + +def need(ok, label): + if not ok: raise ValueError(label) + + +def ceil_log2(n): + need(type(n) is int and n > 0, 'positive integer') + return (n-1).bit_length() + + +def prime_power(r): + if type(r) is not int or r < 3: return False + p = next((d for d in range(2, isqrt(r)+1) if r % d == 0), r) + value = r + while value % p == 0: value //= p + return value == 1 + + +def uniform(r, target_bits, coarse_bits, magnitude_bits=0): + """All-size exponent budgets; no enormous powers of two are built. + + Source norm is <=2^magnitude_bits. Prior analytic inputs: PR621 circle + bound and Fourier inverse bound, and PR628 approximate factorization. + """ + need(prime_power(r), 'prime-power radix >=3') + need(type(target_bits) is int and target_bits >= 1, 'target precision') + need(type(coarse_bits) is int and coarse_bits >= 0, 'coarse precision') + need(type(magnitude_bits) is int and magnitude_bits >= 0, 'magnitude precision') + n = r-1 + phi = sum(gcd(j, r) == 1 for j in range(1, r)) + ell, c = ceil_log2(r), ceil_log2(n) + d = 1+2*ell+r*n*phi + a = 2*d+r+2 + g = d+ell+2*r+2 + h = a+2*r + e = max(d+1, a+1, target_bits+2*a+magnitude_bits+3) + factor_bits = max(n*ell, e+r+3) + j = c+2*h+3*g+ell+magnitude_bits+5 + v = 3*r+ell + w = j+max(target_bits+2, coarse_bits+v+3) + # The old all-size working budget, for comparison at D<=1 and no + # coarse restoration requirement. This is not a matched contract. + old = max(2*g+ceil_log2(14*n), + target_bits+(n+2)*g+ceil_log2(28*n*(r+1))) + return dict(radix=r, n=n, phi=phi, ell=ell, c=c, circle_exponent=d, + full_inverse_exponent=a, margin_exponent=g, + partial_inverse_exponent=h, coefficient_error_exponent=e, + factor_bits=factor_bits, execution_error_exponent=j, + forward_product_exponent=v, working_bits=w, + target_bits=target_bits, coarse_bits=coarse_bits, + magnitude_bits=magnitude_bits, old_neighbor_working_bits=old) + + +def prefix_error(n, beta, scale, bound, qnorm, inverse_bound, bits): + """inverse_bound certifies ||Q(U)^-1|| for a shared isometry U. + + Q = scale^-1 product_j(z-rho_j), n is its degree. B bounds every + subproduct inverse, including the identity. This avoids multiplying + beta^-1 once per factor when propagating rounding errors. + """ + need(n > 0 and 0 < beta <= 1 and scale > 0 and bound >= 0, 'prefix parameters') + need(qnorm > 0 and inverse_bound > 0, 'norm certificates') + u = F(1, 1 << bits) + need(u <= beta*beta/2, 'closure precision') + B = max(F(1), (1 << n)*qnorm*inverse_bound) + t = n*B*7*u/beta**3 + need(t < 1, 'prefix contraction') + error = t*(scale*B*bound+1)/(1-t) + return error, B, t + + +def recovery_bound(error, factors, scale, bits): + u = F(1, 1 << bits) + result = error + for rho, _, _, _ in reversed(factors): + result = (1+abs(rho[0])+abs(rho[1]))*result+u + return result/scale+u + + +def choose(factors, scale, bound, qnorm, inverse_bound, coarse_bits, target_bits): + need(factors, 'nonempty factors') + phase, direction = factors[0][2:] + need(all(f[2] is phase and f[3] == direction for f in factors), 'shared shift required') + beta = min(f[1] for f in factors) + bits = max(coarse_bits, target_bits) + while True: + try: + error, B, t = prefix_error(len(factors), beta, scale, bound, qnorm, inverse_bound, bits) + except ValueError as exc: + if str(exc) not in ('closure precision', 'prefix contraction'): raise + bits += 1 + continue + recovery = recovery_bound(error, factors, scale, bits) + if error <= F(1, 1 << target_bits) and recovery < F(1, 1 << (coarse_bits+1)): + return bits, error, recovery, B, t + bits += 1 diff --git a/research/dirty-cubic-precision/vendor/862/vendor/PR621-NOTICE.md b/research/dirty-cubic-precision/vendor/862/vendor/PR621-NOTICE.md new file mode 100644 index 0000000000..a78e840667 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/862/vendor/PR621-NOTICE.md @@ -0,0 +1,21 @@ +# Attribution and assistance + +The kernel definition comes from the OpenAI exact-DFT preprint at +`adc7f1241b42e322a6451854ab7e4b4c146bf78a`, at `loc:newton` and +`loc:fourier-factorization`. Its source has the Apache-2.0 license. +The Newton and q-Pochhammer Fourier factorization is classical; see +Alexey Kuznetsov, [Using q-calculus to study LDLT factorization of a +certain Vandermonde matrix](https://arxiv.org/abs/1507.02959v2). +This source is not presented as a proof of the cyclic conditioning result. + +The proof extends prior unpublished local cyclic inverse and stability +notes from research directed by Ali Romman. The rational field routines +use that work's exact-arithmetic scaffold. The full proof is included +here; no private file is needed for replay. No literature priority is claimed. + +The proof, verifier, and package were prepared with substantial OpenAI +Codex assistance. Separate Codex agents reviewed the proof and checked +it with independent SymPy arithmetic. These are AI-assisted reviews, +not maintainer acceptance or a full Lean multiplication proof. + +This contribution uses the repository's Apache-2.0 license. diff --git a/research/dirty-cubic-precision/vendor/862/vendor/PR621-PROOF.md b/research/dirty-cubic-precision/vendor/862/vendor/PR621-PROOF.md new file mode 100644 index 0000000000..0c757c37c7 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/862/vendor/PR621-PROOF.md @@ -0,0 +1,212 @@ +# Uniform bounds for the prime-power cyclic inverse + +## Result and scope + +Let r=ell^a>=3, where ell is prime and a>=1. Let u be a primitive +r-th root of unity, and put n=r-1 and D=phi(r). Define + + h_j = 1 / product_(s=1)^j (1-u^s), + P(z) = sum_(j=0)^n h_j z^j, + f(z) = r P(z). + +For every such r and u, P has no zero on the complex unit circle. +Put H=2^r-1 and delta_r=1/(2rn H^(nD-1)). For every complex +z with |z|=1, + + |P(z)| >= delta_r. + +This bound does not depend on the order of z. In particular, it holds +at all eigenvalues of a cyclic shift of any length. The old bound from +the algebraic norm of P at a root of unity depends on that root's order. +The new bound removes that dependence. + +There is also an operator bound that does not require root +classification. For any complex scalar tau with |tau|=1, +any cyclic shift Z_L with L>=1, and any integer w, put U=tau Z_L^w. Then + + ||P(U)^-1||_infinity <= delta_r^-1 + 2nH/(r delta_r^2). + +The bound has logarithm O(r^2 phi(r)), hence O(r^3). It is uniform +in L, w, and tau. The induced infinity norm is the maximum absolute +row sum. This bound does not supply a complete O(p polylog p) guard +for growing radix families. Efficient coefficient preparation, rounded +execution, scratch restoration, and a fast fixed-tape circuit remain open. No integer +kappa, complex b, or BIT c changes in this result. + +For an odd prime q, D=n=q-1, so the circle bound becomes + + delta_q = 1/(2q(q-1) (2^q-1)^((q-1)^2-1)). + +The result includes dyadic r>=4. For r=2, P(z)=1+z/2; the geometric +series gives ||P(U)^-1||_infinity<=2. No result for other composite +radices is claimed. The ideal argument below requires a prime power. + +## Integral polynomial and unit roots + +The identity product_(s=1)^(r-1)(1-u^s)=r gives + + f(z) = sum_(j=0)^n a_j z^j, + a_j = product_(s=j+1)^n (1-u^s). + +All a_j are algebraic integers in K=Q(u), and a_n=1. Thus f is +monic. Every root of f is an algebraic integer. + +Take any root alpha and a number field E that contains K and alpha. +The algebraic integer 1-u is not a unit in E, since + + |Norm_(E/Q)(1-u)| = ell^[E:K] > 1. + +Here Norm_(K/Q)(1-u)=Phi_r(1)=ell. The prime-power cyclotomic +polynomial is Phi_r(x)=sum_(j=0)^(ell-1) x^(j r/ell). + +There is a maximal ideal m in the ring of integers of E that contains +1-u. Modulo m, all a_j with j=3, the two embeddings are distinct. Bound the other +D-2 factors by H^(2n). This gives + + 1 <= |Norm_(K/Q)(R)| <= |R|^2 H^(2n(D-2)), + |R| >= H^(-n(D-2)). + +The equation S adj(S) e_0 = R e_0 gives polynomials A and C of +degree below n with + + A(z) f(z) + C(z) f*(z) = R. + +Each coefficient of A and C is a cofactor of S. A cofactor is a +determinant of size 2n-1. Deleting a row and a column cannot +increase the Euclidean norm of any retained column. Therefore each +cofactor has modulus at most H^(2n-1). For |z|=1, + + |A(z)| + |C(z)| <= 2n H^(2n-1), + |f*(z)| = |f(z)|. + +The Bezout identity gives + + |f(z)| >= H^(-n(D-2)) / (2n H^(2n-1)) + = 1 / (2n H^(nD-1)). + +Divide by r to obtain the stated bound for P. Neither this proof +nor its constants use the degree of a root of unity at which P is +evaluated. + +## An inverse bound from Fourier coefficients + +Let g(t)=1/P(exp(it)). The circle bound gives |g(t)|<=delta_r^-1. +The coefficient bound gives + + |P'(exp(it))| <= nH/r, + |g'(t)| <= nH/(r delta_r^2). + +Let c_k be the Fourier coefficients of g, with the average integral +on [0,2 pi] as the normalization. Parseval's identity for g' gives + + sum_k k^2 |c_k|^2 <= (nH/(r delta_r^2))^2. + +The estimate sum_(k!=0) k^-2 <= 4 follows from comparison of the +positive tail with the integral of x^-2 on [1,infinity). By the +Cauchy-Schwarz inequality and |c_0|<=delta_r^-1, + + sum_k |c_k| <= delta_r^-1 + 2nH/(r delta_r^2). + +Thus the Fourier series is absolutely convergent. Its product with +the finite polynomial P(exp(it)) has Fourier coefficients equal to +those of the constant one. For U=tau Z_L^w, every integer power U^k +has infinity norm one. The absolutely convergent matrix series + + sum_(k in Z) c_k U^k + +therefore has norm at most sum_k |c_k|. Multiplication by P(U) gives +the identity matrix, by the same coefficient identities. This proves +the stated inverse bound for all L, w, and unit tau. + +This is a bound for the exact operator. It is not a paid +coefficient-preparation or rounded-program theorem. The infinite +series is used to prove the norm bound, not as a declared algorithm. + +## Products and unit gauges + +For a finite family of such kernels with r_i>=3 on the same cyclic array, put + + C = product_i P_i(tau_i Z_L^(w_i)). + +Each factor is invertible. Submultiplicativity gives + + ||C^-1||_infinity <= product_i [delta_i^-1 + 2n_i H_i/(r_i delta_i^2)]. + +A diagonal conjugation with entries of modulus one preserves this +norm. Thus this bound also applies to a unit-gauged product. Its +logarithm is O(sum_i r_i^2 phi(r_i)). The bound concerns arbitrary +input vectors. It does not give operation counts or a tape schedule. + +## Value, sources, and remaining work + +This result permits inner roots and proves a uniform circle bound for +every primitive root choice. It supplies an explicit all-length inverse +bound for each growing prime-power radix. For an odd prime q and a root of unity xi, a direct algebraic norm +argument in E=Q(u,xi) gives + + |P_q(xi)| >= q^-1 (2^q-1)^(-([E:Q]-1)). + +The degree of E can grow with the order of xi. The new bound uses +Q(u) only and controls every point on the unit circle. The logarithm +of its inverse upper bound still grows polynomially with r. It does +not establish the required combined precision guard or change the +full-array traffic of the literal filter chain. A sharper lower bound +and a paid implementation remain useful next questions. + +The polynomial is from the pinned OpenAI exact-DFT preprint: + +https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/preprints/An-explicit-power-saving-for-the-exact-discrete-Fourier-transform-September-25-2026/build/sections/local.tex + +The unit-ideal argument extends the prior unpublished local note +"Cyclic polynomial stability, norm growth, and rescaling". The prior +local note "Full-output cyclic quotient: exact structure and cost" +supplies the cyclic inverse context. The field arithmetic in the +finite verifier uses the prior local exact-arithmetic scaffold. +The resultant and cofactor estimates use standard algebraic and +linear-algebra facts. Repository and literature novelty checks are +separate from this proof. No priority claim is made here. + +Prepared with OpenAI Codex assistance. Apache-2.0. diff --git a/research/dirty-cubic-precision/vendor/877/PROOF.md b/research/dirty-cubic-precision/vendor/877/PROOF.md new file mode 100644 index 0000000000..69c98a21d1 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/877/PROOF.md @@ -0,0 +1,173 @@ +# Balanced dirty commutators: prefix bounds and quartic precision + +This audits the conservative per-leaf growth estimate in PR628's +`DIRTY-PROOF.md`, pinned and retained under `vendor/pr628/`. Its old bound is +valid. We give a smaller sufficient execution budget for its **unchanged +balanced binary dispatcher and unchanged rounded leaves**. No minimum +precision, physical implementation or new multiplication exponent is claimed. + +## 1. Ideal prefixes, including their inverses + +Let `A_1,...,A_n` be arbitrary composable linear maps on a common normed +space, with operator norms at most `K >= 0`. Use the maximum norm on the +joint source, target and borrowed arrays. Assume distinct ancestor and child +arrays, with one reserved connector per recursion depth, as in PR628. All +initial arrays may contain arbitrary data. No factor commutativity is used. + +Set `C=1+K`. A complete m-factor ideal child is a shear with multiplier +`A_(j+m-1)...A_j`, and restores its source and deeper scratch. Its norm and +its inverse's norm are at most `1+K^m <= C^m`. This uses the ordinary ideal +commutator identity, not an assumption about rounded linearity. + +Define + +```text +E(1) = 1, +a = floor(n/2), b = ceil(n/2), +E(n) = n + max(a + E(b), b + E(a)). +``` + +**Prefix lemma.** Every ideal primitive prefix `P_j` of either sign of the +balanced word satisfies + +```text +||P_j|| <= B, ||P_j^-1|| <= B, B = C^E(n). +``` + +The empty prefix is included. At a binary node write U for the left child's +source-to-connector shear and V for the right child's connector-to-target +shear. The positive chronological word is `U,V,U^-1,V^-1`; the negative word +is `V,U,V^-1,U^-1`. A prefix consists of completed children and a prefix +inside the next child. The largest completed-child degree before an active +b-child is `2a+b=n+a`, and before an active a-child is `a+2b=n+b`, allowing +both signs. Induction and submultiplicativity give the stated recurrence. +For the inverse of that prefix, reverse and invert the completed factors +and the active child prefix. The same product of norm bounds applies. We +do not infer an inverse-prefix bound merely from a forward-prefix norm. + +Inductively **`E(n) <= 4n-3`**: the two bounds become `2a+5b-3` and +`5a+2b-3`, both at most `4(a+b)-3`, since the balanced positive sizes satisfy +`a <= 2b` and `b <= 2a`. For powers of two the exact recurrence is +`E(n)=3n-2`. The recurrence is a sufficient majorant, not the exact maximum +norm or a lower bound on required precision. + +Every ideal propagator between two primitive boundaries consequently has +norm at most **`B^2`**, since it is `P_j P_i^-1`. This is where the inverse +prefix bound is needed. A small final product alone would not control the +intermediate dirty computation. + +## 2. Rounded execution with arbitrary initial dirt + +Suppose each executed leaf is a deterministic signed shear that restores its +source exactly, computes its increment independently of its target, and +approximates its ideal linear map with error at most + +```text +a u (||source||+1), u=2^-w, a>0. +``` + +Here `a` denotes the error constant, no longer the left subtree size. Let +`D` bound the norm of **all** initial arrays. Let N be the actual complete +leaf count, including inverse and restoration calls. PR663 gives, equivalently +to the elementary recursion `N(n)=2N(floor(n/2))+2N(ceil(n/2))`, + +```text +N(n) = 3 q n - 2 q^2, q=2^floor(log2 n). +``` + +Let M be the maximum actual joint norm over all leaf boundaries. Inserting +the actual leaf errors into the ideal linear recurrence is exact even though +each error depends nonlinearly on the current source. Variation of constants +and the prefix lemma give + +```text +M <= B D + delta (M+1), delta = N B^2 a u. +``` + +If `delta <= 1/2`, then + +```text +M <= 2 B D + 1, +execution error <= 2 N B^2 a u (B D+1). +``` + +The last error is for the whole joint state against the exact ideal word; +it therefore also bounds the target error. Exact source and dirty restoration +still follow from the predecessor's deterministic shear/inverse identity, +with immutable nonaliased phase/factor data. This proof neither assumes a +rounded child is linear nor claims its output is independent of dirt. + +For any desired execution accuracy `2^-t`, `t>=0`, it suffices to use + +```text +w >= t + ceil(log2(2 N B^2 a (B D+1))). +``` + +This also implies `delta<=1/2`. Retain the input grid and every separate +leaf-admission condition. All bounds are independent of cyclic length L. + +## 3. The inherited prime-power inverse and the complete bill + +For PR628's n=r-1 prepared factors, the inherited leaf lemma has +`K=r/beta`, `a=13(r+1)/beta^3`, and requires `u<=beta^2/2`. Its root-gap +budget supplies `beta >= 2^-g` with `g=O(r^3)`. If `D<=2^d`, set + +```text +A = 3g + ceil(log2(13(r+1))), +H = g + ceil(log2(r+1)), +w = max(A, 2g+1, p+3+ceil(log2 N)+A+d+3 E(n) H). +``` + +Indeed `a<=2^A`, `B<=2^(E H)` and `BD+1<=2^(EH+d+1)`, so the execution +error is at most `2^(-p-1)`. The smallness and leaf closure conditions hold. +If initial inputs have a finer dyadic grid, replace w by the maximum of w +and their fractional precision; an array cannot be silently coarsened. + +Keep PR628's **unchanged coefficient/phase preparation** at target +`p+1+d`. Its perturbation bound for the original source contributes at most +`2^(-p-1)`, hence the total error is at most `2^-p`. Initial dirty data +enters the execution budget D; it does not enter the ideal operator's +coefficient perturbation. No unimplemented preparation algorithm is supplied +by this audit. + +Since `E(n)=O(r)` and `N=O(r^2)`, this proves the alternative sufficient guard + +```text +w = O(p + d + r^4), +``` + +instead of the old `O(p+d+r^5)` growth bound. Integer magnitude bits at leaf +boundaries are `O(d+E log(1+K))=O(d+r^4)`. The inherited causal passes and +closure scalars add `O(log(beta^-1)+log r)` magnitude bits inside a leaf. +The bound is on complete word size after also retaining any finer input grid. + +All **N leaf calls remain paid**: each retains validation/access, causal, +output and undo passes. With inherited fixed-precision arithmetic and +preparation, the local neighboring-layout bill becomes + +```text +soft-O((L r^2 + r^3) (p + d + r^4)), +``` + +plus charged phase access and the predecessor's arbitrary-stride routing. +Borrowed storage remains `ceil(log2 n)` length-L arrays, arbitrary initially, +with `O(L log r)` words; scalar arithmetic, indexing and factor descriptors +retain the predecessor's charges. No clean length-L array, free copy, or +discarded restoration call is introduced. The rational reference code is +not an implementation or benchmark of the asymptotic bit-cost algorithm. + +This improves one local precision upper bound. It supplies no admitted +common-label/Clifford or reversible-bit word, physical owner layout, +complete-transform recurrence or multiplication reduction. The selected +supplier and κ are unchanged. PR862's cubic guard uses owned widened words +with reserved zero bits; its storage contract differs from this dirty-array +result. General multiway or optimized unequal trees are outside this proof. + +Credit Chafik Boukhalfa / chafreaky for PR628, 0xkilgore for PR663's exact +count and nonlinear restoration audit, androolloyd for PR673's multiway and +phase-alias work, and the original sources retained in the vendor notice. +The perturbation argument is a standard variation-of-constants estimate; +no literature-priority claim is made. Written for Gareth Davidson (@bitplane) +with substantial OpenAI Codex assistance; Apache-2.0. Finite evidence below +supports this handwritten argument, not formal verification of the full +multiplication theorem. diff --git a/research/dirty-cubic-precision/vendor/877/README.md b/research/dirty-cubic-precision/vendor/877/README.md new file mode 100644 index 0000000000..5ce83ef209 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/877/README.md @@ -0,0 +1,139 @@ +# Quartic precision for balanced dirty commutators + +**Mathematical audit / improved sufficient local precision bound; no new κ.** +The balanced dirty-array inverse in +[#628](https://github.com/CrocSwap/integer-mult-bounds/pull/628) admits +**O(p+d+r⁴)** word size, improving its published **O(p+d+r⁵)** sufficient +bound. Here r is the radix, p the requested accuracy, and `2^d` bounds every +initial source, target and dirty array. Retain a finer initial input grid if +one is supplied. The dispatcher, leaf operations, number of calls and +borrowed arrays are unchanged. + +The old proof bounds growth across every leaf call. This audit instead bounds +ideal prefixes and their inverses using the restored structure of complete +recursive children, then propagates the actual nonlinear leaf errors through +those linear maps. The full proof and complete inherited bill are in +[PROOF.md](PROOF.md). + +For n factors, set `C=1+K`, where each ideal factor has norm at most K: + +```text +E(1)=1; E(n)=n+max(floor(n/2)+E(ceil(n/2)), ceil(n/2)+E(floor(n/2))), +E(n)<=4n-3; B=C^E(n). +``` + +Every ideal prefix and inverse prefix has norm at most B, so every interval +of the ideal word has norm at most `B²`. With N complete leaf calls and +per-leaf error `a u (||source||+1)`, the resulting execution error is at most +`2 N B² a u (B D+1)`, provided `N B² a u<=1/2`. This covers arbitrary initial +dirt and target-dependent trajectories without assuming rounded leaves are +linear. Exact dirty restoration still uses the predecessor's deterministic +inverse contract and nonaliased read-only phases. + +## Exact budget comparison + +At `p=128`, `d=20`, using PR628's inherited root-gap exponent: + +| Radix | Old guard after crediting #663's exact leaf count | New prefix guard | +|---|---:|---:| +| 4 | 680 | 1,341 | +| 9 | 31,106 | 32,514 | +| 16 | 461,599 | 266,372 | +| 64 | 516,978,511 | 73,245,212 | +| 256 | 544,452,103,903 | 19,177,910,612 | + +These are conservative **sufficient fractional-bit budgets**, not measured +minimum precision, speedups or useful hardware word sizes. The earlier bound +is better at small radices; either valid bound may be used. For radix 64 the +new budget improves even the exact-count baseline, beyond the earlier +reduction of PR628's `4n²` allowance. Its 63 factors still execute **4,000** +leaves and use six arbitrary dirty arrays. Their prefix exponent is 188. + +The complete neighboring-layout cost becomes +`soft-O((L r²+r³)(p+d+r⁴))` under the unchanged preparation and arithmetic +assumptions. All three leaf passes, validation/source access, inverse calls, +`ceil(log2 n)` borrowed arrays, clean scalar arithmetic, indexing, descriptors, +phase access and arbitrary-stride routing remain charged. + +## Reproduce + +Python 3.11+, standard library, no network or Git required, read-only by default: + +```sh +python3 -B -I research/dirty-prefix-precision/verify.py +python3 -B -I research/dirty-prefix-precision/test_precision.py +``` + +Expected main marker: + +```text +PASS_DIRTY_PREFIX_PRECISION budgets=1740 prefix_traces=18 rounded_generic=48 rounded_kernels=40 controls=10 kappa=unchanged +``` + +[EXPECTED.json](EXPECTED.json) contains the deterministic receipt. An explicit +`--write /new/path.json` reconstructs it and refuses an existing destination. +The [validation record](VALIDATION.md) describes executed commands and package +controls. + +- **10,000** factor counts check the resource majorants and #663's count formula. + The independently emitted positive/negative words match the immutable #628 + dispatcher for n=1..64: **128 words, 191,342 instructions**. +- **18** dense integer traces with noncommuting 2×2 factors check every prefix + and inverse prefix: **11,142 boundaries**. Separate rational Gauss-Jordan + inversion checks 66 selected prefixes. All **5,104** nonempty contiguous + subwords in the fixtures through eight factors are also built directly and + compared with their prefix/inverse-prefix products. +- **1,740** exact integer budgets cover all 116 prime-power radices from 3 + through 512, five target precisions and three initial magnitude bounds. + Both the original and exact-call-count baselines are recorded. +- **48** generic and **40** actual kernel executions use the unchanged #628 + rounded leaves. All ten pinned kernel certificates are checked, with dense + expanded-polynomial solves, nonzero initial dirt, both cycle orientations, + and cycle lengths one and three. Every executed leaf restores its source; + all 6,304 leaf boundaries satisfy the new magnitude bound. Every complete + inverse cancels exactly. All 88 executions have nonzero rounding error + bounded by the new execution budget. Kernel tests also charge coefficient + perturbation and prove total error at most `2^-128`. +- Ten controls reject altered budget obligations, omitted restore, wrong + inverse order and using the final operator norm as a prefix bound. Four + tests exercise exact logarithm boundaries, finer input grids, the feedback + threshold and eight additional nonlinear-error executions. + +The finite domains and seed **63** are fixed in [CLAIM.json](CLAIM.json). +The all-n and all-cycle-length conclusions rest on the written proof and +inherited leaf/preparation theorems, rather than an extrapolation from tests. + +## Scope, provenance and credit + +Base: `f567884aeb8851b6e794af1184119a3bfbe1e631`; selected #799 remains at +κ=`1661634653669567/10^18`. The subject is the separate local #628 primitive, +head `0768f97d06c623b8211e651543c66135796b62bf`. Its consumed files and notice +are vendored verbatim and verified by SHA256 and Git blob identity in +[SOURCES.json](SOURCES.json). Original documentation is retained as historical +source, including its superseded sufficient precision estimate. + +Credit **Chafik Boukhalfa (@chafreaky)** for #628's rounded leaves and dirty +composition, **0xkilgore** for #663's exact count and nonlinear restoration +audit, and **androolloyd** for #673's multiway echo and phase-alias repair. +The declared contract here requires phase arrays distinct from every mutable +array; this audit does not claim to fix the known alias defect in vendored +#628. The original notices credit Ali Romman's #621 kernel and its sources. + +Related #689/#730/#744 optimize or audit other echo trees and call counts; +#714 uses one clean root checkpoint; #846 studies arbitrary strides. +Chafik's concurrent **#862** obtains cubic precision with owned widened words +and reserved low zero bits. That differs from the arbitrary-dirty-array +contract preserved here. None of those pending packages is imported. + +General multiway or unbalanced trees, variable leaf precision, common-label +or Clifford compilation, reversible-bit realization, physical ownership, +full-transform accounting and the multiplication reduction are outside this +result. Factor preparation algorithms and fast fixed-precision arithmetic +remain inherited hypotheses, not newly implemented software. No selected +artifact or `upstream/` file changes. No full theorem formalization or +literature-priority claim is made. + +Prepared for **Gareth Davidson (@bitplane) with substantial OpenAI Codex +assistance**. Apache-2.0; predecessor notice retained. All new code and the +proof were written by one AI agent; separate arithmetic methods are not +independent human review. diff --git a/research/dirty-cubic-precision/vendor/877/SOURCES.json b/research/dirty-cubic-precision/vendor/877/SOURCES.json new file mode 100644 index 0000000000..c95a6b17e2 --- /dev/null +++ b/research/dirty-cubic-precision/vendor/877/SOURCES.json @@ -0,0 +1,96 @@ +{ + "base_commit": "f567884aeb8851b6e794af1184119a3bfbe1e631", + "source_pr": 628, + "source_head": "0768f97d06c623b8211e651543c66135796b62bf", + "source_author": "Chafik Boukhalfa (@chafreaky)", + "files": [ + { + "source_path": "research/prime-power-cyclic-scan/dirty.py", + "vendored_path": "vendor/pr628/dirty.py", + "sha256": "09e7f41141594e6540828330d27be27c083ee6569660ae42c0cd519b09fc8d21", + "git_blob": "2b9471083706a37519a1af7598e012f5fecf2636" + }, + { + "source_path": "research/prime-power-cyclic-scan/weighted.py", + "vendored_path": "vendor/pr628/weighted.py", + "sha256": "8b0f93d131a30e64eb0ccd893779daffea79c0c00f1d2a30a91d23eb2bf0bff5", + "git_blob": "da90ee6e83b15164cabdbe4472a2c5d53706160e" + }, + { + "source_path": "research/prime-power-cyclic-scan/check.py", + "vendored_path": "vendor/pr628/check.py", + "sha256": "a3e46b556894d71a1c83bbbac01c50c1a541285fc9422a3567d5eb1d1ee86e7d", + "git_blob": "5ef6dd67b6c6cf949fedf16c0cd7b34ca4ccafc2" + }, + { + "source_path": "research/prime-power-cyclic-scan/scan.py", + "vendored_path": "vendor/pr628/scan.py", + "sha256": "1a9c01ca1a29a9be1e756858161202621db29d5d332a4266b4017a9502a50d7e", + "git_blob": "d620e493596f12578c1ce47f216c44c79b65de08" + }, + { + "source_path": "research/prime-power-cyclic-scan/interval_kernel.py", + "vendored_path": "vendor/pr628/interval_kernel.py", + "sha256": "9b7bb24640a9a7d3f83c7951dfef483ec933db4c50de6c0130b85f450eeddfbe", + "git_blob": "1182175a55cb871481de0f56ea9ae56e474705fe" + }, + { + "source_path": "research/prime-power-cyclic-scan/check_budgets.py", + "vendored_path": "vendor/pr628/check_budgets.py", + "sha256": "581ba58a30e05cb09dadb35be6e25bd92232b2137a0cc7eb5b83e2ee20c0bf02", + "git_blob": "ff21b6e1904b5b492fb4389ae1c49ca69588c002" + }, + { + "source_path": "research/prime-power-cyclic-scan/dirty_budgets.py", + "vendored_path": "vendor/pr628/dirty_budgets.py", + "sha256": "107d7e80b9b752625e7e817f1226c364f872be1facc5fd24c2e74dfdcd4714ce", + "git_blob": "a3ce42755ae55d2be5b6fd4c40d88027d304bc8d" + }, + { + "source_path": "research/prime-power-cyclic-scan/FACTORS.json", + "vendored_path": "vendor/pr628/FACTORS.json", + "sha256": "643d60ac24d5e67f6c9305175bd1c99bf5e42edfef6d1995c051e0b98ba446a7", + "git_blob": "d3894bd2a1660229f1a7ed16c9d982689effc96f" + }, + { + "source_path": "research/prime-power-cyclic-scan/DIRTY-PROOF.md", + "vendored_path": "vendor/pr628/DIRTY-PROOF.md", + "sha256": "bb7c2fdc1c4673d56531fd56fb8790c81a16813ac152c10f1afabc9efdd70d61", + "git_blob": "caf4aafc784a630d61ca7874a0bd19cbcb34e585" + }, + { + "source_path": "research/prime-power-cyclic-scan/PROOF.md", + "vendored_path": "vendor/pr628/PROOF.md", + "sha256": "595893609764c64a90d9b21b9cbd6d9e61980703f3deb43361105cf8c3d1d093", + "git_blob": "fb8fe7cb3bd036c69047ae7b4f4009a51b11825b" + }, + { + "source_path": "research/prime-power-cyclic-scan/NOTICE.md", + "vendored_path": "vendor/pr628/NOTICE.md", + "sha256": "abeacf1ad1491d5797cfcf1f3832799bbf3b24b99597229d7bc884059a51ec68", + "git_blob": "22fbeb8ef0a28dd6b3feea718492091319ceb96e" + }, + { + "source_path": "research/prime-power-cyclic-scan/SOURCE.json", + "vendored_path": "vendor/pr628/SOURCE.json", + "sha256": "38a425e2d3a72a5e39b18b54c728e40407e121d481a1c6423edd5c18e9b68a04", + "git_blob": "59bddaea4d66725bf675a67b6d2cf85a061b1fae" + } + ], + "selected_at_base": { + "source_pr": 799, + "source_head": "80e6463157cfc80b85af09e7e2f14748fe2dac60", + "kappa": "1661634653669567/1000000000000000000" + }, + "related_heads": { + "862": "57e0659150d323b784580110b36aa64a2dca2a33", + "846": "4bdb3e755ea7118170a7a34764df955880dec282", + "744": "302383e0c1ec71c50860362d3f394f85664c2445", + "730": "d222e348179cc02a54d6d26dbd2838944f62c6e5", + "714": "efad8a40094ab453c0525efef0b0eff2a5d8b850", + "689": "0dedef12f05f9a06faf9d4e1c8b1462c0e3bff3a", + "673": "0b4f514c60d9bc7786415d7cbc24754f24d6dc3b", + "663": "e0e546fd01b396478c68b6b6c5a16d87515983ba" + }, + "comparison": "Vendored predecessor files are immutable exact Git bytes. No source file is modified; original notice retained." +} diff --git a/research/dirty-cubic-precision/vendor/877/core.py b/research/dirty-cubic-precision/vendor/877/core.py new file mode 100644 index 0000000000..9ca79fdc2f --- /dev/null +++ b/research/dirty-cubic-precision/vendor/877/core.py @@ -0,0 +1,106 @@ +"""Balanced dirty-word prefixes and exact execution-error budgets. + +Gareth Davidson (@bitplane), substantial OpenAI Codex assistance; Apache-2.0. +See PROOF.md. No predecessor dispatcher is used in this module. +""" +from fractions import Fraction as Q +from functools import lru_cache + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +@lru_cache(None) +def resources(n): + need(type(n) is int and n >= 1, "positive integer factor count") + if n == 1: + return 0, 1, 1 + a, b = n//2, n-n//2 + ha, na, ea = resources(a) + hb, nb, eb = resources(b) + return 1+max(ha, hb), 2*(na+nb), n+max(a+eb, b+ea) + + +def word(n, sign=1, first=0, source=0, target=1, scratch=2): + """Independent chronological word: (source, target, factor, sign).""" + resources(n) + need(type(sign) is int and sign in (-1, 1), "word sign") + if n == 1: + yield source, target, first, sign + return + a, b = n//2, n-n//2 + commands = [(a, first, source, scratch, 1), + (b, first+a, scratch, target, 1), + (a, first, source, scratch, -1), + (b, first+a, scratch, target, -1)] + if sign == -1: + commands = [(m, j, s, t, -q) for m, j, s, t, q in reversed(commands)] + for m, j, s, t, q in commands: + yield from word(m, q, j, s, t, scratch+1) + + +def ceil_log2(value): + value = Q(value) + need(value > 0, "positive logarithm argument") + power = value.numerator.bit_length()-value.denominator.bit_length() + return power + (value > Q(2)**power) + + +def execution_parameters(n, K, a, D, bits): + need(K >= 0 and a > 0 and D >= 0, "operator/error/magnitude bounds") + need(type(bits) is int and bits >= 0, "fractional precision") + _, calls, exponent = resources(n) + B = (1+Q(K))**exponent + delta = calls*B*B*Q(a)/2**bits + need(delta <= Q(1, 2), "feedback smallness") + magnitude = 2*B*D+1 + error = 2*delta*(B*D+1) + return dict(calls=calls, exponent=exponent, prefix_bound=B, + feedback=delta, magnitude_bound=magnitude, error_bound=error) + + +def working_bits(n, K, a, D, target_bits, input_bits=0): + need(type(target_bits) is int and target_bits >= 0, "target bits") + need(type(input_bits) is int and input_bits >= 0, "input grid") + need(K >= 0 and a > 0 and D >= 0, "operator/error/magnitude bounds") + _, calls, exponent = resources(n) + B = (1+Q(K))**exponent + bits = max(input_bits, 0, target_bits+ceil_log2(2*calls*B*B*a*(B*D+1))) + result = execution_parameters(n, K, a, D, bits) + need(result['error_bound'] <= Q(1, 2**target_bits), "execution target") + return bits + + +def kernel_budget(radix, target_bits, magnitude_bits, inherited): + """Integer exponents only; no exponentially large root-gap numbers.""" + need(type(magnitude_bits) is int and magnitude_bits >= 0, "magnitude bits") + need(type(target_bits) is int and target_bits >= 1, "target bits") + source = inherited.budgets(radix, target_bits+1+magnitude_bits) + inherited.check(source) + n, g = radix-1, source['g'] + scratch, calls, exponent = resources(n) + A = 3*g+ceil_log2(13*(radix+1)) + H = g+ceil_log2(radix+1) + w = max(A, 2*g+1, target_bits+3+ceil_log2(calls)+A+magnitude_bits+3*exponent*H) + oldH = g+ceil_log2(radix+2) + exact_count_old = max(A, 2*g+1, target_bits+2+ceil_log2(calls)+A+magnitude_bits+(calls-1)*oldH) + return dict(radix=radix, target_bits=target_bits, initial_magnitude_bits=magnitude_bits, + n=n, dirty_arrays=scratch, leaf_calls=calls, prefix_exponent=exponent, + gap_bits=g, local_error_bits=A, shear_growth_bits=H, + working_bits=w, old_exact_count_working_bits=exact_count_old, + coefficient_target_bits=target_bits+1+magnitude_bits) + + +def check_kernel_budget(row, inherited): + need(all(type(v) is int for v in row.values()), "integer budget fields") + correct = kernel_budget(row['radix'], row['target_bits'], row['initial_magnitude_bits'], inherited) + need(row == correct, "budget certificate mismatch") + # Check the exponent inequality separately from certificate equality. + n, E, N = row['n'], row['prefix_exponent'], row['leaf_calls'] + need(E <= 4*n-3, "linear prefix exponent") + gap = row['working_bits']-row['target_bits']-3-row['local_error_bits']-row['initial_magnitude_bits']-3*E*row['shear_growth_bits'] + need(gap >= 0 and N <= 2**gap, "rounded execution inequality") + need(row['working_bits'] >= 2*row['gap_bits']+1, "leaf closure precision") + return True diff --git a/research/dirty-cubic-precision/vendor/877/matrices.py b/research/dirty-cubic-precision/vendor/877/matrices.py new file mode 100644 index 0000000000..25ece6ffbb --- /dev/null +++ b/research/dirty-cubic-precision/vendor/877/matrices.py @@ -0,0 +1,124 @@ +"""Independent dense integer prefixes, inverse prefixes and subwords. + +Gareth Davidson (@bitplane), substantial OpenAI Codex assistance; Apache-2.0. +""" +import hashlib +import json +from fractions import Fraction as Q + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def identity(n): + return [[int(i == j) for j in range(n)] for i in range(n)] + + +def multiply(a, b): + columns = list(zip(*b)) + return [[sum(x*y for x, y in zip(row, col)) for col in columns] for row in a] + + +def norm(a): + return max(sum(map(abs, row)) for row in a) + + +def prefix_step(matrix, factor, op): + source, target, _, sign = op + need(source != target, "non-shear instruction") + width = len(matrix) + for i in range(2): + matrix[2*target+i] = [matrix[2*target+i][j] + sign*sum( + factor[i][k]*matrix[2*source+k][j] for k in range(2)) for j in range(width)] + + +def inverse_step(matrix, factor, op): + # If P_new = S P, then P_new^-1 = P^-1 S^-1: update columns. + source, target, _, sign = op + for row in matrix: + for j in range(2): + row[2*source+j] -= sign*sum(row[2*target+k]*factor[k][j] for k in range(2)) + + +def gauss_inverse(matrix): + n = len(matrix) + a = [[Q(v) for v in row]+[Q(i == j) for j in range(n)] for i, row in enumerate(matrix)] + for col in range(n): + pivot = next(i for i in range(col, n) if a[i][col]) + a[col], a[pivot] = a[pivot], a[col] + value = a[col][col] + a[col] = [x/value for x in a[col]] + for i in range(n): + if i != col: + value = a[i][col] + a[i] = [x-value*y for x, y in zip(a[i], a[col])] + return [row[n:] for row in a] + + +def trace(factors, instructions, sign, arrays, bound): + width = 2*arrays + P, inverse = identity(width), identity(width) + maximum, inverse_maximum = 1, 1 + stream = hashlib.sha256() + positions = {0, len(instructions)//4, len(instructions)//2, 3*len(instructions)//4, len(instructions)} + gauss_checks, matrices = 0, [identity(width)] if len(factors) <= 8 else [] + inverses = [identity(width)] if matrices else [] + for j, op in enumerate(instructions, 1): + factor = factors[op[2]] + prefix_step(P, factor, op) + inverse_step(inverse, factor, op) + np, ni = norm(P), norm(inverse) + need(np <= bound and ni <= bound, "prefix norm bound") + maximum, inverse_maximum = max(maximum, np), max(inverse_maximum, ni) + stream.update(json.dumps([j, np, ni], separators=(',', ':')).encode()+b'\n') + if j in positions: + need(gauss_inverse(P) == inverse, "independent inverse-prefix mismatch") + gauss_checks += 1 + if matrices: + matrices.append([row[:] for row in P]) + inverses.append([row[:] for row in inverse]) + product = identity(2) + for factor in factors: + product = multiply(factor, product) + endpoint = identity(width) + for i in range(2): + for j in range(2): + endpoint[2+i][j] = sign*product[i][j] + need(P == endpoint, "ideal product or dirty restoration mismatch") + need(multiply(P, inverse) == identity(width), "final inverse mismatch") + subwords, subword_maximum = 0, 1 + if matrices: + for first in range(len(instructions)): + direct = identity(width) + for last in range(first+1, len(instructions)+1): + op = instructions[last-1] + prefix_step(direct, factors[op[2]], op) + need(direct == multiply(matrices[last], inverses[first]), "propagator identity") + value = norm(direct) + need(value <= bound*bound, "subword norm bound") + subword_maximum = max(subword_maximum, value) + subwords += 1 + return dict(leaf_calls=len(instructions), prefix_maximum=maximum, + inverse_prefix_maximum=inverse_maximum, prefix_stream_sha256=stream.hexdigest(), + gaussian_inverse_checks=gauss_checks, subwords_checked=subwords, + subword_maximum=subword_maximum, all_columns_and_dirty_restoration=True) + + +def vendor_word(vendor, n, sign): + """Observe the immutable predecessor dispatcher with its leaf replaced by a recorder.""" + arrays = [[vendor.c.ZERO] for _ in range(2+(n-1).bit_length())] + ids = {id(a): i for i, a in enumerate(arrays)} + result = [] + + def record(x, y, factor, phases, beta, bits, direction, q, stats): + result.append((ids[id(x)], ids[id(y)], factor, q)) + + saved = vendor.leaf + try: + vendor.leaf = record + vendor.compose(*arrays[:2], list(range(n)), arrays[2:], [vendor.c.ONE], Q(1, 2), 8, 1, sign) + finally: + vendor.leaf = saved + return result diff --git a/research/dirty-cubic-precision/verify.py b/research/dirty-cubic-precision/verify.py new file mode 100644 index 0000000000..7eb01fa17c --- /dev/null +++ b/research/dirty-cubic-precision/verify.py @@ -0,0 +1,79 @@ +"""Standalone source-bound replay. Standard library, Python 3.11 or later.""" +import argparse,hashlib,importlib.util,json,sys +from pathlib import Path +P=Path(__file__).resolve().parent +sys.dont_write_bytecode=True + +def canonical(value):return json.dumps(value,sort_keys=True,separators=(',',':')) +def need(ok,label): + if not ok:raise ValueError(label) +def load(name,path): + s=importlib.util.spec_from_file_location(name,path);m=importlib.util.module_from_spec(s);s.loader.exec_module(m);return m + +def bindings(authoring=False): + manifest=P/'MANIFEST.json' + need(manifest.exists() or authoring,'missing package manifest') + if manifest.exists(): + record=json.loads(manifest.read_text());files=record['files'] + actual={str(f.relative_to(P)) for f in P.rglob('*') if f.is_file() and f!=manifest} + need(set(files)==actual,'package file coverage') + for name,sha in files.items(): + need(not Path(name).is_absolute() and '..' not in Path(name).parts,'relative package path') + need(hashlib.sha256((P/name).read_bytes()).hexdigest()==sha,'package hash: '+name) + sources=json.loads((P/'SOURCES.json').read_text()) + need(len(sources['files'])==22,'source inventory') + for row in sources['files']: + path=row['path'];need(not Path(path).is_absolute() and '..' not in Path(path).parts,'relative source path') + raw=(P/path).read_bytes() + need(hashlib.sha256(raw).hexdigest()==row['sha256'],'retained source SHA: '+path) + blob=b'blob '+str(len(raw)).encode()+b'\0'+raw + need(hashlib.sha1(blob).hexdigest()==row['git_blob'],'retained source Git object: '+path) + return dict(base=sources['base'],files=len(sources['files']),source_pins_sha256=hashlib.sha256((P/'SOURCES.json').read_bytes()).hexdigest()) + +def calculate(): + core=load('dirty_cubic_core',P/'core.py');symbolic=load('dirty_free_algebra',P/'symbolic.py') + algebra=load('dirty_algebra_checks',P/'check_algebra.py');budget_check=load('independent_budget',P/'check_budget.py') + numeric=load('dirty_numeric',P/'numeric.py') + rows=[] + for r in range(3,513): + if not core.primepower(r):continue + for p in (1,32,128,1024,1048576): + for m in (0,20,1024): + for incoming in (0,160,1048576): + row=core.uniform(r,p,m,incoming);core.check_uniform(row);rows.append(row) + budgets=budget_check.check(rows);print('PASS uniform budgets',len(rows),flush=True) + free=[] + for n in list(range(1,65))+[95,127,128,129,191,255,256]: + for sign in [1,-1]:free.append(symbolic.run(n,sign)) + print('PASS free polynomial prefixes',len(free),flush=True) + dense=algebra.check();print('PASS frozen words, dense paths and controls',flush=True) + rounded=[] + for data in json.loads((P/'vendor/628/FACTORS.json').read_text()): + state=numeric.v.w.k.certify(data) + for length in [1,2,3,8]: + for direction in [-1,1]: + rounded.append(numeric.evaluate(state,length,direction,11 if direction==1 else -7)) + print('PASS full-grid dirty kernel',state['radix'],state['embedding'],flush=True) + need(all(r['all_input_low_bits_odd'] and r['nonzero_rounding'] for r in rounded),'full-grid and nonzero error coverage') + return dict(status='PASS_DIRTY_CUBIC_PRECISION',kappa='unchanged',budgets=budgets, + symbolic=free,algebra=dense,rounded_kernels=rounded, + scope='Sufficient cubic precision for balanced arbitrary-dirty cyclic inverse arithmetic; inherited analytic/preparation/leaf hypotheses, no common-label or multiplication-exponent claim.') + +def main(): + ap=argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write',type=Path,help='authoring: create a fresh mathematical receipt; no overwrite') + ap.add_argument('--out',type=Path,help='verify the committed receipt and also write a fresh copy') + ap.add_argument('--bindings-only',action='store_true',help='source and package checks only; does not execute mathematics') + args=ap.parse_args();need(sum(bool(x) for x in (args.write,args.out,args.bindings_only))<=1,'choose one mode') + destination=args.write or args.out + if destination:need(not destination.exists(),'receipt already exists') + pins=bindings(authoring=args.write is not None) + if args.bindings_only: + print('PASS_PACKAGE_BINDINGS sources='+str(pins['files']));return + result=calculate();result['sources']=pins + if not args.write:need(canonical(result)==canonical(json.loads((P/'EXPECTED.json').read_text())),'mathematical receipt mismatch') + if destination: + with destination.open('x') as f:f.write(json.dumps(result,indent=2,sort_keys=True)+'\n') + print('PASS_DIRTY_CUBIC_PRECISION budgets='+str(result['budgets']['cases'])+' symbolic='+str(len(result['symbolic']))+' rounded='+str(len(result['rounded_kernels']))+' kappa=unchanged') + +if __name__=='__main__':main()