From 914a53a2300a1c2ea9ece15022e3f4d6c6be6272 Mon Sep 17 00:00:00 2001 From: Cinna Davis <1337isnot1337@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:07:46 -0500 Subject: [PATCH 1/7] Construct query-thinned productive controllers at conditional kappa 0.00296 --- .../BIT-CONTROLLER.json | 2175 ++++++ .../COMPLEX-CONTROLLER.json | 5801 +++++++++++++++++ research/query-thinned-controllers/PROOF.md | 278 + research/query-thinned-controllers/README.md | 39 + .../query-thinned-controllers/RESULT.json | 356 + .../query-thinned-controllers/SOURCES.json | 120 + research/query-thinned-controllers/TASK.json | 86 + .../query-thinned-controllers/VALIDATION.md | 43 + .../query-thinned-controllers/VERIFY.json | 36 + .../query-thinned-controllers/controller.py | 208 + research/query-thinned-controllers/verify.py | 202 + 11 files changed, 9344 insertions(+) create mode 100644 research/query-thinned-controllers/BIT-CONTROLLER.json create mode 100644 research/query-thinned-controllers/COMPLEX-CONTROLLER.json create mode 100644 research/query-thinned-controllers/PROOF.md create mode 100644 research/query-thinned-controllers/README.md create mode 100644 research/query-thinned-controllers/RESULT.json create mode 100644 research/query-thinned-controllers/SOURCES.json create mode 100644 research/query-thinned-controllers/TASK.json create mode 100644 research/query-thinned-controllers/VALIDATION.md create mode 100644 research/query-thinned-controllers/VERIFY.json create mode 100644 research/query-thinned-controllers/controller.py create mode 100644 research/query-thinned-controllers/verify.py diff --git a/research/query-thinned-controllers/BIT-CONTROLLER.json b/research/query-thinned-controllers/BIT-CONTROLLER.json new file mode 100644 index 0000000000..89c400d597 --- /dev/null +++ b/research/query-thinned-controllers/BIT-CONTROLLER.json @@ -0,0 +1,2175 @@ +{ + "ambient_rank": 127, + "boundaries": { + "boundary_unit_ADDs_per_port": 160, + "coefficient_projectors": { + "12884901889": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1073741824, + 2147483648 + ], + "1367": [ + 1280, + 0, + 1280, + 0, + 1280, + 0, + 1280, + 0, + 1280, + 682, + 0, + 682, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "13958643713": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 268435456, + 536870912, + 0, + 0 + ], + "14227079169": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 67108864, + 134217728, + 0, + 0, + 0, + 0 + ], + "14294188033": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16777216, + 33554432, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "14310965249": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4194304, + 8388608, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "14315159553": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1048576, + 2097152, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "14316208129": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 262144, + 524288, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "14316470273": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 65536, + 131072, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "14316557655": [ + 16384, + 0, + 16384, + 0, + 16384, + 0, + 16384, + 0, + 16384, + 0, + 16384, + 0, + 16384, + 0, + 16384, + 43690, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "21847": [ + 20480, + 0, + 20480, + 0, + 20480, + 0, + 20480, + 0, + 20480, + 0, + 20480, + 0, + 20480, + 10922, + 0, + 10922, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "23": [ + 20, + 0, + 20, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "343": [ + 320, + 0, + 320, + 0, + 320, + 0, + 320, + 170, + 0, + 170, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "5463": [ + 5120, + 0, + 5120, + 0, + 5120, + 0, + 5120, + 0, + 5120, + 0, + 5120, + 2730, + 0, + 2730, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "7": [ + 5, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "87": [ + 80, + 0, + 80, + 0, + 80, + 42, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "diagonal_monomials": [ + 7, + 7, + 23, + 23, + 87, + 87, + 343, + 343, + 1367, + 1367, + 5463, + 5463, + 21847, + 21847, + 12884901889, + 12884901889, + 13958643713, + 13958643713, + 14227079169, + 14227079169, + 14294188033, + 14294188033, + 14310965249, + 14310965249, + 14315159553, + 14315159553, + 14316208129, + 14316208129, + 14316470273, + 14316470273, + 14316557655, + 14316557655 + ], + "full_coefficient_endpoint_sha256": "0164c424ad261c955e105330fcec5942d9a863d1b6030f70e786f5cdafb2acef", + "left_program": [ + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 21, + 25 + ], + [ + "SWAP", + 20, + 24 + ], + [ + "SWAP", + 19, + 27 + ], + [ + "SWAP", + 18, + 26 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 28 + ], + [ + "SWAP", + 15, + 30 + ], + [ + "ADD", + 12, + 14 + ], + [ + "ADD", + 10, + 14 + ], + [ + "ADD", + 8, + 14 + ], + [ + "ADD", + 6, + 14 + ], + [ + "ADD", + 4, + 14 + ], + [ + "ADD", + 2, + 14 + ], + [ + "ADD", + 0, + 14 + ], + [ + "SWAP", + 14, + 31 + ], + [ + "ADD", + 30, + 13 + ], + [ + "ADD", + 10, + 12 + ], + [ + "ADD", + 8, + 12 + ], + [ + "ADD", + 6, + 12 + ], + [ + "ADD", + 4, + 12 + ], + [ + "ADD", + 2, + 12 + ], + [ + "ADD", + 0, + 12 + ], + [ + "SWAP", + 12, + 13 + ], + [ + "ADD", + 30, + 11 + ], + [ + "ADD", + 12, + 11 + ], + [ + "ADD", + 8, + 10 + ], + [ + "ADD", + 6, + 10 + ], + [ + "ADD", + 4, + 10 + ], + [ + "ADD", + 2, + 10 + ], + [ + "ADD", + 0, + 10 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "ADD", + 30, + 9 + ], + [ + "ADD", + 12, + 9 + ], + [ + "ADD", + 10, + 9 + ], + [ + "ADD", + 6, + 8 + ], + [ + "ADD", + 4, + 8 + ], + [ + "ADD", + 2, + 8 + ], + [ + "ADD", + 0, + 8 + ], + [ + "SWAP", + 8, + 9 + ], + [ + "ADD", + 30, + 7 + ], + [ + "ADD", + 12, + 7 + ], + [ + "ADD", + 10, + 7 + ], + [ + "ADD", + 8, + 7 + ], + [ + "ADD", + 4, + 6 + ], + [ + "ADD", + 2, + 6 + ], + [ + "ADD", + 0, + 6 + ], + [ + "SWAP", + 6, + 7 + ], + [ + "ADD", + 30, + 5 + ], + [ + "ADD", + 12, + 5 + ], + [ + "ADD", + 10, + 5 + ], + [ + "ADD", + 8, + 5 + ], + [ + "ADD", + 6, + 5 + ], + [ + "ADD", + 2, + 4 + ], + [ + "ADD", + 0, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 30, + 3 + ], + [ + "ADD", + 12, + 3 + ], + [ + "ADD", + 10, + 3 + ], + [ + "ADD", + 8, + 3 + ], + [ + "ADD", + 6, + 3 + ], + [ + "ADD", + 4, + 3 + ], + [ + "ADD", + 0, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 30, + 1 + ], + [ + "ADD", + 12, + 1 + ], + [ + "ADD", + 10, + 1 + ], + [ + "ADD", + 8, + 1 + ], + [ + "ADD", + 6, + 1 + ], + [ + "ADD", + 4, + 1 + ], + [ + "ADD", + 2, + 1 + ] + ], + "left_rows": [ + 5, + 2, + 10, + 20, + 42, + 80, + 170, + 320, + 682, + 1280, + 2730, + 5120, + 10922, + 20480, + 1073741824, + 2147483648, + 268435456, + 536870912, + 67108864, + 134217728, + 16777216, + 33554432, + 4194304, + 8388608, + 1048576, + 2097152, + 262144, + 524288, + 65536, + 131072, + 43690, + 16384 + ], + "right_program": [ + [ + "ADD", + 13, + 31 + ], + [ + "SWAP", + 30, + 31 + ], + [ + "SWAP", + 21, + 25 + ], + [ + "SWAP", + 20, + 24 + ], + [ + "SWAP", + 19, + 27 + ], + [ + "SWAP", + 18, + 26 + ], + [ + "SWAP", + 17, + 29 + ], + [ + "SWAP", + 16, + 28 + ], + [ + "SWAP", + 15, + 31 + ], + [ + "SWAP", + 14, + 30 + ], + [ + "ADD", + 11, + 13 + ], + [ + "ADD", + 15, + 12 + ], + [ + "SWAP", + 12, + 13 + ], + [ + "ADD", + 9, + 11 + ], + [ + "ADD", + 13, + 10 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "ADD", + 7, + 9 + ], + [ + "ADD", + 11, + 8 + ], + [ + "SWAP", + 8, + 9 + ], + [ + "ADD", + 5, + 7 + ], + [ + "ADD", + 9, + 6 + ], + [ + "SWAP", + 6, + 7 + ], + [ + "ADD", + 3, + 5 + ], + [ + "ADD", + 7, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 0, + 3 + ], + [ + "ADD", + 5, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 1 + ] + ], + "right_rows": [ + 2147494569, + 2, + 2147494568, + 6, + 2147494560, + 20, + 2147494528, + 80, + 2147494400, + 320, + 2147493888, + 1280, + 2147491840, + 5120, + 2147483648, + 1073745920, + 268435456, + 536870912, + 67108864, + 134217728, + 16777216, + 33554432, + 4194304, + 8388608, + 1048576, + 2097152, + 262144, + 524288, + 65536, + 131072, + 16384, + 32768 + ] + }, + "diagonal": [ + 7, + 7, + 23, + 23, + 87, + 87, + 343, + 343, + 1367, + 1367, + 5463, + 5463, + 21847, + 21847, + 12884901889, + 12884901889, + 13958643713, + 13958643713, + 14227079169, + 14227079169, + 14294188033, + 14294188033, + 14310965249, + 14310965249, + 14315159553, + 14315159553, + 14316208129, + 14316208129, + 14316470273, + 14316470273, + 14316557655, + 14316557655 + ], + "invoice": { + "main": { + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "127": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "2": 24156, + "3": 1422, + "4": 792, + "5": 1836, + "6": 198, + "7": 342, + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "8": 7902, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "127": 222 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "keep_mask": 35047648968703, + "kind": "bit", + "pairs": 16, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2 + ], + [ + "ADD", + 3, + 1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2 + ], + [ + "ADD", + 3, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4 + ], + [ + "ADD", + 5, + 3 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4 + ], + [ + "ADD", + 5, + 3 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6 + ], + [ + "ADD", + 7, + 5 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6 + ], + [ + "ADD", + 7, + 5 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8 + ], + [ + "ADD", + 9, + 7 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8 + ], + [ + "ADD", + 9, + 7 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10 + ], + [ + "ADD", + 11, + 9 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10 + ], + [ + "ADD", + 11, + 9 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12 + ], + [ + "ADD", + 13, + 11 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12 + ], + [ + "ADD", + 13, + 11 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14 + ], + [ + "ADD", + 15, + 13 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14 + ], + [ + "ADD", + 15, + 13 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "ADD", + 14, + 16 + ], + [ + "ADD", + 17, + 15 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16 + ], + [ + "ADD", + 17, + 15 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18 + ], + [ + "ADD", + 19, + 17 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18 + ], + [ + "ADD", + 19, + 17 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20 + ], + [ + "ADD", + 21, + 19 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20 + ], + [ + "ADD", + 21, + 19 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22 + ], + [ + "ADD", + 23, + 21 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22 + ], + [ + "ADD", + 23, + 21 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24 + ], + [ + "ADD", + 25, + 23 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24 + ], + [ + "ADD", + 25, + 23 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26 + ], + [ + "ADD", + 27, + 25 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26 + ], + [ + "ADD", + 27, + 25 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28 + ], + [ + "ADD", + 29, + 27 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28 + ], + [ + "ADD", + 29, + 27 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30 + ], + [ + "ADD", + 31, + 29 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30 + ], + [ + "ADD", + 31, + 29 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "LOCAL", + 32, + 15, + false + ], + [ + "IDLE", + 7, + [ + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 32 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 32 + ] + ], + [ + "ADD", + 30, + 28 + ], + [ + "ADD", + 29, + 31 + ], + [ + "ADD", + 28, + 26 + ], + [ + "ADD", + 27, + 29 + ], + [ + "ADD", + 26, + 24 + ], + [ + "ADD", + 25, + 27 + ], + [ + "ADD", + 24, + 22 + ], + [ + "ADD", + 23, + 25 + ], + [ + "ADD", + 22, + 20 + ], + [ + "ADD", + 21, + 23 + ], + [ + "ADD", + 20, + 18 + ], + [ + "ADD", + 19, + 21 + ], + [ + "ADD", + 18, + 16 + ], + [ + "ADD", + 17, + 19 + ], + [ + "ADD", + 16, + 14 + ], + [ + "ADD", + 15, + 17 + ], + [ + "ADD", + 14, + 12 + ], + [ + "ADD", + 13, + 15 + ], + [ + "ADD", + 12, + 10 + ], + [ + "ADD", + 11, + 13 + ], + [ + "ADD", + 10, + 8 + ], + [ + "ADD", + 9, + 11 + ], + [ + "ADD", + 8, + 6 + ], + [ + "ADD", + 7, + 9 + ], + [ + "ADD", + 6, + 4 + ], + [ + "ADD", + 5, + 7 + ], + [ + "ADD", + 4, + 2 + ], + [ + "ADD", + 3, + 5 + ], + [ + "ADD", + 2, + 0 + ], + [ + "ADD", + 1, + 3 + ], + [ + "SWAP", + 0, + 1 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "SWAP", + 6, + 7 + ], + [ + "SWAP", + 8, + 9 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 12, + 13 + ], + [ + "SWAP", + 14, + 15 + ], + [ + "SWAP", + 16, + 17 + ], + [ + "SWAP", + 18, + 19 + ], + [ + "SWAP", + 20, + 21 + ], + [ + "SWAP", + 22, + 23 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "SWAP", + 26, + 27 + ], + [ + "SWAP", + 28, + 29 + ], + [ + "SWAP", + 30, + 31 + ] + ], + "prefix_pairs": 7 +} diff --git a/research/query-thinned-controllers/COMPLEX-CONTROLLER.json b/research/query-thinned-controllers/COMPLEX-CONTROLLER.json new file mode 100644 index 0000000000..39318f6ad9 --- /dev/null +++ b/research/query-thinned-controllers/COMPLEX-CONTROLLER.json @@ -0,0 +1,5801 @@ +{ + "ambient_rank": 153, + "boundaries": { + "left": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "-1", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "left_program": [ + [ + "SWAP", + 29, + 31 + ], + [ + "SWAP", + 28, + 29 + ], + [ + "SWAP", + 27, + 30 + ], + [ + "SWAP", + 25, + 27 + ], + [ + "SWAP", + 24, + 31 + ], + [ + "SWAP", + 23, + 27 + ], + [ + "SWAP", + 22, + 27 + ], + [ + "SWAP", + 21, + 23 + ], + [ + "SWAP", + 20, + 30 + ], + [ + "SWAP", + 19, + 24 + ], + [ + "SWAP", + 18, + 28 + ], + [ + "SWAP", + 17, + 33 + ], + [ + "ADD", + 14, + 16, + "1" + ], + [ + "ADD", + 12, + 16, + "-1" + ], + [ + "ADD", + 10, + 16, + "1" + ], + [ + "ADD", + 8, + 16, + "-1" + ], + [ + "ADD", + 6, + 16, + "1" + ], + [ + "ADD", + 4, + 16, + "-1" + ], + [ + "ADD", + 2, + 16, + "1" + ], + [ + "ADD", + 0, + 16, + "-1" + ], + [ + "ADD", + 33, + 15, + "-1" + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "SWAP", + 15, + 32 + ], + [ + "ADD", + 12, + 14, + "1" + ], + [ + "ADD", + 10, + 14, + "-1" + ], + [ + "ADD", + 8, + 14, + "1" + ], + [ + "ADD", + 6, + 14, + "-1" + ], + [ + "ADD", + 4, + 14, + "1" + ], + [ + "ADD", + 2, + 14, + "-1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 33, + 13, + "1" + ], + [ + "ADD", + 32, + 13, + "1" + ], + [ + "SWAP", + 13, + 31 + ], + [ + "ADD", + 10, + 12, + "1" + ], + [ + "ADD", + 8, + 12, + "-1" + ], + [ + "ADD", + 6, + 12, + "1" + ], + [ + "ADD", + 4, + 12, + "-1" + ], + [ + "ADD", + 2, + 12, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "SWAP", + 12, + 14 + ], + [ + "ADD", + 33, + 11, + "-1" + ], + [ + "ADD", + 32, + 11, + "-1" + ], + [ + "ADD", + 31, + 11, + "-1" + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "SWAP", + 11, + 30 + ], + [ + "ADD", + 8, + 10, + "1" + ], + [ + "ADD", + 6, + 10, + "-1" + ], + [ + "ADD", + 4, + 10, + "1" + ], + [ + "ADD", + 2, + 10, + "-1" + ], + [ + "ADD", + 0, + 10, + "1" + ], + [ + "SWAP", + 10, + 13 + ], + [ + "ADD", + 33, + 9, + "1" + ], + [ + "ADD", + 32, + 9, + "1" + ], + [ + "ADD", + 31, + 9, + "1" + ], + [ + "ADD", + 30, + 9, + "1" + ], + [ + "SWAP", + 9, + 29 + ], + [ + "ADD", + 6, + 8, + "1" + ], + [ + "ADD", + 4, + 8, + "-1" + ], + [ + "ADD", + 2, + 8, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "SWAP", + 8, + 12 + ], + [ + "ADD", + 33, + 7, + "-1" + ], + [ + "ADD", + 32, + 7, + "-1" + ], + [ + "ADD", + 31, + 7, + "-1" + ], + [ + "ADD", + 30, + 7, + "-1" + ], + [ + "ADD", + 29, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SWAP", + 7, + 28 + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 0, + 6, + "1" + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 33, + 5, + "1" + ], + [ + "ADD", + 32, + 5, + "1" + ], + [ + "ADD", + 31, + 5, + "1" + ], + [ + "ADD", + 30, + 5, + "1" + ], + [ + "ADD", + 29, + 5, + "1" + ], + [ + "ADD", + 28, + 5, + "1" + ], + [ + "SWAP", + 5, + 27 + ], + [ + "ADD", + 2, + 4, + "1" + ], + [ + "ADD", + 0, + 4, + "-1" + ], + [ + "SWAP", + 4, + 10 + ], + [ + "ADD", + 33, + 3, + "-1" + ], + [ + "ADD", + 32, + 3, + "-1" + ], + [ + "ADD", + 31, + 3, + "-1" + ], + [ + "ADD", + 30, + 3, + "-1" + ], + [ + "ADD", + 29, + 3, + "-1" + ], + [ + "ADD", + 28, + 3, + "-1" + ], + [ + "ADD", + 27, + 3, + "-1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 26 + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SWAP", + 2, + 9 + ], + [ + "ADD", + 33, + 1, + "1" + ], + [ + "ADD", + 32, + 1, + "1" + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 30, + 1, + "1" + ], + [ + "ADD", + 29, + 1, + "1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 26, + 1, + "1" + ], + [ + "SWAP", + 1, + 25 + ], + [ + "SWAP", + 0, + 8 + ] + ], + "right": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "-1", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "-1", + "1" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "1", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "right_program": [ + [ + "ADD", + 33, + 32, + "-1" + ], + [ + "SCALE", + 32, + "-1" + ], + [ + "ADD", + 32, + 31, + "1" + ], + [ + "ADD", + 30, + 31, + "-1" + ], + [ + "ADD", + 29, + 31, + "-1" + ], + [ + "ADD", + 28, + 31, + "-1" + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 30, + "-1" + ], + [ + "ADD", + 29, + 30, + "-1" + ], + [ + "ADD", + 28, + 30, + "-1" + ], + [ + "SCALE", + 30, + "-1" + ], + [ + "ADD", + 31, + 29, + "-1" + ], + [ + "ADD", + 28, + 29, + "-1" + ], + [ + "SWAP", + 29, + 30 + ], + [ + "ADD", + 31, + 28, + "-1" + ], + [ + "SCALE", + 28, + "-1" + ], + [ + "ADD", + 31, + 27, + "1" + ], + [ + "ADD", + 26, + 27, + "-1" + ], + [ + "ADD", + 25, + 27, + "-1" + ], + [ + "SWAP", + 27, + 30 + ], + [ + "ADD", + 30, + 26, + "1" + ], + [ + "ADD", + 25, + 26, + "-1" + ], + [ + "SCALE", + 26, + "-1" + ], + [ + "ADD", + 30, + 25, + "1" + ], + [ + "SWAP", + 25, + 26 + ], + [ + "SWAP", + 24, + 29 + ], + [ + "SWAP", + 23, + 25 + ], + [ + "SWAP", + 22, + 23 + ], + [ + "SWAP", + 21, + 25 + ], + [ + "SWAP", + 20, + 27 + ], + [ + "SWAP", + 19, + 29 + ], + [ + "SWAP", + 18, + 31 + ], + [ + "SWAP", + 17, + 33 + ], + [ + "ADD", + 15, + 16, + "-1" + ], + [ + "ADD", + 14, + 15, + "-1" + ], + [ + "SWAP", + 15, + 32 + ], + [ + "ADD", + 13, + 14, + "-1" + ], + [ + "SWAP", + 14, + 32 + ], + [ + "ADD", + 12, + 13, + "-1" + ], + [ + "SWAP", + 13, + 24 + ], + [ + "ADD", + 11, + 12, + "-1" + ], + [ + "SWAP", + 12, + 32 + ], + [ + "ADD", + 10, + 11, + "-1" + ], + [ + "SWAP", + 11, + 20 + ], + [ + "ADD", + 9, + 10, + "-1" + ], + [ + "SWAP", + 10, + 24 + ], + [ + "ADD", + 8, + 9, + "-1" + ], + [ + "SWAP", + 9, + 28 + ], + [ + "SWAP", + 8, + 32 + ], + [ + "SWAP", + 7, + 18 + ], + [ + "SWAP", + 6, + 20 + ], + [ + "SWAP", + 5, + 22 + ], + [ + "SWAP", + 4, + 24 + ], + [ + "SWAP", + 3, + 26 + ], + [ + "SWAP", + 2, + 28 + ], + [ + "SWAP", + 1, + 30 + ], + [ + "SWAP", + 0, + 32 + ] + ] + }, + "diagonal": [ + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + -1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ], + [ + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 0, + 1, + 1 + ] + ], + "invoice": { + "main": { + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448, + "153": 224 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "2": 13547, + "3": 4256, + "4": 1938, + "5": 380, + "8": 152, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "5": 532, + "6": 342, + "7": 1064, + "8": 1767, + "9": 4047, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448, + "153": 224 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "keep_mask": 280378328416255, + "kind": "complex", + "pairs": 17, + "physical_events": [ + [ + "LOCAL", + 0, + 0, + false + ], + [ + "LOCAL", + 1, + 0, + true + ], + [ + "IDLE", + 1, + [ + 0, + 1 + ] + ], + [ + "ADD", + 0, + 2, + 1 + ], + [ + "ADD", + 3, + 1, + -1 + ], + [ + "QUERY_SHEAR", + 2, + 0, + false + ], + [ + "ADD", + 0, + 2, + -1 + ], + [ + "ADD", + 3, + 1, + 1 + ], + [ + "LOCAL", + 3, + 1, + true + ], + [ + "IDLE", + 2, + [ + 0, + 1, + 3 + ] + ], + [ + "ADD", + 2, + 4, + 1 + ], + [ + "ADD", + 5, + 3, + -1 + ], + [ + "QUERY_SHEAR", + 4, + 1, + false + ], + [ + "ADD", + 2, + 4, + -1 + ], + [ + "ADD", + 5, + 3, + 1 + ], + [ + "LOCAL", + 5, + 2, + true + ], + [ + "IDLE", + 3, + [ + 0, + 1, + 3, + 5 + ] + ], + [ + "ADD", + 4, + 6, + 1 + ], + [ + "ADD", + 7, + 5, + -1 + ], + [ + "QUERY_SHEAR", + 6, + 2, + false + ], + [ + "ADD", + 4, + 6, + -1 + ], + [ + "ADD", + 7, + 5, + 1 + ], + [ + "LOCAL", + 7, + 3, + true + ], + [ + "IDLE", + 4, + [ + 0, + 1, + 3, + 5, + 7 + ] + ], + [ + "ADD", + 6, + 8, + 1 + ], + [ + "ADD", + 9, + 7, + -1 + ], + [ + "QUERY_SHEAR", + 8, + 3, + false + ], + [ + "ADD", + 6, + 8, + -1 + ], + [ + "ADD", + 9, + 7, + 1 + ], + [ + "LOCAL", + 9, + 4, + true + ], + [ + "IDLE", + 5, + [ + 0, + 1, + 3, + 5, + 7, + 9 + ] + ], + [ + "ADD", + 8, + 10, + 1 + ], + [ + "ADD", + 11, + 9, + -1 + ], + [ + "QUERY_SHEAR", + 10, + 4, + false + ], + [ + "ADD", + 8, + 10, + -1 + ], + [ + "ADD", + 11, + 9, + 1 + ], + [ + "LOCAL", + 11, + 5, + true + ], + [ + "IDLE", + 6, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11 + ] + ], + [ + "ADD", + 10, + 12, + 1 + ], + [ + "ADD", + 13, + 11, + -1 + ], + [ + "QUERY_SHEAR", + 12, + 5, + false + ], + [ + "ADD", + 10, + 12, + -1 + ], + [ + "ADD", + 13, + 11, + 1 + ], + [ + "LOCAL", + 13, + 6, + true + ], + [ + "IDLE", + 7, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13 + ] + ], + [ + "ADD", + 12, + 14, + 1 + ], + [ + "ADD", + 15, + 13, + -1 + ], + [ + "QUERY_SHEAR", + 14, + 6, + false + ], + [ + "ADD", + 12, + 14, + -1 + ], + [ + "ADD", + 15, + 13, + 1 + ], + [ + "LOCAL", + 15, + 7, + true + ], + [ + "IDLE", + 8, + [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15 + ] + ], + [ + "ADD", + 14, + 16, + 1 + ], + [ + "ADD", + 17, + 15, + -1 + ], + [ + "QUERY_SHEAR", + 16, + 7, + false + ], + [ + "ADD", + 14, + 16, + -1 + ], + [ + "ADD", + 17, + 15, + 1 + ], + [ + "LOCAL", + 17, + 8, + true + ], + [ + "ADD", + 16, + 18, + 1 + ], + [ + "ADD", + 19, + 17, + -1 + ], + [ + "QUERY_SHEAR", + 18, + 8, + false + ], + [ + "ADD", + 16, + 18, + -1 + ], + [ + "ADD", + 19, + 17, + 1 + ], + [ + "LOCAL", + 19, + 9, + true + ], + [ + "ADD", + 18, + 20, + 1 + ], + [ + "ADD", + 21, + 19, + -1 + ], + [ + "QUERY_SHEAR", + 20, + 9, + false + ], + [ + "ADD", + 18, + 20, + -1 + ], + [ + "ADD", + 21, + 19, + 1 + ], + [ + "LOCAL", + 21, + 10, + true + ], + [ + "ADD", + 20, + 22, + 1 + ], + [ + "ADD", + 23, + 21, + -1 + ], + [ + "QUERY_SHEAR", + 22, + 10, + false + ], + [ + "ADD", + 20, + 22, + -1 + ], + [ + "ADD", + 23, + 21, + 1 + ], + [ + "LOCAL", + 23, + 11, + true + ], + [ + "ADD", + 22, + 24, + 1 + ], + [ + "ADD", + 25, + 23, + -1 + ], + [ + "QUERY_SHEAR", + 24, + 11, + false + ], + [ + "ADD", + 22, + 24, + -1 + ], + [ + "ADD", + 25, + 23, + 1 + ], + [ + "LOCAL", + 25, + 12, + true + ], + [ + "ADD", + 24, + 26, + 1 + ], + [ + "ADD", + 27, + 25, + -1 + ], + [ + "QUERY_SHEAR", + 26, + 12, + false + ], + [ + "ADD", + 24, + 26, + -1 + ], + [ + "ADD", + 27, + 25, + 1 + ], + [ + "LOCAL", + 27, + 13, + true + ], + [ + "ADD", + 26, + 28, + 1 + ], + [ + "ADD", + 29, + 27, + -1 + ], + [ + "QUERY_SHEAR", + 28, + 13, + false + ], + [ + "ADD", + 26, + 28, + -1 + ], + [ + "ADD", + 29, + 27, + 1 + ], + [ + "LOCAL", + 29, + 14, + true + ], + [ + "ADD", + 28, + 30, + 1 + ], + [ + "ADD", + 31, + 29, + -1 + ], + [ + "QUERY_SHEAR", + 30, + 14, + false + ], + [ + "ADD", + 28, + 30, + -1 + ], + [ + "ADD", + 31, + 29, + 1 + ], + [ + "LOCAL", + 31, + 15, + true + ], + [ + "ADD", + 30, + 32, + 1 + ], + [ + "ADD", + 33, + 31, + -1 + ], + [ + "QUERY_SHEAR", + 32, + 15, + false + ], + [ + "ADD", + 30, + 32, + -1 + ], + [ + "ADD", + 33, + 31, + 1 + ], + [ + "LOCAL", + 33, + 16, + true + ], + [ + "LOCAL", + 34, + 16, + false + ], + [ + "IDLE", + 8, + [ + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 9, + [ + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 10, + [ + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 11, + [ + 25, + 27, + 29, + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 12, + [ + 27, + 29, + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 13, + [ + 29, + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 14, + [ + 31, + 33, + 34 + ] + ], + [ + "IDLE", + 15, + [ + 33, + 34 + ] + ], + [ + "ADD", + 32, + 30, + 1 + ], + [ + "ADD", + 31, + 33, + -1 + ], + [ + "ADD", + 30, + 28, + 1 + ], + [ + "ADD", + 29, + 31, + -1 + ], + [ + "ADD", + 28, + 26, + 1 + ], + [ + "ADD", + 27, + 29, + -1 + ], + [ + "ADD", + 26, + 24, + 1 + ], + [ + "ADD", + 25, + 27, + -1 + ], + [ + "ADD", + 24, + 22, + 1 + ], + [ + "ADD", + 23, + 25, + -1 + ], + [ + "ADD", + 22, + 20, + 1 + ], + [ + "ADD", + 21, + 23, + -1 + ], + [ + "ADD", + 20, + 18, + 1 + ], + [ + "ADD", + 19, + 21, + -1 + ], + [ + "ADD", + 18, + 16, + 1 + ], + [ + "ADD", + 17, + 19, + -1 + ], + [ + "ADD", + 16, + 14, + 1 + ], + [ + "ADD", + 15, + 17, + -1 + ], + [ + "ADD", + 14, + 12, + 1 + ], + [ + "ADD", + 13, + 15, + -1 + ], + [ + "ADD", + 12, + 10, + 1 + ], + [ + "ADD", + 11, + 13, + -1 + ], + [ + "ADD", + 10, + 8, + 1 + ], + [ + "ADD", + 9, + 11, + -1 + ], + [ + "ADD", + 8, + 6, + 1 + ], + [ + "ADD", + 7, + 9, + -1 + ], + [ + "ADD", + 6, + 4, + 1 + ], + [ + "ADD", + 5, + 7, + -1 + ], + [ + "ADD", + 4, + 2, + 1 + ], + [ + "ADD", + 3, + 5, + -1 + ], + [ + "ADD", + 2, + 0, + 1 + ], + [ + "ADD", + 1, + 3, + -1 + ], + [ + "SIGNED_SWAP", + 0, + 1 + ], + [ + "SIGNED_SWAP", + 2, + 3 + ], + [ + "SIGNED_SWAP", + 4, + 5 + ], + [ + "SIGNED_SWAP", + 6, + 7 + ], + [ + "SIGNED_SWAP", + 8, + 9 + ], + [ + "SIGNED_SWAP", + 10, + 11 + ], + [ + "SIGNED_SWAP", + 12, + 13 + ], + [ + "SIGNED_SWAP", + 14, + 15 + ], + [ + "SIGNED_SWAP", + 16, + 17 + ], + [ + "SIGNED_SWAP", + 18, + 19 + ], + [ + "SIGNED_SWAP", + 20, + 21 + ], + [ + "SIGNED_SWAP", + 22, + 23 + ], + [ + "SIGNED_SWAP", + 24, + 25 + ], + [ + "SIGNED_SWAP", + 26, + 27 + ], + [ + "SIGNED_SWAP", + 28, + 29 + ], + [ + "SIGNED_SWAP", + 30, + 31 + ], + [ + "SIGNED_SWAP", + 32, + 33 + ] + ], + "prefix_pairs": 8 +} diff --git a/research/query-thinned-controllers/PROOF.md b/research/query-thinned-controllers/PROOF.md new file mode 100644 index 0000000000..9068f42989 --- /dev/null +++ b/research/query-thinned-controllers/PROOF.md @@ -0,0 +1,278 @@ +# Query-thinned productive controllers + +## Conditional result + +Under the retained native, whole-job matching, owned-erasure, tape, analytic, +precision and exact-recovery contracts of #4359/#4416, the construction below +gives + + T(n) = O(n (log n)^(1 - kappa)), kappa = 37/12500 = 0.00296. + +This is a new author-checked conditional construction. It is not an +unconditional theorem, a formal-kernel proof, a practical implementation or a +change to the selected record. It improves #4416/#4433's conditional 0.00268647 +by about 10.1818%, and the selected 0.0023 checkpoint by about 28.6957%. +Those percentages compare exponent savings, not running times. + +The new mechanism replaces selected full native invocations by copied +rank-one query shears. Losing their productive helpers is charged. Removing +their stage multipliers also removes the corresponding parts of every idle +transform and main target. These coupled changes improve the complete moment; +merely deleting a local bill would not. + +## 1. Exact local interfaces + +Retain the source local word's all-column interpretation. For complex data, +on each of 112 ports write Q for its central rank-one Gaussian and D_s for +the commuting fresh eight-axis multiplier at stage s. Stage zero instead +uses the source nine-axis multiplier times Q^-1. The forward and backward +physical local maps are + + D_s S_y(Q^-1), D_s S_x(-Q). + +The complete THREE-base supplier has independent helper targets + + {5:28, 6:18, 7:56, 8:93, 9:213} + +and unsplit paid profile + + {1:2487, 2:713, 3:224, 4:102, 5:20, 8:8}. + +Its 408 helpers are arbitrary original fields. The one sequentially reused +owned center receives no productive credit. These source words and their +all-column/phase evidence are retained unchanged; this contribution does not +repeat their full historical physical replay. + +For BIT, retain the PR589 local word on 111 ports and 439 arbitrary helpers. +Each helper target has rank 8, D_s has rank 7, Q is the port's rank-one +projector involution, and the paid profile is + + {1:1323, 2:1342, 3:79, 4:44, 5:102, 6:11, 7:19}. + +Its nine copied-center episodes remain in that profile. Its rational charts +and common-weight delayed-cover interpretation remain explicit premises. + +### The new query-only call + +To implement S_y(Q^-1) on arbitrary X,Y, clear one owned stream Z, copy X +into Z, perform Q^-1 on Z, add Z to Y, and erase Z. Return X unchanged and +Z zero. Backward uses Q and subtracts from X. Each port costs exactly one +paid rank-one job, plus the copy/add/erase and fixed matching/routing work. +There is no independent input or output credit for Z. + +For complex data Q^-1 is one positive Gaussian followed by its physical +Pauli translation: the Z4 phases -q and q+2q agree. It is not replaced by Q +using an order-two assumption. For BIT Q^-1=Q. The same construction at +column multiplicity f makes a rank-f request; this cost is never treated as +a scalar operation. Erasure is the inherited owned-stream erasure operation, +not a claim about reversible or dirty-borrowed erasure. + +## 2. The two actual finite controller words + +Start with the credited paired path controller, keeping all middle idle +windows and splitting the initial/terminal windows at a. Let p be the pair +count, with 2p+1 local stages. Keep the full native call at stages + + S = {0, 2p} union {1,3,...,2p-1}. + +Replace each other local call by its query-only shear. In every idle word, +remove those same stage multipliers. Every scalar bridge and signed exchange +remains in its original chronological place. Thus there are p+2 full native +calls and p-1 query shears. Thin stages have no fresh axes or helpers. + +`controller.py` constructs the words and constant scalar boundaries. The +verifier replays the emitted LOCAL, QUERY_SHEAR, IDLE, ADD and exchange events +directly, compares with the original polynomial specialized by D_s=1 on thin +stages, and checks every coefficient of L A R against the advertised diagonal. +The complex check is over rational Laurent polynomials, with all Q signs +retained. BIT has a separate exact binary group-ring factorization. + +Only two finite words are needed: + +| Family | p | a | Full native calls | Query shears | Active ambient rank | +|---|---:|---:|---:|---:|---:| +| Complex | 17 | 8 | 19 | 16 | 153 | +| BIT | 16 | 7 | 18 | 15 | 127 | + +Unused fresh blocks can be removed by an injective relabeling. All noninitial +complex native contacts occur on the same old-nine plus fresh-eight space; +other blocks are fixed spectators. Exact forward/inverse phase checks on +all 112 ports establish this contact independently of the number of stages. +The initial native call is unchanged. The binary rational 15-dimensional +charts are likewise checked on all 111 ports. Tensoring these identities with +I_f preserves them for each positive column multiplicity under the inherited +all-column implementation contract. + +For block rank d and port count v, the main targets are two v-field copies +of rank 1+d(p+2), and two v-field copies of rank 1+d(j+1) for j=1..a and +j=1..p-1-a. The corresponding whole idle ranks are d(j+1), each with 2v +calls. The old one-stage middle idles have become identities. In addition, +there are (p+2) fresh helper inventories, (p+2) native paid inventories, and +v(p-1) paid rank-one queries. Literal and formula-derived ledgers agree. + +All helper identities are allocated freshly per full invocation. The main +fields, helpers and suspended centers have distinct physical slots. Scalar +boundary changes are invertible, so independent arbitrary main inputs remain +independent. Thin copies introduce no new sources. Center/query ownership is +retained until the relevant call returns, and every matcher is undone. + +The exact invoices are in RESULT.json. Their basic resource counts are: + +| Family | Productive fields | Paid jobs | Productive rank mass | Paid rank mass | Surplus | +|---|---:|---:|---:|---:|---:| +| Complex | 11,560 | 72,902 | 258,271 | 257,471 | 800 | +| BIT | 11,454 | 57,555 | 217,506 | 216,753 | 753 | + +Both paid and target ranks overlap. They are not directly admitted to the +strict compiler. Raw numerical roots near 0.002960345565 and 0.003464248972 +were discovery aids; the argument uses the exact strict tests below. + +## 3. Charged tensor completion and splitting + +Apply #4416's chronological product construction and #4433's higher-moment +tail theorem to each new native unit. This is composition of actual programs: +copies are paused at the same paid position, a complete child unit runs on +distinct current owners, and it returns before any parent resumes. Correlated +values in distinct slots are allowed. No product of sums of operator matrices +is substituted for this schedule. + +Write T_t,P_t for the raw moments, B for the productive field count, +t=1-C, and choose cutoff c, target floor b, u>=C and integer power v. +After the product finishes, complete every rank K2^26*N^5, also avoiding the finite denominators and +rank witnesses, exceeds 256/(C0-C1)*N^5 and pays the complete fallback. + +Change the atom power to delta=0.004. With retained old ordinary saving +a_old=0.0000384599, the ordinary saving is exactly + + (1-delta)*C1+delta*a_old = 0.0034363538396 > 0.0034. + +Admit 0.0034. The linear adapter has saving delta>0.0034363538396; stock +is sublinear because delta<1-0.0034363538396. The old delta=0.003 fails +this adapter comparison and is explicitly rejected. All compiled dimensions, +role counts, routes, centers and leaf counts replace the old p3 constants in +the delayed-cover stock formulas. For fixed compiled N,B,P, the borrowed +digits remain O(w log e)=o(e), with w=ceil(e^0.004). + +Put kappa=0.00296, C=0.00296030, d=(C-kappa)/7, and + + complex_uniform = kappa+6d, b=kappa+5d, + a=kappa+4d, q=kappa+3d, + epsilon=1-d, beta=1-3d, r0=d/10, stop=layout=d. + +Use the admitted BIT saving 0.0034 in the unchanged nine-row outer ledger. +All 54 named strict predicates and the three retained functional predicates +pass. An additional functional predicate binds the new BIT atom explicitly, +beta*(1-0.004)>0. The smallest outer saving exceeds kappa by +629378373/4900000000000000. Old BIT admission, zero layout, closed epsilon, +closed complex slack and an unfunded endpoint each fail their intended checks. + +## 5. Finite constants, precision and scope + +No new operation is declared free. Raw scalar programs, signed swaps, copy/ +erase records, affine port charts and inverse routes are finite emitted lists. +The conservative raw scalar record bound is 10^9, above the checked local, +query and boundary bills. Every query adds its own paid job and its own +fixed routing records. Initial/end charts and target normalizers are retained. + +For a raw unit with productive count B, paid count P and scalar bound L0, +a v-fold chronological product has at most +L0*v*(B+P)^v nonrecursive records before final completion. Its old paid rank +mass is P1^v, and added completion rank is at most B^v*b^v. Bound all new +completion/splitting records by their integer rank masses, then multiply by +10*m^(2v)+10 to cover whole-job normalizers and inverse routes. This is a +constructive finite overestimate, not a claim that those movements vanish. +Allocate a distinct center to each simultaneously suspended instance; a +bound by the total expanded record count suffices. The integer compiler adds +only finitely many effective classes and clears their batch denominators. + +Apply the retained semantic-precision and stock prescriptions to these new +finite lists, coefficient heights, prefix row norms, owned centers and +matchers. They are fixed constants before the asymptotic input size varies. +All raw complex boundary coefficients are unit signed scalars; native dyadic +coefficients and BIT rational cover entries retain their pinned bounds. A +brute-force product of per-record row-mass bounds supplies an effective +prefix bound if a sharper bound is unnecessary. Increase the fixed precision +constant and fixed stock coefficient accordingly. The outer slack conditions +are strict, so absorbing these fixed constants does not change their powers. +This inherits the same all-column, physical tape, native movement/repair, +precision, analytic and recovery contracts as the reviewed source; it does +not independently prove that historical implementation stack. + +## 6. Sources, attribution, validation and next questions + +Canonical baseline: 3a23e9d9d2e67833515d1c60a17e966bcdcab43c, priority +revision 7. Refreshed main and PR checks are recorded in TASK.json. Live +overlap covered all open PR bodies and Discussion pages; sparse local README +coverage and closed-PR-body coverage are incomplete. No novelty theorem is +claimed. #4194's coded/clean local hybrid addresses a different interface; +this construction uses complete native calls and copied rank-one shears. + +Credit: zxv for the retained controller/native construction and higher-moment +tail proof (#4359/#4433); Jacob Alan Sussman for mixed-target integer flow +(#4268); Cinna Davis for the p7 paid-completion/native construction (#4416); +DreamingOfClouds, eumemic and their retained PR589/PR555 BIT lineage; +David Ganz, Jeremy Kothe, Rohan Arun, Marius-Paul Dumitrean, Erwan Secousses +and the native/outer contributors named in the unchanged source notices and +the selected contributor map. New query-thinning construction, proofs and +checks were prepared for Cinna Davis with substantial OpenAI Codex assistance. +Apache-2.0. No subagents were used. + +Reproduce with the registered command in README.md. Finite source, physical +operator, phase, interval, invoice and outer checks support this written +conditional proof; they do not constitute formal verification. Full old native +word replays, Lean and Docker were not rerun for this contribution. + +Open next questions, with first steps and blockers, are in TASK.json. The +next useful audit is the whole-job/owned-query lowering at arbitrary column +multiplicity. The next improvement question is a changed local query/native +alphabet or controller topology. A larger path census alone gives no global +optimality or assurance of a stronger complete construction. diff --git a/research/query-thinned-controllers/README.md b/research/query-thinned-controllers/README.md new file mode 100644 index 0000000000..6d1099e9a5 --- /dev/null +++ b/research/query-thinned-controllers/README.md @@ -0,0 +1,39 @@ +# Conditional κ = 0.00296 through query-thinned productive controllers + +The new construction replaces selected full native calls by paid rank-one +query shears, charging the lost productive helpers and removing the same +stage multipliers from the idle and main transforms. It gives an author-checked +conditional multiplication saving **κ = 37/12500 = 0.00296**, approximately +**10.18% above #4416/#4433's 0.00268647**. + +The complex controller uses 17 pairs, 19 full native calls and 16 query shears. +The accompanying BIT controller uses 16 pairs, 18 full calls and 15 query +shears, supporting a stronger ordinary BIT saving of 0.0034 after all cover +and atom-conversion charges. The complete outer ledger passes at κ=0.00296. + +[PROOF.md](PROOF.md) gives the native query implementation, chronological +product and paid completion, effective compiler ranks, changed BIT stock +parameters, full cost/precision obligations, attribution and conditional scope. +[RESULT.json](RESULT.json) records the exact arithmetic and rejection controls. +The two controller JSON files contain their actual emitted event lists and +constant scalar boundary programs. `controller.py` regenerates them; normal +verification directly replays them without repeating factor discovery. + +```sh +python3.12 -B scripts/research_package.py --package research/query-thinned-controllers +python3.12 -O -B research/query-thinned-controllers/verify.py +``` + +See VALIDATION.md for the exact executed environments and commands. + +This retains the reviewed source's all-column native, owned-erasure, +whole-job matching, fixed-tape, precision, analytic, prime and recovery +premises. It claims no unconditional theorem, formal verification, practical +speedup, global controller optimum or selected-frontier change. + +## Open next questions + +Open next questions are recorded in [TASK.json](TASK.json), with relevance, +first steps and blockers. Prepared for Cinna Davis with substantial OpenAI +Codex assistance; no subagents. Apache-2.0. Source attribution is in PROOF.md +and the unchanged pinned predecessor notices. diff --git a/research/query-thinned-controllers/RESULT.json b/research/query-thinned-controllers/RESULT.json new file mode 100644 index 0000000000..e0695152c9 --- /dev/null +++ b/research/query-thinned-controllers/RESULT.json @@ -0,0 +1,356 @@ +{ + "bit_invoice": { + "main": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 25479, + "14": 444, + "2": 24156, + "21": 444, + "28": 444, + "3": 1422, + "35": 444, + "4": 792, + "42": 444, + "49": 444, + "5": 1836, + "56": 444, + "6": 198, + "63": 222, + "7": 342 + }, + "paid_calls": 57555, + "productive_fields": 11454, + "rank_surplus": 753, + "raw_scalar_record_bound": 1000000000, + "targets": { + "127": 222, + "15": 444, + "22": 444, + "29": 444, + "36": 444, + "43": 444, + "50": 444, + "57": 444, + "64": 222, + "8": 7902 + }, + "thick_calls": 18, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 32 + ], + "thin_queries": 1665, + "whole_idle": { + "14": 444, + "21": 444, + "28": 444, + "35": 444, + "42": 444, + "49": 444, + "56": 444, + "63": 222 + } + }, + "bit_strictification": { + "alpha": { + "lower": "0.999995735238059506641600561767", + "upper": "0.999995735238059506641600561768" + }, + "compiler_H0": 3755884544, + "cutoff_base": 17, + "delta": { + "lower": "0.949707924144871179442776557218", + "upper": "0.949707924144871179442776557219" + }, + "gamma": { + "lower": "0.957429821066420278606254392110", + "upper": "0.957429821066420278606254392111" + }, + "normalized_surplus_lower": "68719461047/16845935476736", + "tail_exponent": "1/5", + "target_floor_base": 18, + "tensor_power": 1024, + "tested_saving": "173/50000", + "uniform_H1": 25986965159937, + "uniform_N": "2^25986965159937", + "uniform_saving": "3459/1000000", + "winning_word_materialized": false + }, + "complex_invoice": { + "main": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448 + }, + "owned_streams_reused_sequentially": 1, + "paid": { + "1": 49045, + "16": 448, + "2": 13547, + "24": 448, + "3": 4256, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 380, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 72902, + "productive_fields": 11560, + "rank_surplus": 800, + "raw_scalar_record_bound": 1000000000, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "5": 532, + "57": 448, + "6": 342, + "65": 448, + "7": 1064, + "73": 448, + "8": 1767, + "9": 4047 + }, + "thick_calls": 19, + "thick_stages": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "thin_queries": 1792, + "whole_idle": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + } + }, + "complex_strictification": { + "alpha": { + "lower": "0.999999952117240859760145478345", + "upper": "0.999999952117240859760145478346" + }, + "compiler_H0": 75415467350, + "cutoff_base": 20, + "delta": { + "lower": "0.941649713484853845388929204840", + "upper": "0.941649713484853845388929204841" + }, + "gamma": { + "lower": "0.967466409565147920980822933859", + "upper": "0.967466409565147920980822933860" + }, + "normalized_surplus_lower": "8589700209/251666829934592", + "tail_exponent": "1/5", + "target_floor_base": 21, + "tensor_power": 1024, + "tested_saving": "29603/10000000", + "uniform_H1": 10418370291022217, + "uniform_N": "2^10418370291022217", + "uniform_saving": "103609/35000000", + "winning_word_materialized": false + }, + "kappa": "37/12500", + "minimum_outer_margin_minus_kappa": "629378373/4900000000000000", + "native": { + "binary_charts": 111, + "complex_contacts_and_inverses": 896, + "owned_stream_restored_zero": true, + "thin_paid_rank_per_port": 1, + "thin_productive_credit": 0 + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "missing_layout": [ + "positive_layout_slack" + ], + "old_BIT_cap": [ + "actual_bit_above_effective" + ], + "unfunded_kappa": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "old_atom_rejected": true, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "17429997759/17500000000", + "fixed_halo_explicit_metadata_branch": "1347500003/17500000", + "new_BIT_row_stock_sublinear_in_active_group": "69789991027/70000000000", + "new_semantic_group_guard": "9/70000000" + }, + "margins": { + "boundary_algebraic_matrix": "14504839378373/4900000000000000", + "fused_gaussian": "14504838135119/4900000000000000", + "global_coordinate_router": "51803/17500000", + "group_bit_router": "3626262033773/1225000000000000", + "group_scans": "34999997/35000000", + "main_transform": "14504629378373/4900000000000000", + "microbox_face_corrections": "1347500003/17500000", + "polynomial_products": "69999997/70000000", + "sparse_union_movement": "2005129839378373/4900000000000000" + }, + "parameters": { + "a": "51803/17500000", + "b": "41443/14000000", + "beta": "69999991/70000000", + "bit_saving": "17/5000", + "cap_xi": "4455129629378373/4900000000000000", + "complex_uniform_saving": "103609/35000000", + "d": "3/70000000", + "epsilon": "69999997/70000000", + "kappa": "37/12500", + "lambda_": "19940797/20000000", + "lambda_prime": "69792791/70000000", + "layout": "3/70000000", + "q": "207209/70000000", + "r0": "3/700000000", + "stop": "3/70000000", + "tested_saving": "29603/10000000" + }, + "strict_checks": { + "actual_bit_above_effective": "7697/17500000", + "actual_logarithmic_gamma_guard": "3/70000000", + "actual_logarithmic_group_guard": "444870685621627/2450000000000000", + "alpha_logarithm_absorption": "3/700000000", + "boundary_algebraic_matrix_above_kappa": "839378373/4900000000000000", + "cap_above_band": "2005129629378373/4900000000000000", + "cap_below_cell": "444870160621627/4900000000000000", + "cap_below_phase_cell_power": "5344870370621627/4900000000000000", + "complex_above_effective": "3/70000000", + "complex_below_one_over_32": "396057/14000000", + "complex_endpoint": "3/35000000", + "epsilon_below_one": "3/70000000", + "epsilon_positive": "69999997/70000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "838135119/4900000000000000", + "gaussian_above_main": "104378373/2450000000000000", + "global_coordinate_router_above_kappa": "3/17500000", + "global_gamma_power_slack": "27/700000000", + "group_below_dimension": "3/35000000", + "group_bit_router_above_kappa": "262033773/1225000000000000", + "group_gauge_power_slack": "444870675121627/2450000000000000", + "group_key_fits_record": "3/35000000", + "group_positive": "69999991/70000000", + "group_scans_above_kappa": "34896397/35000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "614514790400418148631/500000000000000000000000", + "lambda_above_internal": "3/140000000", + "lambda_above_sigma": "9/140000000", + "lambda_above_tau": "3/140000000", + "lambda_prime_above_lambda": "3/140000000", + "lambda_prime_above_leaf": "83875671/980000000000000", + "leaf_saving_above_effective": "41875671/980000000000000", + "main_transform_above_kappa": "629378373/4900000000000000", + "membership_arithmetic_fits_record": "3/70000000", + "microbox_face_corrections_above_kappa": "1347448203/17500000", + "microbox_halo_volume": "5530000009/70000000", + "new_complex_uniform_saving_above_b": "3/70000000", + "new_semantic_guard_with_C1_one": "3/70000000", + "polynomial_products_above_kappa": "69792797/70000000", + "positive_layout_slack": "3/70000000", + "q_below_effective": "3/70000000", + "q_below_internal": "3/70000000", + "q_below_leaf": "83875671/980000000000000", + "q_positive": "207209/70000000", + "short_record_fallback": "13958557/14000000", + "source_axis_superpolynomial": "3/70000000", + "sparse_union_movement_above_kappa": "1990625839378373/4900000000000000", + "stop_below_one": "69999997/70000000", + "stop_positive": "3/70000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "9/70000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "9/70000000", + "union_tag_work_per_visit_fits_record": "9/70000000" + } + }, + "relative_gain_over_p7": "27353/268647", + "schema": "query-thinned-productive-controllers/1", + "scope": "Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.", + "source_inputs_authenticated": 17, + "status": "PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296" +} diff --git a/research/query-thinned-controllers/SOURCES.json b/research/query-thinned-controllers/SOURCES.json new file mode 100644 index 0000000000..0f061c87ff --- /dev/null +++ b/research/query-thinned-controllers/SOURCES.json @@ -0,0 +1,120 @@ +{ + "schema_version": 1, + "base_commit": "3a23e9d9d2e67833515d1c60a17e966bcdcab43c", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ed33caef5c5827693e9572d252a66f99cbb73d40", + "sha256": "5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "64bfc5af6709ed9811171e0a2108f05e1219cb65", + "sha256": "352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96" + }, + { + "path": "research/higher-moment-strictification/README.md", + "usage": "input", + "git_blob": "0a736ca89e1eafb73a30e1f2589cc45e6b5f76c3", + "sha256": "ebe80b68ff026ce90f71f274c31744f4c0b36132d15ebb7e39cf2d5df4df270d" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "usage": "input", + "git_blob": "8b40135a84e7f0f0cd44bed69655801310b916a7", + "sha256": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85" + }, + { + "path": "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "usage": "input", + "git_blob": "d9a4f84211182ca200c081ea061d724c8a2cfb70", + "sha256": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" + }, + { + "path": "research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "usage": "input", + "git_blob": "fbe6da7241357d89cf5c55b2e7ce2d0d046be32a", + "sha256": "edb273f59a27356ad89f38791590c3c806b228c3510eb508e01e89f2caba95ef" + }, + { + "path": "research/kappa-rebuild/bit/BIT-P3-NATIVE-BINDING.json", + "usage": "input", + "git_blob": "e8c5e4f077fea0bef355e6c3013c7f252d3606cf", + "sha256": "9ece46fdfda6182e757e9a3b1f513fb3d029d730f3bafdcd6ed59180a14175b0" + }, + { + "path": "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "usage": "input", + "git_blob": "a58774e237c9362869a60a22bda35be09fb85872", + "sha256": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443" + }, + { + "path": "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "usage": "input", + "git_blob": "6a139eedbc1015c13df6f2a4333e1a89b5edd18d", + "sha256": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf" + }, + { + "path": "research/kappa-rebuild/bit/bit_native_binding.py", + "usage": "input", + "git_blob": "f4c4082d89969ea311219d9af8013082d599f6f1", + "sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7" + }, + { + "path": "research/kappa-rebuild/bit/complex_controller_factor.py", + "usage": "input", + "git_blob": "cb0cff7c8be5f38f2ee52201d9d0907f9dfd7947", + "sha256": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497" + }, + { + "path": "research/kappa-rebuild/bit/mixed_productive_bit.py", + "usage": "input", + "git_blob": "9c7a8bd5d3ae4c19952648c815031858d6627b96", + "sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + { + "path": "research/kappa-rebuild/complex/FULL-IDENTITY.md", + "usage": "input", + "git_blob": "f97a23d7d21bd7f79c9d0cb14d8c6b44fddd3f23", + "sha256": "c4aa88c4943ef041e9542c519b7600ecf26ed6caff92558fdb07ac88ace64c17" + }, + { + "path": "research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "usage": "input", + "git_blob": "c6edcbdc43bf36bb11201235027d0ec170d07fc8", + "sha256": "943d5fad2fc529f470df05a35446e07ecaef7344abfce450d2c2eb2c9b3798f6" + }, + { + "path": "research/pr4359-p7-padding/TENSOR.md", + "usage": "input", + "git_blob": "8ecfd3e4d0bcb449ecb1e150c4f1f4fbb39ca656", + "sha256": "b2eba86cb979b4dc2a045f2e74bbd29e4d9e5ec87d6a2bc23ba7b54f1f58e3e3" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/pr4359-p7-padding/native_inventory.py", + "usage": "input", + "git_blob": "8d2d96e3998254c2333c43fe47cdfd074cbd811e", + "sha256": "65539acaf45bdfe8c5aee6830f9c9b3d1107c442a60842ef803fdd7688de8f32" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + } + ] +} diff --git a/research/query-thinned-controllers/TASK.json b/research/query-thinned-controllers/TASK.json new file mode 100644 index 0000000000..ebba49a09c --- /dev/null +++ b/research/query-thinned-controllers/TASK.json @@ -0,0 +1,86 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 7, + "base_commit": "3a23e9d9d2e67833515d1c60a17e966bcdcab43c", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "changed", + "actual_scope": "Construct query-thinned complex and BIT productive controllers and carry their exact physical words, paid tails, ordinary BIT conversion and complete outer costs to conditional kappa 0.00296.", + "scope_change_reason": "Explicit user assignment to improve kappa using the new productive-helper mechanism. The current card predates the selected changed interface; this replaces its frozen local-packing question with a complete global native/query construction.", + "bottleneck_link": "Selected full-native path calls impose stage and idle transforms even where a paid rank-one shear suffices. Removing them changes the full target/paid moment; a stronger BIT admission is needed above the prior cap.", + "budget_minutes": 60, + "stop_rule": "Finish the two actual finite native/query words and all caller costs; reject the endpoint if physical query ownership, full invoice, paid completion, BIT cover/stock or any outer predicate fails.", + "outcome": "completed", + "evidence": "PROOF.md, RESULT.json, COMPLEX-CONTROLLER.json, BIT-CONTROLLER.json, VALIDATION.md", + "author": "Cinna Davis / 1337isnot1337, with substantial OpenAI Codex assistance", + "ai_assistance": "Substantial OpenAI Codex assistance in derivation, implementation, audit and writing; no subagents.", + "open_questions": [ + { + "question": "Can the arbitrary-column owned-query lowering receive an independent native/tape audit?", + "why_it_matters": "It is the new primitive interface connecting the physical word to the changed exponent.", + "first_step": "Replay one complex inverse query and one binary cover query at two column multiplicities, charging copy, matching, read and erasure.", + "blocked_by": "Independent native/tape review of the retained all-column contracts." + }, + { + "question": "Can a changed local query/native alphabet or branching controller exceed this complete moment?", + "why_it_matters": "The old all-native p7 screen does not constrain this changed alphabet.", + "first_step": "Define a different complete finite physical word and screen its full invoice before larger native reconstruction.", + "blocked_by": "No stronger complete native/query construction has been established." + } + ], + "upstream_checkpoint": { + "main": "2a13eb1827784206202db90e5dc8327cf8a250db", + "checked_at_utc": "2026-10-21T20:06:00Z", + "priority_revision": 7, + "selected_kappa": "0.0023", + "stronger_reviewed_conditional_kappa": "0.00268647" + }, + "overlap_coverage": { + "open_prs": "296 bodies, complete pagination, 2026-10-21T19:50:54Z", + "discussions": "3284 records, complete pagination, 2026-10-21T19:51:43Z", + "local_readmes": "sparse; incomplete", + "closed_pr_bodies": "not exhaustively searched", + "additional_checks": "PR4194 coded/clean hybrid differs; PR4433 higher-moment theorem adopted. Frontier rechecked at 19:33, 19:51 and 20:06 UTC, through #4439; no higher kappa found." + } +} diff --git a/research/query-thinned-controllers/VALIDATION.md b/research/query-thinned-controllers/VALIDATION.md new file mode 100644 index 0000000000..2924d84be3 --- /dev/null +++ b/research/query-thinned-controllers/VALIDATION.md @@ -0,0 +1,43 @@ +# Validation and limits + +Environment: Linux x86_64, CPython **3.12.14** (bundled runtime). Initial +factor discovery also ran on CPython 3.14.8. Standard library only. No +subagents, Lean build, Docker run or full historical suite. + +Completed on 2026-10-21: + +- `python3.12 -B scripts/research_package.py --package research/query-thinned-controllers --check-only` + passes metadata and all 17 input pins. +- `python3.12 -B scripts/research_package.py --package research/query-thinned-controllers` + passes the complete registered replay. +- `python3.12 -O -B research/query-thinned-controllers/verify.py` passes + from a separate **Git-free export** containing this package and exactly the + declared input files. Its RESULT.json agrees with the normal replay. +- The two external rejection controls also run in that Git-free export under + optimized Python. Appending a comment to the pinned interval source rejects + with `Changed source`. Changing an emitted QUERY_SHEAR to LOCAL rejects the + physical-event equality check. Both altered export files were restored; + no canonical predecessor file was changed. +- Internal controls execute omitted-clear and omitted-erase query words, + reverse a query's actual orientation, change a Laurent coefficient, retain + the old BIT cap or atom, close the complex/epsilon gap, omit layout, and + request the unfunded outer endpoint. Their intended gates reject. + +The exact native contacts include 896 complex forward/inverse checks and +111 rational binary charts. Both complete physical event lists are replayed. +Two rational interval implementations agree on the strict native moments. +The complete charged tensor tails, effective compiler ranks, ordinary BIT +cover/conversion and nine-row outer ledger pass. All 54 strict outer +predicates, three inherited functional predicates and the added stock guard +are retained. + +The actual local full-native words and their all-column implementation are +reused from the pinned reviewed lineage. Their entire historical physical +stack was not rerun. New winning tensor/uniform words are specified by +finite algorithms; their enormous instruction lists have not been emitted. +No finite pass establishes an unconditional theorem or formal verification. + +The exact-commit preflight and source-history check are run after committing +the package; the submitted PR describes their result and hosted CI separately. +All reports retain the inherited native, whole-job, owned-erasure, fixed-tape, +precision, analytic, prime-supply and exact-recovery proof boundaries. diff --git a/research/query-thinned-controllers/VERIFY.json b/research/query-thinned-controllers/VERIFY.json new file mode 100644 index 0000000000..768aad6d68 --- /dev/null +++ b/research/query-thinned-controllers/VERIFY.json @@ -0,0 +1,36 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/higher-moment-strictification/README.md", + "research/higher-moment-strictification/verify.py", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "research/kappa-rebuild/bit/BIT-P3-NATIVE-BINDING.json", + "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "research/kappa-rebuild/bit/bit_native_binding.py", + "research/kappa-rebuild/bit/complex_controller_factor.py", + "research/kappa-rebuild/bit/mixed_productive_bit.py", + "research/kappa-rebuild/complex/FULL-IDENTITY.md", + "research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "research/pr4359-p7-padding/TENSOR.md", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/pr4359-p7-padding/native_inventory.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Authenticate source blobs; replay both emitted physical controller words and exact boundary programs; native phase and rational chart checks; full query, completion, compiler, BIT cover and outer costs with negative controls." + } + ] +} diff --git a/research/query-thinned-controllers/controller.py b/research/query-thinned-controllers/controller.py new file mode 100644 index 0000000000..d4557e08cf --- /dev/null +++ b/research/query-thinned-controllers/controller.py @@ -0,0 +1,208 @@ +#!/usr/bin/env python3 +"""Exact native/query controller construction. Apache-2.0; Codex assistance.""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +import importlib.util +import json +from pathlib import Path +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def load(path, name): + spec = importlib.util.spec_from_file_location(name, path) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def engines(): + reference = ROOT/'research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py' + load(reference, 'joint_pair_dag') + base = ROOT/'research/kappa-rebuild/bit' + bit = load(base/'mixed_productive_bit.py', 'mixed_productive_bit') + complex_ = load(base/'complex_controller_factor.py', 'query_complex_factor') + return bit, complex_ + + +def keep_mask(p, a): + b = p-1-a + return sum(1 << i for i in list(range(1, 2*p-2, 2))+ + list(range(0, 2*a, 2))+list(range(3*(p-1)-b, 3*(p-1)))) + + +def thick_stages(p): + return {0, 2*p, *range(1, 2*p, 2)} + + +def specialize_complex(coefficients, thick): + result = {} + for term, matrix in coefficients.items(): + key = (term[0],)+tuple(x if s in thick else 0 for s, x in enumerate(term[1:])) + out = result.setdefault(key, [[Q(0)]*len(matrix) for _ in matrix]) + for i, row in enumerate(matrix): + for j, value in enumerate(row): + out[i][j] += value + return {k: m for k, m in result.items() if any(any(row) for row in m)} + + +def specialize_bit(coefficients, thick): + keep = 1+sum(1 << (s+1) for s in thick) + out = {} + for term, matrix in coefficients.items(): + key = term & keep + old = out.setdefault(key, [0]*len(matrix)) + for i, row in enumerate(matrix): + old[i] ^= row + return {k: m for k, m in out.items() if any(m)} + + +def replay_events(events, p, kind): + """Literal second replay of the emitted word, including query-only gates.""" + _, engine = engines() + size, stages = 2*p, 2*p+1 + zero = (0,)*(stages+1) + matrix = [[{zero: Q(i == j)} if i == j else {} for j in range(size)] for i in range(size)] + for event in events: + op = event[0] + if op in ('LOCAL', 'QUERY_SHEAR'): + _, stage, pair, backward = event + x, y = 2*pair, 2*pair+1 + if backward: x, y = y, x + term = (1 if backward else -1,)+(0,)*stages + matrix[y] = [engine.plus(a, engine.monomial_times(b, term, -1 if backward else 1)) for a, b in zip(matrix[y], matrix[x])] + if op == 'LOCAL': + term = (0,)+tuple(int(s == stage) for s in range(stages)) + for role in (x, y): matrix[role] = [engine.monomial_times(a, term) for a in matrix[role]] + elif op == 'IDLE': + _, pair, selected = event + term = (0,)+tuple(int(s in selected) for s in range(stages)) + for role in (2*pair, 2*pair+1): matrix[role] = [engine.monomial_times(a, term) for a in matrix[role]] + elif op == 'ADD': + _, dst, src, *coefficient = event + c = coefficient[0] if coefficient else 1 + matrix[dst] = [engine.plus(a, b, c) for a, b in zip(matrix[dst], matrix[src])] + elif op in ('SWAP', 'SIGNED_SWAP'): + _, x, y = event + matrix[x], matrix[y] = matrix[y], [engine.monomial_times(a, zero, -1 if op == 'SIGNED_SWAP' else 1) for a in matrix[x]] + else: + raise ValueError('Unknown emitted event: '+op) + result = {} + for i, row in enumerate(matrix): + for j, poly in enumerate(row): + for key, value in poly.items(): + if kind == 'complex': + result.setdefault(key, [[Q(0)]*size for _ in range(size)])[i][j] += value + elif value.numerator % 2: + need(value.denominator == 1, 'Integral binary replay coefficient') + term = (key[0] % 2)+sum((exponent % 2) << (s+1) for s, exponent in enumerate(key[1:])) + result.setdefault(term, [0]*size)[i] ^= 1 << j + return {k: m for k, m in result.items() if any(any(r) for r in m)} if kind == 'complex' else {k: m for k, m in result.items() if any(m)} + + +def inventories(kind, p, a, diagonal, idles): + thick = thick_stages(p) + ports, block = (112, 8) if kind == 'complex' else (111, 7) + if kind == 'complex': + local = json.loads((ROOT/'research/kappa-rebuild/complex/full-identity-certificates/RESULT.json').read_text())['providers']['THREE-base'] + helpers = {int(k): v for k, v in local['helper_boundary']['widths'].items()} + children = {int(k): v for k, v in local['unsplit_replays']['forward']['paid_profile'].items()} + selected = [[s for s, x in enumerate(term[1:]) if x] for term in diagonal] + need(all(term[0] in (-1, 1) for term in diagonal), 'Only legal central Gaussian normalizers') + else: + helpers = {8: 439} + children = {1: 1323, 2: 1342, 3: 79, 4: 44, 5: 102, 6: 11, 7: 19} + selected = [[s for s in range(2*p+1) if term >> (s+1) & 1] for term in diagonal] + need(all(term & 1 for term in diagonal), 'Every binary main output retains its central rank-one factor') + targets = Counter({r: len(thick)*n for r, n in helpers.items()}) + paid = Counter({r: len(thick)*n for r, n in children.items()}) + thin_calls = ports*(2*p+1-len(thick)) + paid[1] += thin_calls + main = Counter() + for stages in selected: + need(set(stages) <= thick, 'No removed stage receives output credit') + main[1+block*len(stages)] += ports + targets.update(main) + idle = Counter() + for row in idles: + if row['retained']: + rank = block*len(thick.intersection(row['stages'])) + if rank: + idle[rank] += 2*ports + paid.update(idle) + # A second derivation uses only the declared prefix/suffix intervals. + expected_main = Counter({1+block*(p+2): 2*ports}) + expected_idle = Counter() + for length in (a, p-1-a): + for j in range(1, length+1): + expected_main[1+block*(j+1)] += 2*ports + expected_idle[block*(j+1)] += 2*ports + need(main == expected_main and idle == expected_idle, 'Literal and interval-derived complete invoices agree') + surplus = sum(r*n for r, n in targets.items())-sum(r*n for r, n in paid.items()) + need(surplus == (48*len(thick)-112 if kind == 'complex' else 48*len(thick)-111), 'Rank mass includes every query and lost helper') + return {'targets': dict(sorted(targets.items())), 'paid': dict(sorted(paid.items())), + 'main': dict(sorted(main.items())), 'whole_idle': dict(sorted(idle.items())), + 'productive_fields': sum(targets.values()), 'paid_calls': sum(paid.values()), + 'rank_surplus': surplus, 'thin_queries': thin_calls, + 'thick_calls': len(thick), 'thick_stages': sorted(thick), + 'raw_scalar_record_bound': 10**9, 'owned_streams_reused_sequentially': 1} + + +def run(kind, p, a): + bit, complex_ = engines() + mask = keep_mask(p, a) + thick = thick_stages(p) + if kind == 'complex': + coefficients, events, idles = complex_.controller(p, mask) + coefficients = specialize_complex(coefficients, thick) + factor = complex_.factor(coefficients) + need(factor is not None, 'Exact rational Laurent simultaneous factorization') + diagonal = factor['diagonal'] + boundaries = {'left': complex_.serialize_matrix(factor['left']), + 'right': complex_.serialize_matrix(factor['right']), + 'left_program': factor['left_program'], 'right_program': factor['right_program']} + need(all(Q(row[-1]) in (1, -1) for program in (factor['left_program'], factor['right_program']) + for row in program if row[0] in ('ADD', 'SCALE')), 'Unit scalar boundary coefficients') + else: + coefficients, events, idles = bit.physical_controller(p, mask) + coefficients = specialize_bit(coefficients, thick) + factor = bit.simultaneous_monomial_factor(coefficients) + need(factor is not None, 'Exact binary group-ring simultaneous factorization') + diagonal = factor['diagonal_monomials'] + boundaries = factor + invoice = inventories(kind, p, a, diagonal, idles) + new_events = [] + for row in events: + if row[0] == 'LOCAL' and row[1] not in thick: + new_events.append(['QUERY_SHEAR', *row[1:]]) + elif row[0] == 'IDLE': + selected = ([s for s in row[2] if s in thick] if kind == 'complex' else + [s for s in range(2*p+1) if row[2] >> (s+1) & 1 and s in thick]) + if selected: + new_events.append(['IDLE', row[1], selected]) + else: + new_events.append(row) + need(sum(row[0] == 'LOCAL' for row in new_events) == p+2, 'Exactly p+2 full native calls') + need(sum(row[0] == 'QUERY_SHEAR' for row in new_events) == p-1, 'Exactly p-1 copied-query shears') + return {'kind': kind, 'pairs': p, 'prefix_pairs': a, 'keep_mask': mask, + 'ambient_rank': 1+(8 if kind == 'complex' else 7)*(p+2), + 'diagonal': diagonal, 'boundaries': boundaries, + 'physical_events': new_events, 'invoice': invoice} + + +if __name__ == '__main__': + for kind, p, a in [('complex', 17, 8), ('bit', 16, 7)]: + row = run(kind, p, a) + path = HERE/(kind.upper()+'-CONTROLLER.json') + path.write_text(json.dumps(row, indent=2, sort_keys=True)+'\n') + print(kind, row['invoice'], flush=True) diff --git a/research/query-thinned-controllers/verify.py b/research/query-thinned-controllers/verify.py new file mode 100644 index 0000000000..f1114036ff --- /dev/null +++ b/research/query-thinned-controllers/verify.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python3 +"""Exact finite replay for the conditional query-thinned construction. + +Apache-2.0. Prepared for Cinna Davis with substantial OpenAI Codex assistance. +Retains zxv's native/factor/tail work and Jacob Alan Sussman's integer flow. +""" +from fractions import Fraction as Q +from hashlib import sha1, sha256 +import argparse +import json +import sys +sys.dont_write_bytecode = True +import controller as C +HERE, ROOT, need = C.HERE, C.ROOT, C.need + + +def encode(x): + if isinstance(x, Q): return str(x) + if isinstance(x, dict): return {str(k): encode(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): return [encode(v) for v in x] + return x + + +def authenticate(): + count = 0 + for row in json.loads((HERE/'SOURCES.json').read_text())['files']: + if row['usage'] != 'input': continue + path = ROOT/row['path']; raw = path.read_bytes() + need(not path.is_symlink(), 'No source alias') + need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: '+row['path']) + need(sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() == row['git_blob'], 'Changed Git blob') + count += 1 + return count + + +def controllers(): + B, E = C.engines(); result = {} + for kind, p, a in [('complex', 17, 8), ('bit', 16, 7)]: + row = json.loads((HERE/(kind.upper()+'-CONTROLLER.json')).read_text()) + thick, mask = C.thick_stages(p), C.keep_mask(p, a) + if kind == 'complex': + coefficients, events, idles = E.controller(p, mask) + coefficients = C.specialize_complex(coefficients, thick) + left = [[Q(x) for x in r] for r in row['boundaries']['left']] + right = [[Q(x) for x in r] for r in row['boundaries']['right']] + diagonal = [tuple(term) for term in row['diagonal']] + transformed = {k: B.matrix_multiply(B.matrix_multiply(left, m), right) for k, m in coefficients.items()} + expected = {k: [[Q(i == j and diagonal[i] == k) for j in range(2*p)] for i in range(2*p)] for k in set(diagonal)} + need(transformed == expected, 'All exact rational Laurent coefficients, including signs and Q powers') + for name, matrix in [('left', left), ('right', right)]: + need(E.scalar_program(matrix) == row['boundaries'][name+'_program'], 'Literal unit scalar boundary program') + changed = dict(coefficients) + k = next(iter(changed)); changed[k] = [r[:] for r in changed[k]]; changed[k][0][0] += 1 + need(B.matrix_multiply(B.matrix_multiply(left, changed[k]), right) != expected.get(k), 'A changed physical coefficient is rejected') + else: + coefficients, events, idles = B.physical_controller(p, mask) + coefficients = C.specialize_bit(coefficients, thick) + fresh = B.simultaneous_monomial_factor(coefficients) + need(fresh == row['boundaries'], 'Exact binary physical operator and scalar boundaries') + diagonal = fresh['diagonal_monomials'] + need(C.replay_events(row['physical_events'], p, kind) == coefficients, + 'Emitted native/query/idle word equals the specialized physical source') + mutant = json.loads(json.dumps(row['physical_events'])) + # Every removed stage is forward; changing its direction must change + # the actual operator rather than merely a tariff field. + next(ev for ev in mutant if ev[0] == 'QUERY_SHEAR')[3] = True + need(C.replay_events(mutant, p, kind) != coefficients, 'Wrong query orientation rejected') + invoice = C.inventories(kind, p, a, diagonal, idles) + ports = 112 if kind == 'complex' else 111 + boundary_records = (sum(len(row['boundaries'][name+'_program']) for name in ('left', 'right')) + if kind == 'complex' else row['boundaries']['boundary_unit_ADDs_per_port']) + scalar_upper = (p+2)*10**6+16*invoice['thin_queries']+32*ports*(len(row['physical_events'])+boundary_records) + need(scalar_upper < invoice['raw_scalar_record_bound'], 'Conservative complete scalar/route count fits') + need(encode(invoice) == row['invoice'], 'Literal and closed-form complete '+kind+' invoice') + result[kind] = invoice + return result + + +def native_contacts(): + n = C.load(ROOT/'research/pr4359-p7-padding/native_inventory.py', 'thinned_native_phases') + phases = json.loads((ROOT/'research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json').read_text()) + axes = tuple(1 << i for i in range(17)); old = [(a, 1) for a in axes[:9]]; fresh = [(a, 1) for a in axes[9:]] + checks = 0 + for recipe in phases['recipes']: + q = recipe['q']; basis = recipe['idle_children'][0]['orthogonal_axes'][:8] + need(all((b&q).bit_count() % 2 == 0 for b in basis), 'Old eight-space perpendicular to q') + swaps = [b ^ axes[9+i] for i, b in enumerate(basis)] + route = tuple(e ^ n.act(swaps, sum(((e&v).bit_count() % 2) << i for i, v in enumerate(swaps))) for e in axes) + need(all(n.act(route, route[i]) == axes[i] for i in range(17)), 'Exact physical route inverse') + need(all((a&b).bit_count() % 2 == int(i == j) for i, a in enumerate(route) for j, b in enumerate(route)), 'Orthogonal physical route') + need(n.act(route, q) == q, 'Central query direction fixed') + need(n.polynomial(n.norm([(q, -1)]), 17) == n.polynomial(n.norm([(q, 1), (q, 2)]), 17), + 'Inverse thin Gaussian is one positive query and a physical translation') + for sign in (-1, 1): + raw = (n.norm(old), n.norm(old+[(q, -1)])) + entry = (n.norm(fresh+[(q, sign)]), n.norm(fresh)) + out0 = n.norm(fresh+[(a, sign) for a in axes[:9]]) + local_out = (out0, n.norm(list(out0)+[(q, -sign)])) + out = (n.norm(old+fresh), n.norm(old+fresh+[(q, -1)])) + for x, y in list(zip(raw, entry))+list(zip(local_out, out)): + n.contact(x, y, route, 17); checks += 1 + for x, y in zip(raw, out): + need(n.polynomial(n.norm(list(y)+[(a, -c) for a, c in x]), 17) == n.polynomial(n.norm(fresh), 17), 'Exactly the fresh eight-axis multiplier') + bit = C.load(ROOT/'research/kappa-rebuild/bit/bit_native_binding.py', 'thinned_binary_charts') + ports = json.loads((ROOT/'research/kappa-rebuild/bit/BIT-P3-NATIVE-BINDING.json').read_text())['ports'] + local = json.loads((ROOT/'research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json').read_text())['local'] + for direction in local['signed_directions']: + need({int(k): v for k, v in direction['profile'].items()} == C.engines()[0].LOCAL, + 'Every actual binary local child remains charged') + need(direction['unit_ADDs'] < 10**6 and direction['owned_COPY_episodes'] == 9, + 'Native binary scalar and owned-center bills retained') + for row in ports: + p = [[Q(x) for x in r] for r in row['central_projector']]; rho = [[Q(x) for x in r] for r in row['chart_15']] + active = [[p[i][j] if i < 8 and j < 8 else Q(i == j and i >= 8) for j in range(15)] for i in range(15)] + full = [[Q(i == j and i < 8) for j in range(15)] for i in range(15)] + need(bit.multiply(rho, rho) == bit.ident(15) and bit.multiply(bit.multiply(rho, active), rho) == full, 'BIT exact arbitrary-column chart') + need(bit.multiply(p, p) == p and sum(p[i][i] for i in range(8)) == 1, 'BIT query rank one') + # Formal independent X,Y,Z columns. Mutants execute the same word with + # an actual omitted operation; they are not merely different receipts. + for e in (-1, 1): + def execute(clear=True, erase=True): + x, y, z = {('X', 0): 1}, {('Y', 0): 1}, {('Z', 0): 1} + if clear: z = {} + for key, value in x.items(): z[key] = z.get(key, 0)+value + z = {(name, power+e): value for (name, power), value in z.items()} + for key, value in z.items(): y[key] = y.get(key, 0)+(-1 if e == 1 else 1)*value + if erase: z = {} + return x, y, z + expected = ({('X', 0): 1}, {('Y', 0): 1, ('X', e): -1 if e == 1 else 1}, {}) + need(execute() == expected, 'Completed arbitrary-input owned-query shear') + need(execute(clear=False) != expected and execute(erase=False) != expected, 'Clear/erase omission controls rejected') + return {'complex_contacts_and_inverses': checks, 'binary_charts': len(ports), + 'thin_paid_rank_per_port': 1, 'thin_productive_credit': 0, 'owned_stream_restored_zero': True} + + +def tail(E, invoice, tested, uniform, cutoff, floor, alpha_gap): + T, P = invoice['targets'], invoice['paid']; t, u, v = 1-tested, Q(1, 5), 1024 + target, paid = E.moment(T, t), E.moment(P, t) + alpha = E.divide(paid, target) + other = C.load(ROOT/'research/kappa-rebuild/architecture/mixed_target_probe.py', 'separate_rational_moment_engine') + tl, th = other.moment(T, tested); pl, ph = other.moment(P, tested) + need(tl > ph and max(target[0], tl) <= min(target[1], th) + and max(paid[0], pl) <= min(paid[1], ph), 'Separate rational interval engine agrees') + gamma = E.divide(E.moment(P, t+u), E.mul(E.power(cutoff, u), target)) + delta = E.divide((Q(sum(T.values())*floor),)*2, E.mul(E.power(cutoff, tested), target)) + need(alpha[1] < 1-alpha_gap and gamma[1] < Q(31, 32) and delta[1] < Q(19, 20), 'Three completely charged tail ratios') + need(Q(31, 32)**128 < Q(1, 16) and Q(19, 20)**128 < Q(1, 16), 'Exact decay blocks') + surplus = 1-Q(1)/(1+v*alpha_gap)-Q(4, 2**32) + need(surplus > 0, 'Original and completion tails both fit') + need(cutoff**64 < floor**63 and max(T) < 256, 'Strict ranks after completion and splitting') + h = Q(1, 64); z, z0 = 1-uniform, (t+1-uniform)/2; gap = z0-t + B, debt = (5+8*h)*v, 1+8*v*(1-z0) + x = (gap*B+debt)/(h*gap); H0 = -((-x.numerator)//x.denominator) + x = H0*(1-z0)/(z-z0); H1 = x.numerator//x.denominator+1 + need(H0 >= 8*v and H0*h*gap >= gap*B+debt and H1*(z-z0) > H0*(1-z0), 'Effective integer compiler bound') + return {'tested_saving': tested, 'uniform_saving': uniform, 'alpha': E.display(alpha), + 'gamma': E.display(gamma), 'delta': E.display(delta), 'tensor_power': v, + 'cutoff_base': cutoff, 'target_floor_base': floor, 'tail_exponent': u, + 'normalized_surplus_lower': surplus, 'compiler_H0': H0, 'uniform_H1': H1, + 'uniform_N': '2^'+str(H1), 'winning_word_materialized': False} + + +def run(): + count = authenticate(); rows = controllers(); native = native_contacts() + E = C.load(ROOT/'research/higher-moment-strictification/verify.py', 'credited_exact_intervals') + kappa, tested = Q('.00296'), Q('.00296030'); d = (tested-kappa)/7 + complex_ = tail(E, rows['complex'], tested, kappa+6*d, 20, 21, Q(1, 30000000)) + bit = tail(E, rows['bit'], Q('.00346'), Q('.003459'), 17, 18, Q(1, 250000)) + before, after, atom, old = Q('.003459'), Q('.00345'), Q('.004'), Q('.0000384599') + ordinary, admitted = (1-atom)*after+atom*old, Q('.0034') + need(before > after and atom > ordinary > admitted and atom < 1-ordinary, 'Complete ordinary BIT conversion') + need(Q('.003') < ordinary and 2**26 > 256/(before-after), 'Old atom rejected and finite prime bound') + L = C.load(ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'complete_outer_ledger') + params = {'kappa': kappa, 'tested_saving': tested, 'complex_uniform_saving': kappa+6*d, + 'b': kappa+5*d, 'a': kappa+4*d, 'q': kappa+3*d, 'bit_saving': admitted, + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, 'stop': d, 'layout': d, 'd': d} + outer = L.ledger(params) + outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta']*(1-atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete predicate inventory') + need(all(x > 0 for group in ('strict_checks', 'functional_checks') for x in outer[group].values()), 'All outer predicates') + controls = {} + for label, changes in [('old_BIT_cap', {'bit_saving': Q('.0027')}), ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('unfunded_kappa', {'kappa': tested}), ('closed_epsilon', {'epsilon': Q(1)}), ('missing_layout', {'layout': Q(0)})]: + bad = L.ledger(dict(params, **changes)); failed = [k for k, v in bad['strict_checks'].items() if v <= 0] + need(failed, 'Reject '+label); controls[label] = failed + return encode({'schema': 'query-thinned-productive-controllers/1', 'status': 'PASS_CONDITIONAL_QUERY_THINNED_KAPPA_00296', + 'kappa': kappa, 'relative_gain_over_p7': kappa/Q('.00268647')-1, + 'source_inputs_authenticated': count, 'native': native, 'complex_invoice': rows['complex'], 'bit_invoice': rows['bit'], + 'complex_strictification': complex_, 'bit_strictification': bit, + 'ordinary_BIT': {'before_cover': before, 'after_cover': after, 'atom': atom, 'ordinary_saving': ordinary, + 'admitted': admitted, 'prime_rule': 'odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses'}, + 'outer': outer, 'minimum_outer_margin_minus_kappa': min(outer['margins'].values())-kappa, + 'negative_controls': controls, 'old_atom_rejected': True, + 'scope': 'Conditional native construction; all-column, erasure, whole-job matching, fixed-tape, precision, analytic, prime and exact-recovery premises retained. No unconditional theorem or selected promotion.'}) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__); parser.add_argument('--write', action='store_true'); args = parser.parse_args() + result = run(); output = HERE/'RESULT.json' + if args.write: output.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + else: need(result == json.loads(output.read_text()), 'Complete receipt matches exact replay') + print(json.dumps({k: result[k] for k in ('status', 'kappa', 'source_inputs_authenticated', 'minimum_outer_margin_minus_kappa')}, sort_keys=True)) From 40e22a83ed660d3d6074c4f2dbf14bfb621eee51 Mon Sep 17 00:00:00 2001 From: Cinna Davis <1337isnot1337@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:08:04 -0500 Subject: [PATCH 2/7] Record committed-byte and source-history validation --- research/query-thinned-controllers/VALIDATION.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/research/query-thinned-controllers/VALIDATION.md b/research/query-thinned-controllers/VALIDATION.md index 2924d84be3..8e9598ece7 100644 --- a/research/query-thinned-controllers/VALIDATION.md +++ b/research/query-thinned-controllers/VALIDATION.md @@ -37,7 +37,8 @@ stack was not rerun. New winning tensor/uniform words are specified by finite algorithms; their enormous instruction lists have not been emitted. No finite pass establishes an unconditional theorem or formal verification. -The exact-commit preflight and source-history check are run after committing -the package; the submitted PR describes their result and hosted CI separately. +The committed-byte preflight and source-history check both pass after +committing the package, with all 28 package/input files matching and the pinned +canonical base in publication ancestry. Hosted CI is reported separately. All reports retain the inherited native, whole-job, owned-erasure, fixed-tape, precision, analytic, prime-supply and exact-recovery proof boundaries. From ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9 Mon Sep 17 00:00:00 2001 From: Cinna Davis <1337isnot1337@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:08:06 -0500 Subject: [PATCH 3/7] Raise conditional kappa to 0.00272124 by retiming fresh helper boundaries --- .../ARITHMETIC-RESULT.json | 219 +++++++ research/fresh-helper-boundary/ATTEMPTS.md | 44 ++ research/fresh-helper-boundary/CHANGES.json | 562 ++++++++++++++++++ .../FRONTIER-CHECKS.json | 14 + .../NATIVE-RESULT.json.gz | Bin 0 -> 29131 bytes research/fresh-helper-boundary/PROOF.md | 224 +++++++ research/fresh-helper-boundary/README.md | 155 +++++ research/fresh-helper-boundary/RESULT.json | 18 + research/fresh-helper-boundary/SOURCES.json | 96 +++ research/fresh-helper-boundary/TASK.json | 102 ++++ research/fresh-helper-boundary/VALIDATION.md | 34 ++ research/fresh-helper-boundary/VERIFY.json | 32 + research/fresh-helper-boundary/arithmetic.py | 152 +++++ .../fresh-helper-boundary/discover-cut.cpp | 35 ++ research/fresh-helper-boundary/discover.py | 75 +++ research/fresh-helper-boundary/native.py | 183 ++++++ research/fresh-helper-boundary/verify.py | 99 +++ 17 files changed, 2044 insertions(+) create mode 100644 research/fresh-helper-boundary/ARITHMETIC-RESULT.json create mode 100644 research/fresh-helper-boundary/ATTEMPTS.md create mode 100644 research/fresh-helper-boundary/CHANGES.json create mode 100644 research/fresh-helper-boundary/FRONTIER-CHECKS.json create mode 100644 research/fresh-helper-boundary/NATIVE-RESULT.json.gz create mode 100644 research/fresh-helper-boundary/PROOF.md create mode 100644 research/fresh-helper-boundary/README.md create mode 100644 research/fresh-helper-boundary/RESULT.json create mode 100644 research/fresh-helper-boundary/SOURCES.json create mode 100644 research/fresh-helper-boundary/TASK.json create mode 100644 research/fresh-helper-boundary/VALIDATION.md create mode 100644 research/fresh-helper-boundary/VERIFY.json create mode 100644 research/fresh-helper-boundary/arithmetic.py create mode 100644 research/fresh-helper-boundary/discover-cut.cpp create mode 100644 research/fresh-helper-boundary/discover.py create mode 100644 research/fresh-helper-boundary/native.py create mode 100644 research/fresh-helper-boundary/verify.py diff --git a/research/fresh-helper-boundary/ARITHMETIC-RESULT.json b/research/fresh-helper-boundary/ARITHMETIC-RESULT.json new file mode 100644 index 0000000000..686c36fb19 --- /dev/null +++ b/research/fresh-helper-boundary/ARITHMETIC-RESULT.json @@ -0,0 +1,219 @@ +{ + "BIT": { + "admitted": "273/100000", + "gap": "118653797/10000000000000", + "inherited_unrelaxed_saving": "27418653797/10000000000000" + }, + "compiler": { + "H": 349300000000, + "N": "2^349300000000", + "eta": { + "lower": "0.140815224484524968848722108625", + "upper": "0.140815224484524968848722108626" + }, + "gap": "1/700000000", + "integer_test_exponent": 499, + "logarithm_power": 13, + "theta_upper": "6/7", + "uniform_saving": "952437/350000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_C_interval": [ + "0", + "1/20" + ], + "negative_derivative_upper": { + "lower": "-178315.972608883259749333049784629374", + "upper": "-178315.972608883259749333049784629373" + }, + "negative_moment_upper": { + "lower": "-8137.901782546330185425252976230749", + "upper": "-8137.901782546330185425252976230748" + }, + "remaining_C_interval": [ + "1/20", + "1" + ] + }, + "gain_over_PR4416": "3477/100000000", + "headroom_from_declared_to_root": [ + "8051/400000000000", + "50319/2500000000000" + ], + "kappa": "68031/25000000", + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform_gap": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT_relaxation": [ + "actual_bit_above_effective" + ], + "unfunded_outer": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "outer": { + "functional_checks": { + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "1333410398095129/490000000000000000", + "fused_gaussian": "1333410394285387/490000000000000000", + "global_coordinate_router": "238109/87500000", + "group_bit_router": "166676386785673/61250000000000000", + "group_scans": "349999999/350000000", + "main_transform": "1333409698095129/490000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "200395910398095129/490000000000000000" + }, + "parameters": { + "a": "238109/87500000", + "b": "1904873/700000000", + "beta": "699999997/700000000", + "bit_saving": "273/100000", + "cap_xi": "445395909698095129/490000000000000000", + "complex_uniform_saving": "952437/350000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "68031/25000000", + "lambda_": "199455751/200000000", + "lambda_prime": "698095129/700000000", + "layout": "1/700000000", + "q": "1904871/700000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "2177/800000" + }, + "strict_checks": { + "actual_bit_above_effective": "383/43750000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "44604091351904871/245000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "2798095129/490000000000000000", + "cap_above_band": "200395909698095129/490000000000000000", + "cap_below_cell": "44604089601904871/490000000000000000", + "cap_below_phase_cell_power": "534604090301904871/490000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19970127/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "2794285387/490000000000000000", + "gaussian_above_main": "348095129/245000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "436785673/61250000000000000", + "group_gauge_power_slack": "44604091316904871/245000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "69809513/70000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "495134790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1398095127/490000000000000000", + "leaf_saving_above_effective": "698095127/490000000000000000", + "main_transform_above_kappa": "2098095129/490000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "1684315473/21875000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "698095131/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1398095127/490000000000000000", + "q_positive": "1904871/700000000", + "short_record_fallback": "698095127/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "199062502798095129/490000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 33795, + "16": 448, + "2": 7725, + "3": 6675, + "32": 448, + "4": 1530, + "48": 448, + "5": 600, + "8": 1464 + }, + "paid_calls": 53133, + "productive_fields": 7688, + "relative_gain_over_PR4416": "1159/89549", + "root_bracket": [ + "1088504051/400000000000", + "6803150319/2500000000000" + ], + "status": "PASS_CHANGED_NATIVE_PROFILE_STRICTIFICATION_AND_COMPLETE_OUTER", + "strictification": { + "alpha": { + "lower": "0.999999983026163231936831206184", + "upper": "0.999999983026163231936831206185" + }, + "cutoff_base": 10, + "delta": { + "lower": "0.864870069524004068270352709182", + "upper": "0.864870069524004068270352709183" + }, + "gamma": { + "lower": "0.910935673068185945998089027910", + "upper": "0.910935673068185945998089027911" + }, + "gap": { + "lower": "0.000000705775426641554341705594", + "upper": "0.000000705775426641554341705595" + }, + "normalized_paid_upper": "312500529444649842944287051245464084985300648225953097729364854469515503029278664568874151635979493066877292627151728507225829268936433948299379518726558518343844530884174444838473561069623983608689185814338090148572417036912296673977860237369051387753314848294993638501683424262073636500572764166420861283708720335677094583332070847074689861555558356543552667138912721443073650953550760942655945597474686732201711464952735742366374988690440592748048891939/312500750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "rational_upper_limits": [ + "62499999/62500000", + "911/1000", + "173/200" + ], + "tail_offset": "3/10", + "target_floor_base": 15, + "tensor_power": 150 + }, + "targets": { + "121": 224, + "25": 448, + "4": 390, + "41": 448, + "5": 30, + "57": 448, + "7": 435, + "8": 630, + "9": 4635 + }, + "tested_saving": "2177/800000" +} diff --git a/research/fresh-helper-boundary/ATTEMPTS.md b/research/fresh-helper-boundary/ATTEMPTS.md new file mode 100644 index 0000000000..61dd1812f5 --- /dev/null +++ b/research/fresh-helper-boundary/ATTEMPTS.md @@ -0,0 +1,44 @@ +# Scope of discovery + +The new contribution changes helper entrances and exits jointly with scalar +contact frames. The old choice was optimized for a hosted owner fill. Once +all helper fields are fresh independent inputs, that objective is different: +price the paid moment minus the actual productive helper moment. + +Exploratory checks before this pivot (compiled C++ discovery, not registered +proofs or global optimality certificates): + +- All 262,144 paired p7 masks: 256 modular candidates; none passes the numerical test C=.00268649. + The old rank profile and root were reproduced. +- All 2,097,152 paired p8 masks: 576 modular candidates; none passes C=.00268649. +- 2,391,496 masks within six individual-bank toggles of the selected p7 mask: + 6,278 modular candidates; none passes the numerical test C=.00268649. +- No untouched consecutive native transports fuse. Single common-frame + components, and alpha expansions over the 1,159 existing frame spaces with + all boundaries fixed, gave no improvement at C=.003. + +The rank-sum modular test is a discovery filter. If a polynomial matrix A has +invertible A(1), a constant-basis diagonal monomial factorization implies that +the sum of ranks of its nonzero coefficient matrices equals the dimension. +A necessary mod-2 screen is particularly cheap here because A(1) stays +invertible mod 2. Scientific acceptance of the selected word uses rational +Laurent replay and full native replay, not this filter. + +Allowing helper boundary frames changes the result. A binary alpha-expansion +cut changes a selected set of scalar contacts to one frame, while hard +constraints preserve every nested chronological path and every warp contact. +The energy is the complete paid moment minus productive helper moment. Entry +and exit moves are optimized separately because their joint concave reward +is not a submodular binary cost. The submitted finite choices are recorded +explicitly in CHANGES.json; replay needs no optimizer or C++ compiler. + +The optimizer is a discovery aid. Passing every tested label does not prove +global optimality. In particular, simultaneous different-label moves, changed +scalar order, new operators, center sharing and new geometry remain open. + +A subsequent scan added all binary lines, all hyperplanes and all coordinate +subspaces of F2^9: 1,264 new distinct labels, for 2,423 tested spaces. Separate +entry and exit alpha-expansion sweeps from the submitted profile found no +negative move at C=.003. The registered proof uses only the final finite +choices and exact native/moment replay; no claim of global optimality or +exact mathematical acceptance is drawn from floating discovery costs. diff --git a/research/fresh-helper-boundary/CHANGES.json b/research/fresh-helper-boundary/CHANGES.json new file mode 100644 index 0000000000..45744fedd0 --- /dev/null +++ b/research/fresh-helper-boundary/CHANGES.json @@ -0,0 +1,562 @@ +{ + "entrances": [ + [448, 114, 0], + [449, 114, 0], + [450, 115, 0], + [451, 115, 0], + [452, 115, 0], + [453, 115, 0], + [454, 114, 0], + [455, 114, 0], + [457, 116, 0], + [458, 116, 0], + [460, 117, 0], + [462, 117, 0], + [473, 114, 0], + [474, 118, 0], + [475, 118, 0], + [476, 119, 0], + [477, 119, 0], + [478, 120, 0], + [480, 120, 0], + [482, 114, 0], + [483, 114, 0], + [484, 121, 0], + [485, 121, 0], + [486, 122, 0], + [487, 122, 0], + [492, 115, 0], + [493, 115, 0], + [502, 115, 0], + [503, 115, 0], + [504, 115, 0], + [513, 115, 0], + [514, 115, 0], + [515, 115, 0], + [516, 123, 0], + [517, 123, 0], + [518, 124, 0], + [519, 124, 0], + [520, 125, 0], + [521, 125, 0], + [522, 126, 0], + [523, 126, 0], + [524, 115, 0], + [525, 115, 0], + [526, 115, 0], + [527, 115, 0], + [528, 127, 0], + [529, 127, 0], + [530, 128, 0], + [531, 128, 0], + [532, 129, 0], + [533, 129, 0], + [534, 130, 0], + [535, 130, 0], + [536, 115, 0], + [537, 115, 0], + [538, 131, 114], + [539, 114, 0], + [544, 132, 0], + [545, 132, 0], + [546, 133, 0], + [547, 133, 0], + [548, 114, 0], + [549, 114, 0], + [550, 114, 0], + [551, 114, 0], + [553, 134, 0], + [555, 134, 0], + [556, 135, 0], + [557, 135, 0], + [558, 136, 0], + [559, 136, 0], + [563, 134, 0], + [565, 134, 0], + [570, 134, 0], + [571, 134, 0], + [572, 134, 0], + [573, 134, 0], + [578, 114, 0], + [579, 114, 0], + [580, 115, 0], + [581, 115, 0], + [582, 115, 0], + [583, 115, 0], + [585, 114, 0], + [586, 137, 0], + [587, 137, 0], + [588, 137, 0], + [589, 137, 0], + [590, 138, 0], + [591, 137, 0], + [592, 137, 0], + [593, 137, 0], + [596, 137, 0], + [597, 137, 0], + [598, 114, 0], + [599, 114, 0], + [600, 114, 0], + [601, 114, 0], + [606, 115, 0], + [607, 115, 0], + [608, 115, 0], + [609, 115, 0], + [610, 115, 0], + [611, 115, 0], + [612, 115, 0], + [614, 115, 0], + [615, 115, 0], + [616, 115, 0], + [617, 115, 0], + [618, 115, 0], + [619, 115, 0], + [620, 115, 0], + [621, 140, 0], + [622, 114, 0], + [623, 114, 0], + [624, 114, 0], + [625, 114, 0] + ], + "exits": [ + [277, 256, 299], + [282, 257, 299], + [293, 258, 301], + [298, 258, 301], + [307, 261, 303], + [309, 261, 303], + [311, 262, 1], + [314, 263, 303], + [323, 265, 304], + [325, 266, 304], + [327, 267, 1], + [330, 268, 304], + [337, 270, 305], + [339, 270, 305], + [341, 271, 305], + [346, 271, 305], + [353, 272, 307], + [355, 272, 307], + [357, 273, 307], + [362, 273, 307], + [369, 275, 308], + [371, 275, 308], + [373, 275, 308], + [378, 276, 308], + [385, 277, 309], + [387, 277, 309], + [389, 278, 309], + [394, 278, 309], + [494, 262, 1], + [495, 262, 1], + [505, 267, 1], + [506, 267, 1], + [548, 285, 1], + [560, 285, 1], + [566, 286, 279], + [567, 286, 279], + [568, 287, 280], + [569, 287, 280], + [574, 288, 279], + [575, 288, 279], + [576, 289, 281], + [577, 289, 281] + ], + "gates": [ + ["A", 626, 115, 0], + ["A", 627, 115, 0], + ["A", 628, 115, 0], + ["A", 629, 114, 0], + ["A", 630, 114, 0], + ["A", 631, 114, 0], + ["A", 632, 114, 0], + ["A", 633, 114, 0], + ["A", 1762, 134, 0], + ["A", 1763, 134, 0], + ["A", 1764, 134, 0], + ["A", 1765, 134, 0], + ["A", 1766, 134, 0], + ["A", 1767, 134, 0], + ["A", 1768, 134, 0], + ["A", 1769, 134, 0], + ["A", 1770, 134, 0], + ["A", 1771, 134, 0], + ["A", 1772, 134, 0], + ["A", 1773, 134, 0], + ["A", 1774, 134, 0], + ["A", 1775, 134, 0], + ["A", 1776, 134, 0], + ["A", 1777, 134, 0], + ["A", 1778, 134, 0], + ["A", 1779, 134, 0], + ["A", 1780, 134, 0], + ["A", 1781, 134, 0], + ["A", 1782, 134, 0], + ["A", 1783, 134, 0], + ["A", 1784, 134, 0], + ["A", 1785, 134, 0], + ["A", 1786, 134, 0], + ["A", 1787, 116, 0], + ["A", 1788, 119, 0], + ["A", 1789, 119, 0], + ["A", 1790, 119, 0], + ["A", 1791, 119, 0], + ["A", 1792, 117, 0], + ["A", 1793, 124, 0], + ["A", 1794, 124, 0], + ["A", 1795, 120, 0], + ["A", 1796, 124, 0], + ["A", 1797, 124, 0], + ["A", 1798, 125, 0], + ["A", 1799, 125, 0], + ["A", 1800, 125, 0], + ["A", 1801, 125, 0], + ["A", 1802, 135, 0], + ["A", 1803, 135, 0], + ["A", 1804, 117, 0], + ["A", 1805, 128, 0], + ["A", 1806, 128, 0], + ["A", 1807, 128, 0], + ["A", 1808, 128, 0], + ["A", 1809, 120, 0], + ["A", 1810, 130, 0], + ["A", 1811, 130, 0], + ["A", 1812, 130, 0], + ["A", 1813, 130, 0], + ["A", 1814, 133, 0], + ["A", 1815, 133, 0], + ["A", 1816, 116, 0], + ["A", 1817, 122, 0], + ["A", 1818, 122, 0], + ["A", 1819, 122, 0], + ["A", 1820, 122, 0], + ["A", 1821, 129, 0], + ["A", 1822, 129, 0], + ["A", 1823, 129, 0], + ["A", 1824, 129, 0], + ["A", 1825, 132, 0], + ["A", 1826, 132, 0], + ["A", 1827, 126, 0], + ["A", 1828, 126, 0], + ["A", 1829, 126, 0], + ["A", 1830, 126, 0], + ["A", 1831, 136, 0], + ["A", 1832, 136, 0], + ["A", 1833, 118, 0], + ["A", 1834, 118, 0], + ["A", 1835, 118, 0], + ["A", 1836, 118, 0], + ["A", 1837, 127, 0], + ["A", 1838, 127, 0], + ["A", 1839, 127, 0], + ["A", 1840, 127, 0], + ["A", 1841, 123, 0], + ["A", 1842, 123, 0], + ["A", 1843, 123, 0], + ["A", 1844, 123, 0], + ["A", 1845, 121, 0], + ["A", 1846, 121, 0], + ["A", 1847, 121, 0], + ["A", 1848, 121, 0], + ["A", 4031, 620, 621], + ["A", 4037, 622, 280], + ["B", 0, 115, 0], + ["B", 1, 115, 0], + ["B", 2, 115, 0], + ["B", 3, 115, 0], + ["B", 4, 115, 0], + ["B", 5, 115, 0], + ["B", 6, 115, 0], + ["B", 7, 115, 0], + ["B", 8, 114, 0], + ["B", 9, 114, 0], + ["B", 10, 114, 0], + ["B", 15, 114, 0], + ["B", 16, 114, 0], + ["B", 17, 114, 0], + ["B", 18, 114, 0], + ["B", 19, 115, 0], + ["B", 20, 115, 0], + ["B", 21, 115, 0], + ["B", 22, 115, 0], + ["B", 23, 115, 0], + ["B", 24, 115, 0], + ["B", 25, 115, 0], + ["B", 26, 115, 0], + ["B", 27, 114, 0], + ["B", 28, 114, 0], + ["B", 29, 114, 0], + ["B", 30, 114, 0], + ["B", 32, 114, 0], + ["B", 33, 114, 0], + ["B", 34, 114, 0], + ["B", 35, 115, 0], + ["B", 36, 115, 0], + ["B", 37, 115, 0], + ["B", 38, 115, 0], + ["B", 39, 115, 0], + ["B", 40, 115, 0], + ["B", 41, 115, 0], + ["B", 42, 115, 0], + ["B", 43, 114, 0], + ["B", 44, 114, 0], + ["B", 45, 114, 0], + ["B", 46, 114, 0], + ["B", 47, 114, 0], + ["B", 48, 114, 0], + ["B", 49, 115, 0], + ["B", 50, 115, 0], + ["B", 51, 115, 0], + ["B", 52, 115, 0], + ["B", 53, 115, 0], + ["B", 54, 115, 0], + ["B", 55, 115, 0], + ["B", 56, 115, 0], + ["B", 57, 114, 0], + ["B", 60, 114, 0], + ["B", 61, 137, 0], + ["B", 62, 137, 0], + ["B", 63, 137, 0], + ["B", 64, 137, 0], + ["B", 65, 137, 0], + ["B", 66, 137, 0], + ["B", 67, 137, 0], + ["B", 68, 137, 0], + ["B", 69, 137, 0], + ["B", 70, 137, 0], + ["B", 71, 137, 0], + ["B", 72, 137, 0], + ["B", 73, 137, 0], + ["B", 74, 137, 0], + ["B", 75, 137, 0], + ["B", 76, 137, 0], + ["B", 77, 137, 0], + ["B", 78, 137, 0], + ["B", 79, 137, 0], + ["B", 80, 137, 0], + ["B", 81, 137, 0], + ["B", 82, 137, 0], + ["B", 83, 137, 0], + ["B", 84, 137, 0], + ["B", 85, 137, 0], + ["B", 86, 137, 0], + ["B", 87, 137, 0], + ["B", 88, 137, 0], + ["B", 89, 137, 0], + ["B", 90, 137, 0], + ["B", 91, 137, 0], + ["B", 92, 137, 0], + ["B", 93, 137, 0], + ["B", 94, 137, 0], + ["B", 95, 137, 0], + ["B", 96, 137, 0], + ["B", 97, 114, 0], + ["B", 98, 114, 0], + ["B", 99, 114, 0], + ["B", 100, 114, 0], + ["B", 101, 114, 0], + ["B", 102, 114, 0], + ["B", 103, 114, 0], + ["B", 104, 114, 0], + ["B", 105, 114, 0], + ["B", 106, 114, 0], + ["B", 107, 114, 0], + ["B", 108, 114, 0], + ["B", 109, 114, 0], + ["B", 110, 114, 0], + ["B", 111, 114, 0], + ["B", 112, 114, 0], + ["B", 113, 114, 0], + ["B", 114, 114, 0], + ["B", 135, 115, 0], + ["B", 136, 115, 0], + ["B", 137, 115, 0], + ["B", 138, 115, 0], + ["B", 139, 115, 0], + ["B", 140, 115, 0], + ["B", 141, 115, 0], + ["B", 142, 115, 0], + ["B", 143, 115, 0], + ["B", 144, 115, 0], + ["B", 145, 115, 0], + ["B", 146, 115, 0], + ["B", 147, 115, 0], + ["B", 148, 115, 0], + ["B", 149, 115, 0], + ["B", 150, 115, 0], + ["B", 151, 115, 0], + ["B", 152, 115, 0], + ["B", 153, 115, 0], + ["B", 154, 115, 0], + ["B", 155, 115, 0], + ["B", 156, 115, 0], + ["B", 157, 115, 0], + ["B", 158, 115, 0], + ["B", 159, 115, 0], + ["B", 160, 115, 0], + ["B", 161, 115, 0], + ["B", 162, 115, 0], + ["B", 163, 115, 0], + ["B", 164, 115, 0], + ["B", 165, 115, 0], + ["B", 166, 115, 0], + ["B", 167, 115, 0], + ["B", 168, 115, 0], + ["B", 169, 115, 0], + ["B", 170, 115, 0], + ["B", 171, 115, 0], + ["B", 172, 115, 0], + ["B", 173, 115, 0], + ["B", 174, 115, 0], + ["B", 175, 115, 0], + ["B", 176, 115, 0], + ["B", 177, 115, 0], + ["B", 178, 115, 0], + ["B", 179, 115, 0], + ["B", 180, 115, 0], + ["B", 181, 115, 0], + ["B", 182, 115, 0], + ["B", 183, 115, 0], + ["B", 184, 115, 0], + ["B", 185, 115, 0], + ["B", 186, 115, 0], + ["B", 187, 115, 0], + ["B", 188, 115, 0], + ["B", 189, 115, 0], + ["B", 190, 115, 0], + ["B", 191, 115, 0], + ["B", 192, 115, 0], + ["B", 193, 115, 0], + ["B", 194, 115, 0], + ["B", 195, 115, 0], + ["B", 196, 115, 0], + ["B", 197, 115, 0], + ["B", 198, 115, 0], + ["B", 199, 114, 0], + ["B", 200, 114, 0], + ["B", 201, 114, 0], + ["B", 202, 114, 0], + ["B", 203, 114, 0], + ["B", 204, 114, 0], + ["B", 205, 114, 0], + ["B", 206, 114, 0], + ["B", 207, 114, 0], + ["B", 208, 114, 0], + ["B", 209, 114, 0], + ["B", 210, 114, 0], + ["B", 211, 114, 0], + ["B", 212, 114, 0], + ["B", 213, 114, 0], + ["B", 214, 114, 0], + ["B", 234, 114, 0], + ["B", 235, 114, 0], + ["B", 236, 114, 0], + ["B", 237, 114, 0], + ["B", 474, 138, 0], + ["B", 475, 731, 360], + ["B", 503, 743, 371], + ["B", 504, 744, 372], + ["B", 505, 745, 373], + ["B", 506, 746, 374], + ["B", 507, 747, 375], + ["B", 508, 748, 376], + ["B", 509, 749, 377], + ["B", 510, 750, 378], + ["B", 511, 751, 391], + ["B", 512, 752, 392], + ["B", 513, 753, 393], + ["B", 514, 754, 394], + ["B", 515, 755, 395], + ["B", 516, 756, 396], + ["B", 517, 757, 397], + ["B", 518, 758, 398], + ["B", 521, 256, 299], + ["B", 526, 257, 299], + ["B", 533, 765, 411], + ["B", 534, 766, 412], + ["B", 535, 767, 413], + ["B", 536, 768, 414], + ["B", 537, 769, 415], + ["B", 538, 770, 416], + ["B", 539, 771, 417], + ["B", 540, 772, 418], + ["B", 559, 779, 431], + ["B", 560, 780, 432], + ["B", 561, 781, 433], + ["B", 562, 782, 434], + ["B", 563, 783, 435], + ["B", 564, 784, 436], + ["B", 565, 785, 437], + ["B", 566, 786, 438], + ["B", 571, 261, 303], + ["B", 575, 263, 303], + ["B", 576, 263, 303], + ["B", 601, 268, 304], + ["B", 602, 268, 304], + ["B", 622, 271, 305], + ["B", 624, 270, 305], + ["B", 627, 271, 305], + ["B", 629, 270, 305], + ["B", 630, 140, 0], + ["B", 635, 801, 491], + ["B", 636, 802, 492], + ["B", 637, 803, 493], + ["B", 638, 804, 494], + ["B", 639, 805, 495], + ["B", 640, 806, 496], + ["B", 641, 807, 497], + ["B", 642, 808, 498], + ["B", 661, 813, 511], + ["B", 662, 814, 512], + ["B", 663, 815, 513], + ["B", 664, 816, 514], + ["B", 665, 817, 515], + ["B", 666, 818, 516], + ["B", 667, 819, 517], + ["B", 668, 820, 518], + ["B", 673, 275, 308], + ["B", 678, 276, 308], + ["B", 684, 131, 114], + ["cleanup_tail", 0, 286, 279], + ["cleanup_tail", 1, 286, 279], + ["cleanup_tail", 2, 286, 279], + ["cleanup_tail", 3, 287, 280], + ["cleanup_tail", 4, 287, 280], + ["cleanup_tail", 5, 287, 280], + ["cleanup_tail", 6, 288, 279], + ["cleanup_tail", 7, 288, 279], + ["cleanup_tail", 8, 288, 279], + ["cleanup_tail", 9, 289, 281], + ["cleanup_tail", 10, 289, 281], + ["cleanup_tail", 11, 289, 281], + ["cleanup_tail", 12, 262, 1], + ["cleanup_tail", 13, 262, 1], + ["cleanup_tail", 14, 262, 1], + ["cleanup_tail", 15, 267, 1], + ["cleanup_tail", 16, 267, 1], + ["cleanup_tail", 17, 267, 1], + ["cleanup_tail", 18, 267, 1], + ["cleanup_tail", 19, 267, 1], + ["cleanup_tail", 40, 262, 1], + ["cleanup_tail", 41, 262, 1], + ["cleanup_tail", 42, 262, 1], + ["cleanup_tail", 43, 262, 1], + ["cleanup_tail", 44, 262, 1], + ["cleanup_tail", 45, 262, 1], + ["cleanup_tail", 46, 262, 1], + ["cleanup_tail", 53, 267, 1], + ["cleanup_tail", 54, 267, 1], + ["cleanup_tail", 67, 285, 1], + ["cleanup_tail", 68, 285, 1], + ["cleanup_tail", 69, 285, 1], + ["cleanup_tail", 77, 285, 1], + ["cleanup_tail", 78, 285, 1], + ["cleanup_tail", 112, 267, 1], + ["cleanup_tail", 113, 267, 1], + ["cleanup_tail", 114, 267, 1], + ["cleanup_tail", 115, 267, 1], + ["cleanup_tail", 118, 262, 1], + ["cleanup_tail", 119, 262, 1], + ["cleanup_tail", 120, 262, 1] + ] +} diff --git a/research/fresh-helper-boundary/FRONTIER-CHECKS.json b/research/fresh-helper-boundary/FRONTIER-CHECKS.json new file mode 100644 index 0000000000..2bebc81a01 --- /dev/null +++ b/research/fresh-helper-boundary/FRONTIER-CHECKS.json @@ -0,0 +1,14 @@ +{ + "schema": "frontier-watch/1", + "started_utc": "2026-10-21T19:32:20Z", + "interval_minutes": 20, + "checks": [ + { + "utc": "2026-10-21T19:52:05Z", + "latest_pr": 4437, + "highest_conditional_claim_pr": 4416, + "kappa": "0.00268647", + "action": "No stronger new claim found. Continue from p7 and PR4433 tail theorem." + } + ] +} \ No newline at end of file diff --git a/research/fresh-helper-boundary/NATIVE-RESULT.json.gz b/research/fresh-helper-boundary/NATIVE-RESULT.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e6fdb31624e4eb8c7c770bb4422cd07ea99ab152 GIT binary patch literal 29131 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 A!~g&Q literal 0 HcmV?d00001 diff --git a/research/fresh-helper-boundary/PROOF.md b/research/fresh-helper-boundary/PROOF.md new file mode 100644 index 0000000000..4fe9fa7eec --- /dev/null +++ b/research/fresh-helper-boundary/PROOF.md @@ -0,0 +1,224 @@ +# Proof and conditional transfer + +## 1. Boundary contract + +Use the source full-identity native unit with 632 independent persistent +fields: 224 main fields and 408 helpers. Its two orientations give the source +main shears, while every helper is autonomous in its own logical reference. +The separately owned C0 field is cleared before each use and at return. No +arbitrary persistent input is overwritten or cleared. + +A field at frame f has physical value `C_f z`, where z denotes its logical +value and `C_f` is the source canonical Fourier frame. At entry this means +`z=C_start^-1 x` for an arbitrary physical input x. It does **not** require +precomputing a Fourier transform of x for free. The helper's actual final +operator is `C_end C_start^-1`, not merely `C_end`. + +For nested frame spaces S0` and `F(.0027212601276)<0`. To establish a fixed-profile +ceiling, arithmetic.py encloses `sum (T_r-P_r) r^(1-C) log r` on each of 16 +closed intervals covering `[0,1/20]`, and proves a strictly positive lower +bound throughout. Thus F is strictly decreasing there. On 128 further closed +intervals covering `[1/20,1]`, it bounds F directly strictly below zero. These +are interval implications for every real C in the covered intervals, not +extrapolation from point samples. The positive rank-one surplus at C=0 then +gives the unique relevant crossing and excludes any later positive region. + +A chronological tensor power multiplies both moments. Paid completion of a +rank-K target by D axes changes its moment by `(K+D)^t-K^t <= D^t`, which is +at most the added paid charge. Splitting a paid job on disjoint axes increases +or preserves its t-charge. Hence tensoring, this paid completion and paid +splitting cannot pass the raw fixed-profile ceiling. This is not a ceiling +on different native profiles or other algorithms. + +## 5. Pay both strictification tails + +Let `C=.00272125`, `t=1-C`, `u=3/10`, `v=150`, `J=10^v` and `L=15^v`. +Use the chronological native product of PR4416 and PR4433, restoring every +whole-job matcher and center before resuming a suspended caller. The product +has target and paid moments `T_t^v` and `P_t^v`, respectively; it is a +substitution of whole array programs, not the tensor power of a sum. + +Canonicalize each complete raw job with both recorded monomial factors; these +need not be an inverse pair. Subsequent placement on specified disjoint axes +is coordinate conjugation. No raw Clifford endpoint is assumed conjugate to +a canonical Fourier transform merely because its rank agrees. + +After the product finishes, complete every productive rank KJ, its split charge is at most +`2 R J^-C <= 2 R^(t+u) J^-u`, since `t+u>=1`. A completion has charge below +`2 L J^-C`. Therefore the complete normalized paid moment is bounded by + +``` +alpha^v + 2 gamma^v + 2 delta^v, +alpha=P_t/T_t, +gamma=P_(t+u)/(10^u T_t), +delta=7688*15/(10^C T_t). +``` + +The interval engine certifies `alpha<1-16/10^9`, `gamma<911/1000` and +`delta<173/200`. Bernoulli's inequality and an exact rational power test give + +``` +1/(1+150*16/10^9) + 2*(911/1000)^150 + 2*(173/200)^150 < 1. +``` + +Both original tails and every completion are paid. The product ambient rank +is `m=121^150`, with no need to materialize its immense word. + +## 6. Uniform compiler, BIT and outer bill + +Use the inherited finite integer mixed-target compiler only after strict +separation. Its fields, source complements, owned centers, integral batching, +matcher restoration and final exits are those of the specified new unit. +The new logarithmic majorant of PR4433 applies with `theta=6/7` and power 13: +`10^7<15^6`, `2*(10^150)^7 <= (121^150)^6`, and +`eta=t*121^(-150*C) > theta^13`. Its base-range condition is checked as well. +For declared `kappa=.00272124`, put `d=(C-kappa)/7=1/700000000` and uniform +saving `C-d`. The explicit integer comparison at `H=349300000000` is + +``` +(H+1)^13 < 2^499, d*H=499. +``` + +It specifies a finite uniform supplier at `N=2^H` with the required strict +saving. The instruction list and integer width B_N are generated by the +source finite algorithm rather than emitted here. + +The source BIT all-size parameter proof gives, before its last relaxation, +`(1-.003)*.00275 + .003*.0000384599 = .0027418653797`. Admit this unchanged +supplier at `.00273`; both the atom/adapter and borrowed-stock inequalities +remain strict. No BIT native word, cover or precision premise is weakened. +The old `.0027` relaxation fails the new outer bill and is a rejection control. + +Set `b=kappa+5d`, `a=kappa+4d`, `q=kappa+3d`, `epsilon=1-d`, `beta=1-3d`, +`r0=d/10`, `stop=d` and `layout=d`. The complete retained ledger recomputes all +nine cost rows, 54 current strict predicates and three functional guards. +Every one is strictly positive at this point. Closed uniform/epsilon gaps, +the insufficient old BIT relaxation and the unfunded tested endpoint fail. + +## 7. Costs and the precise conditional boundary + +Replace the old finite-unit constants by counts of the actual new word: +3363 paid local calls, the complete unchanged scalar lists and coefficients, +new serialized monomial/phase generators, 632 persistent fields and one owned +C0, all 408 helper normalizers, the unchanged p7 bridges and whole idles, the +150-fold chronological substitution, every completion and split, and finally +every integer-compiler unit, route, owned bank and rank-one leaf. A literal +finite recursive enumeration defines their counts and coefficient heights; +no p3 raw count is substituted for the compiled word. The new transport and +helper recipes are available explicitly in NATIVE-RESULT.json.gz. Internal +normalizers are restored before resuming a caller. + +Apply the source finite-template precision and stock argument with these new +constants. The native fixed coefficients and generators are finite, semantic +prefix bounds are rechecked, and all changed movement/scalar/normalizer work +enters the finite constants. The positive outer spare powers absorb those +constants after an effective threshold, under the inherited semantic, +all-column, physical primitive and fixed-tape hypotheses. This is the same +conditional transfer mechanism used by PR4416/4433, not a proof that local +savings are automatically a multiplication theorem. + +Analytic decomposition, permitted physical movement and whole-job frame +realization, source all-column correctness, finite-template closure, fine-prime +padding, fixed-tape execution and exact recovery remain stated source premises. +There is no formal verification or independent human mathematical review of +the complete theorem, no practical implementation claim, and no selected-result +change. Source files and contributor attribution are retained. diff --git a/research/fresh-helper-boundary/README.md b/research/fresh-helper-boundary/README.md new file mode 100644 index 0000000000..cbcfab9ccd --- /dev/null +++ b/research/fresh-helper-boundary/README.md @@ -0,0 +1,155 @@ +# Conditional κ = 0.00272124 from fresh-helper boundary retiming + +This changes the complete native p7 paid profile and proposes + +``` +T(n) = O(n (log n)^(1 - 0.00272124)). +``` + +The conditional saving exceeds [PR4416](https://github.com/CrocSwap/integer-mult-bounds/pull/4416)'s +`0.00268647` by **0.00003477 (about 1.2943%)**, and the pinned selected +`0.0023` by **18.31%**. This is a conditional construction submitted for review; +it does not change the selected record or establish an unconditional theorem. + +The new lever is to optimize helper entrances and exits for **fresh independent +helper inputs**, rather than retain frames selected for a hosted owner fill. +Changing those boundaries together with scalar contact frames saves recursive +calls without changing the scalar order, coefficients, main operator, warp +contacts or owned center program. The exact finite patch changes **117 helper +entrances, 42 helper exits and 395 scalar contact frames**. + +| Complete raw p7 invoice | PR4416 | This construction | +| --- | ---: | ---: | +| Independent productive fields | 7,688 | 7,688 | +| Paid calls | 55,998 | **53,133** | +| Productive rank mass | 131,723 | 133,718 | +| Paid rank mass | 131,115 | 133,110 | +| Rank-one surplus | 608 | 608 | +| Proposed conditional κ | 0.00268647 | **0.00272124** | + +The call reduction is **2,865 (about 5.12%)**. These are finite instruction +counts, not measured runtime speedups. The changed masses illustrate why +counting calls or rank-one mass alone does not establish the saving: the exact +concave moment and complete consumer are checked separately. + +## Native unit and exact evidence + +For each forward or backward local invocation, the new productive helper +profile and complete paid profile are + +``` +H = {4:26, 5:2, 7:29, 8:42, 9:309}, +P = {1:2253, 2:515, 3:445, 4:102, 5:40, 8:8}. +``` + +Every one of the 408 helpers has an independent arbitrary input. The center +remains separately owned, explicitly cleared, reused and uncredited. The +source p7 controller is unchanged: `pairs=7, keep_idle_mask=232127`. Its full +rational Laurent word is replayed; all 2,688 main idle calls are retained. +The complete new raw profiles are + +``` +T = {4:390, 5:30, 7:435, 8:630, 9:4635, + 25:448, 41:448, 57:448, 121:224}, +P = {1:33795, 2:7725, 3:6675, 4:1530, 5:600, + 8:1464, 16:448, 32:448, 48:448}. +``` + +[PROOF.md](PROOF.md) proves the retiming equivalence and explains the complete +transfer. [CHANGES.json](CHANGES.json) is the explicit circuit patch; +`native.py` resynthesizes every transport and replays both orientations on all +632 arbitrary inputs using two retained literal interpreters. All new transport +edges and every distinct helper boundary are independently lowered and decoded +as exact Clifford operations, including their absolute phase. Unchanged +transport phase evidence and the original all-column/native model remain +inherited source premises. + +`arithmetic.py` uses the unchanged interval engine of +[PR4433](https://github.com/CrocSwap/integer-mult-bounds/pull/4433). It certifies + +``` +0.0027212601275 < fixed-profile mixed root < 0.0027212601276. +``` + +An interval argument covers all real `0 0 and margin(ROOT_HIGH)[1] < 0, 'Certified changed-profile root bracket') + need(KAPPA < TESTED < ROOT_LOW, 'Strict supplier and outer headroom') + # An interval proof over real C, rather than signs only at a finite mesh. + signed = {r: targets[r]-paid[r] for r in targets.keys() | paid.keys()} + derivative_lower = None + for i in range(16): + left, right = Q(i, 320), Q(i+1, 320) + lower = Q(0) + for r, count in signed.items(): + power = E.power(r, 1-right if count > 0 else 1-left) + term = E.mul(power, E.log_bounds(r)) + lower += count*term[0 if count > 0 else 1] + derivative_lower = lower if derivative_lower is None else min(derivative_lower, lower) + need(derivative_lower > 0, 'Moment is strictly decreasing on [0,1/20]') + negative_upper = None + for i in range(128): + left, right = Q(1,20)+Q(19*i,2560), Q(1,20)+Q(19*(i+1),2560) + upper = sum(count*E.power(r, 1-left if count > 0 else 1-right)[1 if count > 0 else 0] + for r, count in signed.items()) + negative_upper = upper if negative_upper is None else max(negative_upper, upper) + need(negative_upper < 0, 'Every C in [1/20,1] has negative moment') + t, v, c, b, u = 1-TESTED, 150, 10, 15, Q(3,10) + target = E.moment(targets, t) + alpha = E.divide(E.moment(paid,t), target) + gamma = E.divide(E.moment(paid,t+u), E.mul(E.power(c,u),target)) + delta = E.divide((Q(sum(targets.values())*b),)*2, E.mul(E.power(c,TESTED),target)) + limits = (1-Q(16,10**9), Q(911,1000), Q(173,200)) + for bounds, limit in zip((alpha,gamma,delta),limits): + need(0 < bounds[0] <= bounds[1] < limit < 1, 'Certified complete tail limit') + a, g, d = limits + normalized_upper = 1/(1+v*(1-a))+2*g**v+2*d**v + need(normalized_upper < 1, 'All product, original paid tail and padding charges fit') + need(1 < c < b < 121 and t+u >= 1, 'Strictification hypotheses') + # PR4433's logarithmic majorant, rebound to this changed complete invoice. + theta, power = Q(6,7), 13 + eta = E.scale(E.exp_interval(E.scale(E.log_bounds(121),-v*TESTED)),t) + need(10**7 < 15**6 and 2*(10**v)**7 <= (121**v)**6, 'Actual exit cutoff and shifted logarithm') + need(eta[0] > theta**power, 'Strict exit versus complement contraction') + need(E.exp_interval(E.scale(E.log_bounds(121),v*TESTED))[1] < 2**power, 'Full initial rank range') + gap = (TESTED-KAPPA)/7 + need(gap.numerator == 1, 'Explicit integer grid for the uniform rank') + step = gap.denominator + def wins(j): + return (step*j+1)**power < 2**j + lo, hi = 1, 2 + while not wins(hi): + lo, hi = hi, 2*hi + while hi-lo > 1: + mid = (hi+lo)//2 + if wins(mid): hi = mid + else: lo = mid + H = step*hi + need(H > 7*v and wins(hi) and not wins(hi-1), 'Strict finite uniform-rank integer test') + # The original BIT proof already supplies the stronger, unrelaxed value. + bit = native.read(ROOT/'research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json') + bit_raw = (1-Q(bit['atom_power']))*Q(bit['C1_after_cover'])+Q(bit['atom_power'])*Q(bit['old_ordinary_saving']) + bit_admitted = Q('.00273') + need(bit_raw == Q(bit['ordinary_saving_before_final_relaxation']) > bit_admitted > KAPPA, 'Retain the existing stronger BIT conversion') + need(Q(bit['atom_power']) > bit_raw and 1-bit_raw-Q(bit['atom_power']) > 0, 'Both BIT adapter/stock gaps') + O = native.load(ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'fresh_boundary_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, + 'complex_uniform_saving': KAPPA+6*gap, 'b': KAPPA+5*gap, + 'a': KAPPA+4*gap, 'q': KAPPA+3*gap, 'bit_saving': bit_admitted, + 'epsilon': 1-gap, 'beta': 1-3*gap, 'r0': gap/10, + 'stop': gap, 'layout': gap, 'd': gap} + outer = O.ledger(params) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 3, 'Complete consumer predicate inventory') + need(all(value > 0 for group in ('strict_checks','functional_checks') for value in outer[group].values()), 'Every inherited consumer predicate') + controls = {} + for label, patch in [('old_BIT_relaxation', {'bit_saving': Q('.0027')}), + ('closed_uniform_gap', {'complex_uniform_saving': params['b']}), + ('closed_epsilon', {'epsilon': Q(1)}), + ('unfunded_outer', {'kappa': TESTED})]: + bad = O.ledger(dict(params,**patch)) + failed = [key for key,value in bad['strict_checks'].items() if value <= 0] + need(failed, 'Reject '+label); controls[label] = failed + return encode({'status':'PASS_CHANGED_NATIVE_PROFILE_STRICTIFICATION_AND_COMPLETE_OUTER', + 'kappa':KAPPA, 'tested_saving':TESTED, 'gain_over_PR4416':KAPPA-PREVIOUS, + 'relative_gain_over_PR4416':(KAPPA-PREVIOUS)/PREVIOUS, + 'targets':dict(sorted(targets.items())), 'paid':dict(sorted(paid.items())), + 'productive_fields':sum(targets.values()), 'paid_calls':sum(paid.values()), + 'root_bracket':[ROOT_LOW,ROOT_HIGH], 'headroom_from_declared_to_root':[ROOT_LOW-KAPPA,ROOT_HIGH-KAPPA], + 'fixed_profile_ceiling':{'decreasing_C_interval':['0','1/20'], + 'negative_derivative_upper':E.display((-derivative_lower,)*2), + 'remaining_C_interval':['1/20','1'], 'negative_moment_upper':E.display((negative_upper,)*2)}, + 'strictification':{'tensor_power':v,'cutoff_base':c,'target_floor_base':b,'tail_offset':u, + 'alpha':E.display(alpha),'gamma':E.display(gamma),'delta':E.display(delta), + 'rational_upper_limits':limits, 'normalized_paid_upper':normalized_upper, + 'gap':E.display((1-normalized_upper,)*2)}, + 'compiler':{'theta_upper':theta,'logarithm_power':power,'eta':E.display(eta), + 'uniform_saving':params['complex_uniform_saving'],'gap':gap,'H':H, + 'N':'2^'+str(H), 'integer_test_exponent':hi, 'word_materialized':False}, + 'BIT':{'inherited_unrelaxed_saving':bit_raw,'admitted':bit_admitted,'gap':bit_raw-bit_admitted}, + 'outer':outer, 'negative_controls':controls}) + +if __name__ == '__main__': + result = run(native.read(HERE/'NATIVE-RESULT.json.gz')) + (HERE/'ARITHMETIC-RESULT.json').write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({k:result[k] for k in ('status','kappa','gain_over_PR4416','root_bracket','compiler')},sort_keys=True)) diff --git a/research/fresh-helper-boundary/discover-cut.cpp b/research/fresh-helper-boundary/discover-cut.cpp new file mode 100644 index 0000000000..5caa077ea0 --- /dev/null +++ b/research/fresh-helper-boundary/discover-cut.cpp @@ -0,0 +1,35 @@ +// Optional floating-point discovery, never a proof checker. Apache-2.0. +// Prepared with substantial OpenAI Codex assistance. +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; +struct Arc{int v,rev;double cap;}; +struct Flow{vector> a;vector level,ptr;Flow(int n):a(n),level(n),ptr(n){};void edge(int u,int v,double c){Arc x{v,int(a[v].size()),c},y{u,int(a[u].size()),0};a[u].push_back(x);a[v].push_back(y);}double send(int u,int t,double f){if(u==t)return f;for(int&i=ptr[u];i1e-8&&level[e.v]==level[u]+1){double z=send(e.v,t,min(f,e.cap));if(z>1e-8){e.cap-=z;a[e.v][e.rev].cap+=z;return z;}}}return 0;}vectorcut(int s,int t){while(true){fill(level.begin(),level.end(),-1);queueq;level[s]=0;q.push(s);while(!q.empty()){int u=q.front();q.pop();for(auto e:a[u])if(e.cap>1e-8&&level[e.v]<0){level[e.v]=level[u]+1;q.push(e.v);}}if(level[t]<0){vectorv(level.size());for(int i=0;i=0;return v;}fill(ptr.begin(),ptr.end(),0);while(send(s,t,1e15)>1e-8){}}}}; +struct Node{bool mut;int oldf,newf;}; +int main(int argc,char**argv){if(argc!=3){cerr<<"usage: discover-cut entry|exit output-file"<>F>>N>>E;vectordim(F);vector>space(F);for(int f=0;f>dim[f];for(auto&x:space[f])cin>>x;}vector>sub(F,vector(F,true));for(int i=0;inodes(N);vectoridx(N,-1),rev;for(int i=0;i>m>>nodes[i].oldf>>nodes[i].newf;nodes[i].mut=m;if(m){idx[i]=rev.size();rev.push_back(i);}}vector>edges(E);for(auto&[a,b]:edges)cin>>a>>b; + int H;cin>>H;vector>helpers(H);for(auto&[i,f]:helpers)cin>>i>>f; + vectorcandidates;for(int f=0;funary(V,0);int s=V,t=V+1; + for(auto[a,b]:edges){int fa=nodes[a].newf,fb=nodes[b].oldf;double e0=powers[dim[fb]-dim[fa]];int i=idx[a],j=idx[b]; + double e10=sub[g][fb]?powers[dim[fb]-dim[g]]:INF;double e01=sub[fa][g]?powers[dim[g]-dim[fa]]:INF; + if(i>=0&&j>=0){double w=e10+e01-e0;if(w<-1e-7){cerr<<"nonsubmodular"<=0)unary[i]+=e10-e0;else if(j>=0)unary[j]+=e01-e0; + } + for(auto[i,f]:helpers){int old=nodes[i].newf;double delta=(entry?(sub[g][f] && dim[g]dim[f]))?(entry?powers[dim[f]-dim[old]]-powers[dim[f]-dim[g]]:powers[dim[old]-dim[f]]-powers[dim[g]-dim[f]]):INF;unary[idx[i]]+=delta;} + for(int i=0;i=0&&reach[idx[a]]?g:fa,gb=idx[b]>=0&&reach[idx[b]]?g:fb;if(!sub[ga][gb]){legal=false;break;}delta+=powers[dim[gb]-dim[ga]]-powers[dim[fb]-dim[fa]];} + for(auto[i,f]:helpers)if(reach[idx[i]]){int old=nodes[i].newf;if(entry?(!sub[g][f]||dim[g]>=dim[f]):(!sub[f][g]||dim[g]<=dim[f])){legal=false;break;}delta+=entry?powers[dim[f]-dim[old]]-powers[dim[f]-dim[g]]:powers[dim[old]-dim[f]]-powers[dim[g]-dim[f]];} + if(legal&&delta < -1e-8){int count=0;for(int i=0;i=-1e-8){cerr<<"NO_GAIN round "<= 224: + continue + out.append(e) + for r, f in enumerate(c['final']): + climb(r, f) + return out + +def run(changes=None, phase_check=True): + c = read(BASE/'THREE-base-FULL-IDENTITY-CANONICAL.json.gz') + original = read(BASE/'THREE-base-FULL-IDENTITY-NATIVE.json.gz') + changes = read(HERE/'CHANGES.json') if changes is None else changes + for key, frame_key in (('entrances', 'start'), ('exits', 'final')): + seen = set() + for role, old, new in changes[key]: + need(role not in seen and 224 <= role < 632 and c[frame_key][role] == old, 'Bound unique helper boundary') + seen.add(role); c[frame_key][role] = new + maps = {d: gates(p) for d, p in original.items()} + need(set(maps['forward']) == set(maps['backward']), 'Both scalar orientations have the same contact inventory') + for key in maps['forward']: + f = original['forward'][maps['forward'][key]] + b = original['backward'][maps['backward'][key]] + need(b[1] == dual(f[1]) and b[2] == f[2], 'Actual inverse-transpose scalar correspondence') + changed = deepcopy(original) + seen = set() + for phase, ordinal, old, new in changes['gates']: + key = (phase, ordinal) + need(key not in seen and key in maps['forward'], 'Bound unique retimed scalar contact') + seen.add(key) + for d in changed: + e = changed[d][maps[d][key]] + need(e[2] == old, 'Original scalar frame pin') + e[2] = new + programs = {d: synthesize(c, p) for d, p in changed.items()} + V = load(ROOT/'research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'fresh_boundary_rows') + X = load(ROOT/'research/kappa-rebuild/complex/native_extensions.py', 'fresh_boundary_literal') + checks = {} + profiles = {} + for d, p in programs.items(): + rows, receipt = X.literal_replay(V, c, p, d == 'backward') + for r in range(632): + need(rows['L', r] == V.expected(('L', r), [], d == 'backward', False), 'Every actual arbitrary-input endpoint, role '+str(r)) + profiles[d] = Counter({int(k): v for k, v in receipt['paid_profile'].items()}) + rebound = deepcopy(c) + rebound['local_profile'] = dict(profiles[d]) + receipt['second_literal'] = V.replay(p, rebound, [], d == 'backward', False) + checks[d] = receipt + need(profiles['forward'] == profiles['backward'], 'Same complete native tariff in both orientations') + H = Counter() + for r in range(224, 632): + a, b = c['start'][r], c['final'][r] + need(span(c['frames'][a]) <= span(c['frames'][b]), 'Nested productive helper boundary') + width = len(c['frames'][b])-len(c['frames'][a]) + need(width > 0, 'Every declared helper is independently productive') + H[width] += 1 + physical = [] + if phase_check: + ce = load(ROOT/'research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py', 'fresh_boundary_clifford') + P = load(ROOT/'research/kappa-function-composition/complex/prune_native.py', 'fresh_boundary_lowering') + N = X.N + old_edges = {(e[3], e[4]) for e in original['forward'] if e[0] == 'climb'} + new_edges = {(e[3], e[4]) for e in programs['forward'] if e[0] == 'climb'} + helper_edges = {(c['start'][r], c['final'][r]) for r in range(224, 632)} + for a, b in sorted((new_edges-old_edges) | helper_edges): + op = ce.canonical_frame(9, c['frames'][a]).adjoint().then(ce.canonical_frame(9, c['frames'][b])) + want = len(c['frames'][b])-len(c['frames'][a]) + directions = {} + for d in ('forward', 'backward'): + actual = P.conjugate(ce, op) if d == 'backward' else op + rec = N.lower_exact(P, ce, actual) + need(rec['rank'] == want, 'New physical Fourier rank including phase') + directions[d] = rec + physical.append({'old': a, 'new': b, 'rank': want, 'recipes': directions}) + return {'status': 'PASS_RETIMED_BOTH_ORIENTATIONS_ALL_632_COLUMNS', + 'helpers': dict(sorted(H.items())), 'paid': dict(sorted(profiles['forward'].items())), + 'changed_entrances': len(changes['entrances']), 'changed_exits': len(changes['exits']), + 'changed_scalar_frames': len(changes['gates']), 'native': checks, + 'new_physical_edges_and_boundaries': physical}, c, programs + +if __name__ == '__main__': + import argparse + p = argparse.ArgumentParser(); p.add_argument('--skip-phase', action='store_true'); p.add_argument('--write-result', action='store_true'); args = p.parse_args() + result, _, _ = run(phase_check=not args.skip_phase) + if args.write_result: + need(not args.skip_phase, 'Do not replace a complete phase receipt with a diagnostic') + (HERE/'NATIVE-RESULT.json.gz').write_bytes(gzip.compress((json.dumps(result, indent=2, sort_keys=True)+'\n').encode(),mtime=0)) + print(json.dumps({k: v for k, v in result.items() if k not in ('native', 'new_physical_edges_and_boundaries')}, sort_keys=True)) diff --git a/research/fresh-helper-boundary/verify.py b/research/fresh-helper-boundary/verify.py new file mode 100644 index 0000000000..e434dbf7c6 --- /dev/null +++ b/research/fresh-helper-boundary/verify.py @@ -0,0 +1,99 @@ +"""Replay the changed native unit and its conditional multiplication endpoint. + +Standard library only. Apache-2.0; substantial OpenAI Codex assistance. +""" +import argparse +import gzip +from copy import deepcopy +from hashlib import sha256, sha1 +import json +from pathlib import Path +import native +import arithmetic + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] + +def need(ok, why): + if not ok: + raise ValueError(why) + +def authenticate(): + manifest = native.read(HERE/'SOURCES.json') + seen = set() + for row in manifest['files']: + if row['usage'] != 'input': + continue + path = Path(row['path']) + need(not path.is_absolute() and '..' not in path.parts and str(path) not in seen, 'Canonical unique input') + seen.add(str(path)) + actual = ROOT + for part in path.parts: + actual /= part + need(not actual.is_symlink(), 'No source alias') + data = actual.read_bytes() + need(sha256(data).hexdigest() == row['sha256'], 'Changed source: '+str(path)) + need(sha1(b'blob '+str(len(data)).encode()+b'\0'+data).hexdigest() == row['git_blob'], 'Changed source Git blob') + return len(seen) + +def controls(result, c, programs): + # This is a literal original-word control, not a second mathematical review. + baseline, _, _ = native.run({'entrances':[], 'exits':[], 'gates':[]}, phase_check=False) + need(baseline['helpers'] == {5:28,6:18,7:56,8:93,9:213}, 'Recover the actual predecessor helper profile') + need(baseline['paid'] == {1:2487,2:713,3:224,4:102,5:20,8:8}, 'Recover the actual predecessor paid profile') + V = native.load(ROOT/'research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py','boundary_control_rows') + rebound = deepcopy(c); rebound['local_profile'] = result['paid'] + bad = deepcopy(programs['forward']) + bad.pop(next(i for i, e in enumerate(bad) if e[0] == 'center')) + rejected = False + try: + V.replay(bad, rebound, [], False, False) + except (ValueError, AssertionError): + rejected = True + need(rejected, 'A missing paid center is rejected at the actual frame contact') + # A pure global-phase corruption has an unchanged Pauli tableau. + ce = native.load(ROOT/'research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py','boundary_control_phase') + P = native.load(ROOT/'research/kappa-function-composition/complex/prune_native.py','boundary_control_decode') + row = result['new_physical_edges_and_boundaries'][0] + rec = deepcopy(row['recipes']['forward']) + def decode(r): + left = P.monomial(ce, r['left'],9) + if r['rank']: + return P.monomial(ce,r['right'],9).then(ce.fourier(9,range(r['rank']))).then(left) + return left + original = decode(rec) + rec['left']['phase'] = (rec['left']['phase']+1)%4 + changed = decode(rec) + need(changed.tab == original.tab and changed.zero_state() != original.zero_state(), 'Absolute phase corruption is detected beyond tableau equality') + return {'predecessor_recovered':True,'omitted_center_rejected':True,'global_phase_only_corruption_rejected':True} + +def verify(write=False): + count = authenticate() + result, c, programs = native.run() + math = arithmetic.run(result) + checks = controls(result,c,programs) + artifacts = {'NATIVE-RESULT.json.gz': result, 'ARITHMETIC-RESULT.json': math} + for name, value in artifacts.items(): + normalized = json.loads(json.dumps(value)) + if write: + data = (json.dumps(normalized,indent=2,sort_keys=True)+'\n').encode() + (HERE/name).write_bytes(gzip.compress(data,mtime=0) if name.endswith('.gz') else data) + else: + need(normalized == native.read(HERE/name), 'Exact receipt replay: '+name) + receipt = {'status':'PASS_FRESH_HELPER_BOUNDARY_CONDITIONAL_KAPPA', + 'kappa_decimal':'0.00272124', 'source_inputs':count, + 'physical_edges_and_boundaries':len(result['new_physical_edges_and_boundaries']), + 'changed_entrances':result['changed_entrances'], 'changed_exits':result['changed_exits'], + 'changed_scalar_frames':result['changed_scalar_frames'], + 'controls':checks, 'scientific_receipts':{name:sha256(gzip.decompress((HERE/name).read_bytes()) if name.endswith('.gz') else (HERE/name).read_bytes()).hexdigest() for name in artifacts}} + if write: + (HERE/'RESULT.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n') + else: + need(receipt == native.read(HERE/'RESULT.json'), 'Final checked receipt') + return receipt + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--write-receipts', action='store_true', help='Author receipts explicitly; ordinary replay does not write.') + args = parser.parse_args() + print(json.dumps(verify(args.write_receipts),sort_keys=True)) From eb6195fe3acd45669f17d7dd957e5b0177957f57 Mon Sep 17 00:00:00 2001 From: Cinna Davis <1337isnot1337@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:24:43 -0500 Subject: [PATCH 4/7] Combine query thinning and helper retiming for conditional kappa 0.00300105 --- .../FRONTIER-CHECKS.json | 9 +- research/fresh-helper-thinned/AUDIT-4440.md | 44 +++ research/fresh-helper-thinned/PROOF.md | 132 +++++++++ research/fresh-helper-thinned/README.md | 92 ++++++ research/fresh-helper-thinned/RESULT.json | 237 +++++++++++++++ research/fresh-helper-thinned/SOURCES.json | 278 ++++++++++++++++++ research/fresh-helper-thinned/TASK.json | 96 ++++++ research/fresh-helper-thinned/VALIDATION.md | 26 ++ research/fresh-helper-thinned/VERIFY.json | 60 ++++ research/fresh-helper-thinned/verify.py | 180 ++++++++++++ 10 files changed, 1153 insertions(+), 1 deletion(-) create mode 100644 research/fresh-helper-thinned/AUDIT-4440.md create mode 100644 research/fresh-helper-thinned/PROOF.md create mode 100644 research/fresh-helper-thinned/README.md create mode 100644 research/fresh-helper-thinned/RESULT.json create mode 100644 research/fresh-helper-thinned/SOURCES.json create mode 100644 research/fresh-helper-thinned/TASK.json create mode 100644 research/fresh-helper-thinned/VALIDATION.md create mode 100644 research/fresh-helper-thinned/VERIFY.json create mode 100644 research/fresh-helper-thinned/verify.py diff --git a/research/fresh-helper-boundary/FRONTIER-CHECKS.json b/research/fresh-helper-boundary/FRONTIER-CHECKS.json index 2bebc81a01..df86354352 100644 --- a/research/fresh-helper-boundary/FRONTIER-CHECKS.json +++ b/research/fresh-helper-boundary/FRONTIER-CHECKS.json @@ -9,6 +9,13 @@ "highest_conditional_claim_pr": 4416, "kappa": "0.00268647", "action": "No stronger new claim found. Continue from p7 and PR4433 tail theorem." + }, + { + "utc": "2026-10-21T20:12:23Z", + "latest_pr": 4442, + "highest_conditional_claim_pr": 4440, + "kappa": "0.00296", + "action": "Audited exact head 40e22a83; registered replay passed. Switched to the stronger query-thinned construction and combined the verified helper retiming. New result is in research/fresh-helper-thinned." } ] -} \ No newline at end of file +} diff --git a/research/fresh-helper-thinned/AUDIT-4440.md b/research/fresh-helper-thinned/AUDIT-4440.md new file mode 100644 index 0000000000..64c4a98675 --- /dev/null +++ b/research/fresh-helper-thinned/AUDIT-4440.md @@ -0,0 +1,44 @@ +# Audit of PR4440 at 40e22a83ed660d3d6074c4f2dbf14bfb621eee51 + +The 20:12 UTC frontier check found PR4440's conditional 0.00296 above the first +helper-retiming result. Work switched to that source. Its complete registered +Python 3.12.15 replay passed before this combination was developed. Normal +combined replay repeats its full verifier and compares its saved receipt. + +No blocking defect was found **under its stated native, arbitrary-column, +owned-erasure and transfer contracts**. This is an AI-assisted source/proof +and finite-replay audit, not independent human or formal theorem acceptance. + +- **Paid query primitive.** Clear an owned stream, copy the donor, pay one + rank-one Q or Q^-1 job, add/subtract into the target, and erase only the owned + stream. The donor is retained; copied data create no productive input. + The inverse complex Gaussian is normalized with its actual Pauli translation, + not an order-two assumption. Literal arbitrary X/Y/Z columns reject omitted + clear/erase steps. Arbitrary-column physical lowering and owned erasure remain + explicit retained contracts rather than consequences of the finite test. +- **Actual controller.** Rational Laurent and binary coefficient checks replay + every emitted LOCAL, QUERY_SHEAR, IDLE, bridge and boundary program. Replacing + even stages also removes exactly those stage factors from idle operators and + target monomials. Lost helper inventories are charged. A wrong query direction + or altered coefficient changes the checked operator. +- **Native geometry.** Complex forward/inverse contact phases use the same + old-nine/fresh-eight chart on all 112 ports; the central q is fixed. Removing + inactive spectator blocks does not remove an active transform. BIT separately + checks all 111 rational charts and the original native child/copy bills. +- **Chronology and owners.** Full calls return their center before the next + query call. The one sequential owned stream can be reused at raw level; + nested products allocate the distinct centers required by suspended callers. + All full-call helpers are fresh independent fields. No copy, center or inactive + stage receives productive credit. +- **Complete costs.** The literal and closed-form invoices agree. Paid products, + completion and splitting charge both tails; the strict compiler is used only + after separation. The stronger BIT conversion pays its delayed cover fallback + and changes its atom power to 0.004; retaining 0.003 fails the adapter comparison. + Nine outer rows, 54 predicates and four guards are recomputed, with controls. +- **Limits.** The huge winning words and widths are finite algorithmic + specifications. Source all-column, owned-erasure, legal matcher, tape, + precision, analytic and recovery obligations remain conditional. + +The combination below makes no edit to PR4440. Its full and query main operators +stay fixed. It replaces only each full unit by an all-input-equivalent native +unit, then independently rebuilds the complete paid/productive invoice. diff --git a/research/fresh-helper-thinned/PROOF.md b/research/fresh-helper-thinned/PROOF.md new file mode 100644 index 0000000000..bf68dc2b98 --- /dev/null +++ b/research/fresh-helper-thinned/PROOF.md @@ -0,0 +1,132 @@ +# Conditional combination proof + +## 1. Exact unit substitution + +Use the source full-identity main shears and autonomous helpers in both +orientations. The retiming lemma of `fresh-helper-boundary/PROOF.md` changes +helper entrance/exit gauges and scalar contact frames while preserving every +logical row, main boundary, warp contact, scalar order/coefficient and owned +center. Both actual native words are replayed on all 632 arbitrary input +columns; 320 distinct new transport edges/helper boundaries are lowered and +decoded with absolute phase. Every helper boundary is normalized with its +recorded input and output monomials around the complete local job. These +factors need not be an inverse pair. + +Consequently a full LOCAL call in PR4440's complex word can be replaced by +this unit without changing its physical main operator. Allocate its 408 fresh +helper fields on the same distinct owner slots. Their new target profile is +`{4:26,5:2,7:29,8:42,9:309}` and paid profile is +`{1:2253,2:515,3:445,4:102,5:40,8:8}`. Each center remains owned and uncredited. +The same formal gauge equivalence applies under the retained all-column block +lifts; no sum of operators is tensor-powered. + +The source p17 controller has 19 full calls and 16 copied query shears. Every +thin query, full-call phase contact, main boundary and whole idle is unchanged. +The copied-query primitive and its zero/erase and physical Q contracts are +those audited in AUDIT-4440.md. Substitution therefore preserves the entire +main word. The normal verifier freshly executes both source verifiers before +using this implication. + +## 2. Entire changed invoice + +Count the actual emitted source events. Each LOCAL contributes one new H and +P; each QUERY_SHEAR contributes 112 paid rank-one jobs and no productive field; +each nonzero IDLE contributes 224 jobs of rank eight times its listed active +stage count. Each actual main diagonal monomial contributes 112 independent +rank `1+8*number_of_active_stages` fields. This gives + +``` +T={4:494,5:38,7:551,8:798,9:5871,17:448,25:448,33:448, + 41:448,49:448,57:448,65:448,73:448,153:224}, +P={1:44599,2:9785,3:8455,4:1938,5:760,8:152,16:448, + 24:448,32:448,40:448,48:448,56:448,64:448,72:448}. +``` + +There are 11,560 independent productive fields, 69,273 paid calls and rank +masses 260,798 and 259,998. Surplus 800 is preserved. An independent subtraction +of nineteen old helper/paid inventories and addition of nineteen new ones to +the source invoice must agree exactly with these event counts. + +At C=.003001052 the strict raw moment is checked by two rational interval +engines. Root signs at .0030010541830 and .0030010541834 enclose the new root. +As in the source helper package, interval derivatives prove strict decrease +on [0,1/20], and 128 closed interval enclosures exclude any positive moment on +[1/20,1]. This is a fixed-profile ceiling, not a global optimum. Chronological +products multiply the moments; paid completion loses moment by concavity and +splitting increases paid charge. Those operations cannot beat this raw ceiling. + +## 3. Pay both tails and specify a finite uniform rank + +Use t=1-C, u=1/5, v=1024, cutoff J=20^v and floor L=21^v. Apply the source +chronological product and whole-job completion/splitting algorithm, preserving +all spectators, restored matchers, distinct productive fields and owned banks. +Exactly the same charged theorem bounds the normalized paid moment by + +``` +alpha^v + 2 gamma^v + 2 delta^v, +alpha=P_t/T_t, +gamma=P_(t+u)/(20^u*T_t), +delta=11560*21/(20^C*T_t). +``` + +The new exact limits are `alpha<1-10^-9`, `gamma<97/100`, `delta<19/20`. +The old gamma limit 31/32 fails on this changed invoice and is explicitly +rejected. Both new tail limits to power 128 are strictly below 1/16. Hence +both tails at v=1024 are below 2^-32, and the exact rational inequality is + +``` +1/(1+1024/10^9) + 4/2^32 < 1. +``` + +Every completion and original paid tail is included. Final paid ranks are +at most 20^v and every productive target is at least 21^v. The maximum target +and ambient rank is m=153^v. + +Use PR4433's general logarithmic majorant, not an uncharged direct compiler. +Put theta=63/64 and p=1000. Check `20^64<21^63`, +`2*(20^v)^64 <= (153^v)^63`, and `eta=t*153^(-v*C)>theta^1000`. +The complete base range satisfies `153^(v*C)<2^1000` as well. These are precisely +the shifted exit, complement and base-range hypotheses of that majorant. + +For declared kappa=.00300105, set d=(C-kappa)/7=1/3500000000 and uniform +saving C-d. Let H be the reported multiple of 3500000000 satisfying +`(H+1)^1000 < 2^(d*H)`, and reject the previous grid point. RESULT.json +records the exact integers, giving the explicit sufficient rank N=2^H. +The source integer mixed flow supplies its integral widths, complements, owned +centers and exit jobs. The massive word is algorithmically specified, not emitted. + +## 4. Nonrecursive work, BIT and outer bill + +The complete local scalar lists retain the checked maximum allowance 158,168. +Bound each paid-job and helper monomial pair by 1000 elementary fixed +nine-coordinate records: Gaussian elimination, swaps, quadratic/linear phases, +offsets and global phase fit this conservative bound. The resulting local +scalar plus route allowance is below 10^7. The remaining 240 fixed warp +events and 448 main boundary adapters contribute fewer than 688,000 further +elementary records, also within that 10^7 local budget. Nineteen such units, all source query +records, bridges, boundary words and fixed chart records fit the retained raw +10^9 record bound; the verifier checks that larger substituted allowance. + +Update every product/compiler count from this actual word. The source finite +record bound and precision/stock prescription include the new normalizers, +every paid query and copied stream, all completions/splits, source complements, +owned banks, routes and rank-one leaves. No small predecessor constant is +substituted for the final compiled word. Fixed constants are absorbed only +through the positive spare powers of the inherited conditional transfer. + +Retain PR4440's entire BIT construction: pre-cover saving .003459, covered +saving .00345 and atom power .004. Its ordinary saving is .0034363538396, +admitted at .0034, strictly above the new complex endpoint. Its adapter, stock, +cover, owned queries and effective compiler remain unchanged. Normal replay +freshly checks that complete source construction. + +Set b=kappa+5d, a=kappa+4d, q=kappa+3d, epsilon=1-d, beta=1-3d, +r0=d/10 and stop=layout=d. Recompute all nine outer rows, 54 strict predicates +and four functional guards, including the actual new BIT atom. Every check +passes. Old BIT admission, a closed uniform/epsilon gap and the unfunded tested +endpoint are rejected. + +The source arbitrary-column native, owned-erasure, permitted physical matching, +finite-template precision, analytic decomposition, fixed-tape, prime and exact +recovery contracts remain conditional premises. These finite exact checks are +not formal verification or independent human acceptance of the complete theorem. diff --git a/research/fresh-helper-thinned/README.md b/research/fresh-helper-thinned/README.md new file mode 100644 index 0000000000..344616d665 --- /dev/null +++ b/research/fresh-helper-thinned/README.md @@ -0,0 +1,92 @@ +# Conditional κ = 0.00300105: fresh helper retiming on query-thinned controllers + +This builds on the stronger [PR4440](https://github.com/CrocSwap/integer-mult-bounds/pull/4440) +found during the requested 20-minute frontier check. After auditing its exact +head, replace all 19 full complex native calls by the verified fresh-helper +unit of `research/fresh-helper-boundary`. The main controller, 16 paid query +shears and stronger ordinary BIT supplier stay those of PR4440. The proposed +conditional bound is + +``` +T(n) = O(n (log n)^(1 - 0.00300105)). +``` + +The gain is **0.00004105 (about 1.39%) over PR4440's 0.00296**, +**about 11.71% over PR4416's 0.00268647**, and **30.48% over the pinned +selected 0.0023**. The new result is author-checked and awaits review; it +retains the conditional source implementation and transfer contracts. + +| Complete complex raw invoice | PR4440 | Combined construction | +| --- | ---: | ---: | +| Full native calls / paid query shears | 19 / 16 | 19 / 16 | +| Independent productive fields | 11,560 | 11,560 | +| Paid calls | 72,902 | **69,273** | +| Productive / paid rank mass | 258,271 / 257,471 | 260,798 / 259,998 | +| Rank-one surplus | 800 | 800 | +| Proposed conditional κ | 0.00296 | **0.00300105** | + +The native retiming removes **3,629 paid calls**. It changes 117 helper +entrances, 42 exits and 395 scalar frames in each full invocation, with exactly +the same main operator and complete owned-center program. Thus substitution +is a native operator equivalence, not merely replacement of a histogram. +Every helper is still a distinct arbitrary original input; query copies and +centers receive no productive credit. [PROOF.md](PROOF.md) gives the join. + +The exact changed-profile root is enclosed by + +``` +0.0030010541830 < root < 0.0030010541834. +``` + +An interval proof covers every real `0 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "871499999253/875000000000", + "fixed_halo_explicit_metadata_branch": "67375000001/875000000", + "new_BIT_row_stock_sublinear_in_active_group": "3489499997009/3500000000000", + "new_semantic_group_guard": "3/3500000000" + }, + "margins": { + "boundary_algebraic_matrix": "18381438244748161/6125000000000000000", + "fused_gaussian": "18381438234244483/6125000000000000000", + "global_coordinate_router": "10503679/3500000000", + "group_bit_router": "36762879968488963/12250000000000000000", + "group_scans": "1749999999/1750000000", + "main_transform": "18381436494748161/6125000000000000000", + "microbox_face_corrections": "67375000001/875000000", + "polynomial_products": "3499999999/3500000000", + "sparse_union_movement": "2506662688244748161/6125000000000000000" + }, + "parameters": { + "a": "10503679/3500000000", + "b": "8206/2734375", + "beta": "3499999997/3500000000", + "bit_saving": "17/5000", + "cap_xi": "5569162686494748161/6125000000000000000", + "complex_uniform_saving": "10503681/3500000000", + "d": "1/3500000000", + "epsilon": "3499999999/3500000000", + "kappa": "60021/20000000", + "lambda_": "996998949/1000000000", + "lambda_prime": "1744748161/1750000000", + "layout": "1/3500000000", + "q": "5251839/1750000000", + "r0": "1/35000000000", + "stop": "1/3500000000", + "tested_saving": "750263/250000000" + }, + "strict_checks": { + "actual_bit_above_effective": "1396321/3500000000", + "actual_logarithmic_gamma_guard": "1/3500000000", + "actual_logarithmic_group_guard": "555837316130251839/3062500000000000000", + "alpha_logarithm_absorption": "1/35000000000", + "boundary_algebraic_matrix_above_kappa": "6994748161/6125000000000000000", + "cap_above_band": "2506662686494748161/6125000000000000000", + "cap_below_cell": "555837311755251839/6125000000000000000", + "cap_below_phase_cell_power": "6680837313505251839/6125000000000000000", + "complex_above_effective": "1/3500000000", + "complex_below_one_over_32": "2471783/87500000", + "complex_endpoint": "1/1750000000", + "epsilon_below_one": "1/3500000000", + "epsilon_positive": "3499999999/3500000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "6984244483/6125000000000000000", + "gaussian_above_main": "869748161/3062500000000000000", + "global_coordinate_router_above_kappa": "1/875000000", + "global_gamma_power_slack": "9/35000000000", + "group_below_dimension": "1/1750000000", + "group_bit_router_above_kappa": "17468488963/12250000000000000000", + "group_gauge_power_slack": "555837316042751839/3062500000000000000", + "group_key_fits_record": "1/1750000000", + "group_positive": "3499999997/3500000000", + "group_scans_above_kappa": "3489496323/3500000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "635039790400418148631/500000000000000000000000", + "lambda_above_internal": "1/7000000000", + "lambda_above_sigma": "3/7000000000", + "lambda_above_tau": "1/7000000000", + "lambda_prime_above_lambda": "1/7000000000", + "lambda_prime_above_leaf": "85321/149536132812500", + "leaf_saving_above_effective": "2726169/9570312500000000", + "main_transform_above_kappa": "5244748161/6125000000000000000", + "membership_arithmetic_fits_record": "1/3500000000", + "microbox_face_corrections_above_kappa": "269489496329/3500000000", + "microbox_halo_volume": "276500000003/3500000000", + "new_complex_uniform_saving_above_b": "1/3500000000", + "new_semantic_guard_with_C1_one": "1/3500000000", + "polynomial_products_above_kappa": "872374081/875000000", + "positive_layout_slack": "1/3500000000", + "q_below_effective": "1/3500000000", + "q_below_internal": "1/3500000000", + "q_below_leaf": "85321/149536132812500", + "q_positive": "5251839/1750000000", + "short_record_fallback": "2726169/2734375", + "source_axis_superpolynomial": "1/3500000000", + "sparse_union_movement_above_kappa": "2488281256994748161/6125000000000000000", + "stop_below_one": "3499999999/3500000000", + "stop_positive": "1/3500000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/3500000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/3500000000", + "union_tag_work_per_visit_fits_record": "3/3500000000" + } + }, + "paid": { + "1": 44599, + "16": 448, + "2": 9785, + "24": 448, + "3": 8455, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 760, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 69273, + "productive_fields": 11560, + "query_shears": 16, + "scope": "Author-checked conditional construction; retained native/all-column, owned-erasure, whole-job, analytic, precision, tape, prime and recovery contracts. No selected promotion or formal/human acceptance.", + "source_heads": { + "PR4440": "40e22a83ed660d3d6074c4f2dbf14bfb621eee51", + "helper_retiming": "ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9" + }, + "source_inputs": 41, + "status": "PASS_CONDITIONAL_FRESH_HELPER_QUERY_THINNED_KAPPA", + "strictification": { + "alpha": { + "lower": "0.999999997758999184602267590366", + "upper": "0.999999997758999184602267590367" + }, + "cutoff": 20, + "delta": { + "lower": "0.932537400874663431699700098660", + "upper": "0.932537400874663431699700098661" + }, + "floor": 21, + "gamma": { + "lower": "0.969126930833863729265427869330", + "upper": "0.969126930833863729265427869331" + }, + "limits": [ + "999999999/1000000000", + "97/100", + "19/20" + ], + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "tail_offset": "1/5", + "tested": "750263/250000000" + }, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 494, + "41": 448, + "49": 448, + "5": 38, + "57": 448, + "65": 448, + "7": 551, + "73": 448, + "8": 798, + "9": 5871 + } +} diff --git a/research/fresh-helper-thinned/SOURCES.json b/research/fresh-helper-thinned/SOURCES.json new file mode 100644 index 0000000000..4089ad3711 --- /dev/null +++ b/research/fresh-helper-thinned/SOURCES.json @@ -0,0 +1,278 @@ +{ + "schema_version": 1, + "base_commit": "3a23e9d9d2e67833515d1c60a17e966bcdcab43c", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ed33caef5c5827693e9572d252a66f99cbb73d40", + "sha256": "5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "64bfc5af6709ed9811171e0a2108f05e1219cb65", + "sha256": "352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96" + }, + { + "path": "research/fresh-helper-boundary/ARITHMETIC-RESULT.json", + "usage": "input", + "git_blob": "686c36fb19680db327f797ebdfe612487d8c53f8", + "sha256": "5d25fec9ac4b036c93846a50dccfa4af030e2982f5cec02e28702193bf157cf7", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/ARITHMETIC-RESULT.json" + }, + { + "path": "research/fresh-helper-boundary/CHANGES.json", + "usage": "input", + "git_blob": "45744fedd0e28967aa72586048b8bc0c72f419a9", + "sha256": "cde73b8ff5b3c0d06e69e2293b991b24fd14a16dd4ccab7ff6b3439074a94624", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/CHANGES.json" + }, + { + "path": "research/fresh-helper-boundary/NATIVE-RESULT.json.gz", + "usage": "input", + "git_blob": "e6fdb31624e4eb8c7c770bb4422cd07ea99ab152", + "sha256": "37d0848458b289eb50271c47adef6e74014ae30be6363d09394b2337b566b839", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/NATIVE-RESULT.json.gz" + }, + { + "path": "research/fresh-helper-boundary/RESULT.json", + "usage": "input", + "git_blob": "e26608e20be115d28f8853a8c1a12bebfc8e8ec3", + "sha256": "34163eeeef1cd712de457d7fd3b0435f98a12ac456b82256b078f33225456fbd", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/RESULT.json" + }, + { + "path": "research/fresh-helper-boundary/SOURCES.json", + "usage": "input", + "git_blob": "0b40275502f4263a19905f4fb50e346a3629c712", + "sha256": "01998e9b86222d10811fc0114dcd5c946ff9e95025a7cacd00e67a3eefe543d0", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/SOURCES.json" + }, + { + "path": "research/fresh-helper-boundary/arithmetic.py", + "usage": "input", + "git_blob": "4822f04ae09d84a16e8fa8656a533e23fd4068f0", + "sha256": "212bae96d0ddcbc25076afe2589a47736c66b77420057f28c44c937ad087fc07", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/arithmetic.py" + }, + { + "path": "research/fresh-helper-boundary/native.py", + "usage": "input", + "git_blob": "1b36f6cb5f205c33bf48811e0b1b3621c55e8154", + "sha256": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/native.py" + }, + { + "path": "research/fresh-helper-boundary/verify.py", + "usage": "input", + "git_blob": "e434dbf7c68afa0390a307fd15f32348b0e87207", + "sha256": "4c18851214400cf955e10565d89357029d9e765140233831472ce23f0c3ee7bf", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/verify.py" + }, + { + "path": "research/higher-moment-strictification/README.md", + "usage": "input", + "git_blob": "0a736ca89e1eafb73a30e1f2589cc45e6b5f76c3", + "sha256": "ebe80b68ff026ce90f71f274c31744f4c0b36132d15ebb7e39cf2d5df4df270d" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "usage": "input", + "git_blob": "8b40135a84e7f0f0cd44bed69655801310b916a7", + "sha256": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85" + }, + { + "path": "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "usage": "input", + "git_blob": "d9a4f84211182ca200c081ea061d724c8a2cfb70", + "sha256": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-function-composition/complex/prune_native.py", + "usage": "input", + "git_blob": "8c3e11b2408fa96eefa3ebe7952d1b11b90b772b", + "sha256": "f2b37c183a10922eabc8e0436b426a08866430e96bd0adc7e178951c7fbb5257" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "usage": "input", + "git_blob": "fbe6da7241357d89cf5c55b2e7ce2d0d046be32a", + "sha256": "edb273f59a27356ad89f38791590c3c806b228c3510eb508e01e89f2caba95ef" + }, + { + "path": "research/kappa-rebuild/bit/BIT-P3-NATIVE-BINDING.json", + "usage": "input", + "git_blob": "e8c5e4f077fea0bef355e6c3013c7f252d3606cf", + "sha256": "9ece46fdfda6182e757e9a3b1f513fb3d029d730f3bafdcd6ed59180a14175b0" + }, + { + "path": "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "usage": "input", + "git_blob": "a58774e237c9362869a60a22bda35be09fb85872", + "sha256": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443" + }, + { + "path": "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "usage": "input", + "git_blob": "6a139eedbc1015c13df6f2a4333e1a89b5edd18d", + "sha256": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf" + }, + { + "path": "research/kappa-rebuild/bit/bit_native_binding.py", + "usage": "input", + "git_blob": "f4c4082d89969ea311219d9af8013082d599f6f1", + "sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7" + }, + { + "path": "research/kappa-rebuild/bit/complex_controller_factor.py", + "usage": "input", + "git_blob": "cb0cff7c8be5f38f2ee52201d9d0907f9dfd7947", + "sha256": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497" + }, + { + "path": "research/kappa-rebuild/bit/mixed_productive_bit.py", + "usage": "input", + "git_blob": "9c7a8bd5d3ae4c19952648c815031858d6627b96", + "sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + { + "path": "research/kappa-rebuild/complex/FULL-IDENTITY.md", + "usage": "input", + "git_blob": "f97a23d7d21bd7f79c9d0cb14d8c6b44fddd3f23", + "sha256": "c4aa88c4943ef041e9542c519b7600ecf26ed6caff92558fdb07ac88ace64c17" + }, + { + "path": "research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "usage": "input", + "git_blob": "c6edcbdc43bf36bb11201235027d0ec170d07fc8", + "sha256": "943d5fad2fc529f470df05a35446e07ecaef7344abfce450d2c2eb2c9b3798f6" + }, + { + "path": "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "usage": "input", + "git_blob": "4a8c4ed26e53a72362d571c972e65aff546be784", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61" + }, + { + "path": "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "usage": "input", + "git_blob": "b46d44c6ee624968dd57be928b0c15d9d45f3b2c", + "sha256": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "input", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-rebuild/complex/power_two_balance.py", + "usage": "input", + "git_blob": "a55ae0ce78a1861965f899a82604b276260f636c", + "sha256": "76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424" + }, + { + "path": "research/kappa-rebuild/complex/rebuild_native.py", + "usage": "input", + "git_blob": "78a7b1b0e6e43a1347fb361f45c6e0eaff8dd27b", + "sha256": "f94c527cc02215de49350d477618188c4c0da48bc8fb05b4e37b24c482cad7d5" + }, + { + "path": "research/kappa-rebuild/transfer-audit/p3_native_audit.py", + "usage": "input", + "git_blob": "0f3a4067a4b4e20d0e6ca0f84f41851c5168f76d", + "sha256": "5504a55a50546418d10c522984438cdeedb44993f7c1dab7bd4aa1ae0515d902" + }, + { + "path": "research/pr4359-p7-padding/P7-FACTOR.json", + "usage": "input", + "git_blob": "04c7ef620e760cc8f1764bbf0ccd7f32c6a5bd86", + "sha256": "6f96f6be5d8441f71cbe6ebb1657c69b543eb085b848b92b591b7ac01d6e6598" + }, + { + "path": "research/pr4359-p7-padding/TENSOR.md", + "usage": "input", + "git_blob": "8ecfd3e4d0bcb449ecb1e150c4f1f4fbb39ca656", + "sha256": "b2eba86cb979b4dc2a045f2e74bbd29e4d9e5ec87d6a2bc23ba7b54f1f58e3e3" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/pr4359-p7-padding/native_inventory.py", + "usage": "input", + "git_blob": "8d2d96e3998254c2333c43fe47cdfd074cbd811e", + "sha256": "65539acaf45bdfe8c5aee6830f9c9b3d1107c442a60842ef803fdd7688de8f32" + }, + { + "path": "research/query-thinned-controllers/BIT-CONTROLLER.json", + "usage": "input", + "git_blob": "89c400d5970024b3debe870c36ce43889beed001", + "sha256": "39ac84fb848b908f7ba051fae4556d507900c421dc5d23501a9c0cb1d61fd08d", + "pin": "head:40e22a83ed660d3d6074c4f2dbf14bfb621eee51:research/query-thinned-controllers/BIT-CONTROLLER.json" + }, + { + "path": "research/query-thinned-controllers/COMPLEX-CONTROLLER.json", + "usage": "input", + "git_blob": "39318f6ad9baf0838a274ca1042b1e3ba0e74bf9", + "sha256": "bf1143325d8380fab40cd5a85449f9a5412f0340deba7f4693714c92ae320088", + "pin": "head:40e22a83ed660d3d6074c4f2dbf14bfb621eee51:research/query-thinned-controllers/COMPLEX-CONTROLLER.json" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f", + "pin": "head:40e22a83ed660d3d6074c4f2dbf14bfb621eee51:research/query-thinned-controllers/RESULT.json" + }, + { + "path": "research/query-thinned-controllers/SOURCES.json", + "usage": "input", + "git_blob": "0f061c87ff87c43ff1ea0fc418582e9ccea3bc1d", + "sha256": "74b73563d9f78a4562d376b6f33528d652e41097f65747667f112a3e1fa81d29", + "pin": "head:40e22a83ed660d3d6074c4f2dbf14bfb621eee51:research/query-thinned-controllers/SOURCES.json" + }, + { + "path": "research/query-thinned-controllers/controller.py", + "usage": "input", + "git_blob": "d4557e08cfb9fe57cc1ae4024705a72dc95f3583", + "sha256": "8b462d660487b1be4940357c4c7522967b1bfaede3c02b1c66109b85acae0fd2", + "pin": "head:40e22a83ed660d3d6074c4f2dbf14bfb621eee51:research/query-thinned-controllers/controller.py" + }, + { + "path": "research/query-thinned-controllers/verify.py", + "usage": "input", + "git_blob": "f1114036fff66f57014e5c1256141fb78ff4c4a9", + "sha256": "07dea601d6bbaa4d90e576f20c8607c37fb01e8778c798d919fa9df435049950", + "pin": "head:40e22a83ed660d3d6074c4f2dbf14bfb621eee51:research/query-thinned-controllers/verify.py" + }, + { + "path": "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "usage": "input", + "git_blob": "166841a037f069249f6f7f6dedb89248812f59e2", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962" + } + ] +} diff --git a/research/fresh-helper-thinned/TASK.json b/research/fresh-helper-thinned/TASK.json new file mode 100644 index 0000000000..ee8b8e27d1 --- /dev/null +++ b/research/fresh-helper-thinned/TASK.json @@ -0,0 +1,96 @@ +{ + "schema_version": 1, + "task_id": "supplier-boundary-audit", + "priority_revision": 7, + "base_commit": "3a23e9d9d2e67833515d1c60a17e966bcdcab43c", + "original_card": { + "id": "supplier-boundary-audit", + "question": "Can the #4088 four-provider dispatch satisfy the complete ordinary/outer admission contract?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-mixed-fourth-entry/README.md", + "research/scatter-boundary-decision/README.md" + ], + "methods": [ + "Trace one hypothesis through the source, checker and complete caller.", + "Construct one semantically invalid but superficially well-formed fixture and test rejection." + ], + "acceptance_gate": "Pin the current sources and one obligation; the historical owner audit is an example, not evidence of a current bug.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4088 Scope and Open next questions: local words, native receipts and literal fill do not include a rerun of the mixed four-provider ordinary/outer engine. #3801 is the newer scatter-boundary decision; do not restart #2977 as if untouched.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Pin the provider registry, four native source closures and dispatch. Make a bounded acceptance coverage map or one registry adapter preserving every inherited admission predicate and rejection control (including an omitted fourth provider). Record remaining ordinary/outer obligations and a resource estimate before heavy execution. Stop at unresolved source/caller dependencies; no selected-result promotion from a local pass.", + "bottleneck_link": "Closing a current acceptance gap or proof obligation strengthens reliability even without changing kappa.", + "allowed_variations": [ + "One provider-registry, dispatch, native-closure or admission-predicate obligation; separate branches must name distinct coverage." + ], + "scope_change_triggers": [ + "Reporting the historical timing-only diagnostic as a new current acceptance bug.", + "Calling a malformed mutant a failure of the selected construction, or importing an opt-in repair without testing the exporter boundary.", + "Running another root enclosure instead of validating dispatch or weakening an inherited predicate to make mixed admission pass." + ], + "overlap_terms": [ + "owner boundary", + "bridge omission", + "hosting", + "2977", + "scatter export", + "duplicate index", + "parity semantics", + "4088", + "3801", + "staged544-mixed-fourth-entry", + "scatter-boundary-decision" + ], + "existing_checks": [ + { + "scope": "PR #4088: author-checked local words, native receipts, owner/phase fill and exact moment.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Rebind and validate ordinary/outer admission with all four providers; full mixed release not established.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #3801: successor scatter-boundary decision package.", + "evidence": "research/scatter-boundary-decision/README.md", + "remaining": "Consult its exact acceptance scope before any new exporter audit; not proof of a selected failure.", + "status": "author-checked", + "source_commit": "911f8800ba7a4b03603ef62c5ffc6240e53cb5fd", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + "scope_status": "changed", + "actual_scope": "Combine the exact-head PR4440 query-thinned complex controller and stronger BIT supplier with the verified helper boundary retiming; certify a new complete conditional kappa beyond both predecessors.", + "scope_change_reason": "The explicit user task is to beat the strongest current kappa and switch to any stronger PR found in 20-minute checks. PR4440 at head 40e22a83 appeared during this run; its query-thinned native construction supersedes the first p7 result. This package audits and builds on that exact head, combining it with the independently replayed fresh helper retiming.", + "bottleneck_link": "Changing the complete nineteen-call native paid/productive profile improves the binding complex moment while retaining all copied-query charges and the stronger BIT consumer.", + "budget_minutes": 60, + "stop_rule": "Do not continue a superseded lesser kappa. Audit the stronger exact source, check actual unit substitution and the entire outer bill; no root digit-only or selected-frontier promotion.", + "outcome": "completed", + "evidence": "README.md; PROOF.md; AUDIT-4440.md; RESULT.json; SOURCES.json; VALIDATION.md", + "author": "1337isnot1337 with substantial OpenAI Codex assistance", + "ai_assistance": "Substantial OpenAI Codex assistance. No subagents or independent human mathematical review.", + "open_questions": [ + { + "question": "Can another simultaneous multi-frame or query/native topology change beat the new fixed-profile root?", + "why_it_matters": "Only about 4.18e-9 headroom remains in this invoice; another substantial improvement requires a changed profile.", + "first_step": "Start from the two pinned native units and emit a literal changed chronological word with all helper, owned-query and idle charges before a new root claim.", + "blocked_by": "No global optimum or complete multi-frame search is supplied." + }, + { + "question": "Can the owned-query and helper-retiming interfaces be independently proved at arbitrary column multiplicity?", + "why_it_matters": "The finite replays inherit source native, owned-erasure and whole-job contracts.", + "first_step": "Audit AUDIT-4440.md and the block-lift/whole-job clauses of both pinned source proofs.", + "blocked_by": "Finite phase/operator evidence is not formal or human acceptance of the entire source stack." + } + ] +} diff --git a/research/fresh-helper-thinned/VALIDATION.md b/research/fresh-helper-thinned/VALIDATION.md new file mode 100644 index 0000000000..ed9998e51a --- /dev/null +++ b/research/fresh-helper-thinned/VALIDATION.md @@ -0,0 +1,26 @@ +# Validation and limits + +- Source PR4440 head 40e22a83ed660d3d6074c4f2dbf14bfb621eee51: the unchanged + registered CPython 3.12.15 replay passed during the frontier audit. +- Helper retiming head ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9: complete + CPython 3.12.15 registered replay, 320 phase/boundary checks, all 632 arbitrary + columns in both native orientations, negative controls and separate Git-free + replay passed before composition. Its published optimizer reproduces its patch. +- New arithmetic authoring freshly authenticates all pinned inputs, counts the + actual combined event word, and checks the full changed moment, root ceiling, + both tail bounds, logarithmic rank, enlarged scalar/route budget and outer bill. + The authoring path uses previously checked source receipts. Normal registered + replay freshly executes both full source verifiers and compares the combined + receipt. That normal registered CPython 3.12.15 replay passed, freshly + executing both complete source verifiers before the new arithmetic checks. + +No source package was edited. Both exact predecessor commits are retained in +publication ancestry. The selected record is unchanged. No Lean, Docker, +all-history suite, formal theorem acceptance or independent human review is +claimed. Native all-column, owned-erasure, whole-job, physical/tape, analytic, +precision, prime and exact-recovery premises remain conditional. + +The first hosted plan run at predecessor ccdae89 failed four pre-existing +selected-status navigation tests before reaching research replay. The submission +repairs only the two navigation documents, retaining selected kappa 0.0023 and +all historical content. The six targeted navigation/locale tests pass. diff --git a/research/fresh-helper-thinned/VERIFY.json b/research/fresh-helper-thinned/VERIFY.json new file mode 100644 index 0000000000..5af213891f --- /dev/null +++ b/research/fresh-helper-thinned/VERIFY.json @@ -0,0 +1,60 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/fresh-helper-boundary/ARITHMETIC-RESULT.json", + "research/fresh-helper-boundary/CHANGES.json", + "research/fresh-helper-boundary/NATIVE-RESULT.json.gz", + "research/fresh-helper-boundary/RESULT.json", + "research/fresh-helper-boundary/SOURCES.json", + "research/fresh-helper-boundary/arithmetic.py", + "research/fresh-helper-boundary/native.py", + "research/fresh-helper-boundary/verify.py", + "research/higher-moment-strictification/README.md", + "research/higher-moment-strictification/verify.py", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-function-composition/complex/prune_native.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "research/kappa-rebuild/bit/BIT-P3-NATIVE-BINDING.json", + "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "research/kappa-rebuild/bit/bit_native_binding.py", + "research/kappa-rebuild/bit/complex_controller_factor.py", + "research/kappa-rebuild/bit/mixed_productive_bit.py", + "research/kappa-rebuild/complex/FULL-IDENTITY.md", + "research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "research/kappa-rebuild/complex/native_extensions.py", + "research/kappa-rebuild/complex/power_two_balance.py", + "research/kappa-rebuild/complex/rebuild_native.py", + "research/kappa-rebuild/transfer-audit/p3_native_audit.py", + "research/pr4359-p7-padding/P7-FACTOR.json", + "research/pr4359-p7-padding/TENSOR.md", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/pr4359-p7-padding/native_inventory.py", + "research/query-thinned-controllers/BIT-CONTROLLER.json", + "research/query-thinned-controllers/COMPLEX-CONTROLLER.json", + "research/query-thinned-controllers/RESULT.json", + "research/query-thinned-controllers/SOURCES.json", + "research/query-thinned-controllers/controller.py", + "research/query-thinned-controllers/verify.py", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Freshly replay both exact-head source constructions; independently count the combined native/query/idle invoice; certify changed root and all-C fixed-profile ceiling, both charged tails with repaired gamma limit, logarithmic compiler rank, complete stronger BIT and all 54 outer predicates plus four guards." + } + ] +} diff --git a/research/fresh-helper-thinned/verify.py b/research/fresh-helper-thinned/verify.py new file mode 100644 index 0000000000..9ba85a59aa --- /dev/null +++ b/research/fresh-helper-thinned/verify.py @@ -0,0 +1,180 @@ +"""Combine the exact helper retiming with audited PR4440 query thinning. + +Apache-2.0; substantial OpenAI Codex assistance. Source notices retained. +Normal replay freshly executes both source verifiers, then this new ledger. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha1, sha256 +import argparse +import gzip +import importlib.util +import json +from pathlib import Path +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +KAPPA, TESTED = Q('.00300105'), Q('.003001052') +ROOT_LOW, ROOT_HIGH = Q('.0030010541830'), Q('.0030010541834') + +def need(ok, why): + if not ok: raise ValueError(why) + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + +def load(path,name): + spec = importlib.util.spec_from_file_location(name,path) + module = importlib.util.module_from_spec(spec) + sys.modules[name]=module;spec.loader.exec_module(module) + return module + +def encode(x): + if isinstance(x,Q): return str(x) + if isinstance(x,dict): return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)): return [encode(v) for v in x] + return x + +def authenticate(): + seen=set() + for row in read(HERE/'SOURCES.json')['files']: + if row['usage']!='input': continue + p=Path(row['path']);need(not p.is_absolute() and '..' not in p.parts and str(p) not in seen,'Canonical input') + seen.add(str(p));actual=ROOT + for part in p.parts: + actual/=part;need(not actual.is_symlink(),'No source aliases') + b=actual.read_bytes() + need(sha256(b).hexdigest()==row['sha256'],'Changed source: '+str(p)) + need(sha1(b'blob '+str(len(b)).encode()+b'\0'+b).hexdigest()==row['git_blob'],'Changed Git source blob') + return len(seen) + +def ceiling(E,T,P): + signed={r:T[r]-P[r] for r in T.keys()|P.keys()} + def margin(c): + a,b=E.moment(T,1-c),E.moment(P,1-c) + return a[0]-b[1],a[1]-b[0] + need(margin(ROOT_LOW)[0]>0 and margin(ROOT_HIGH)[1]<0,'New complete profile root bracket') + derivative=None + for i in range(16): + l,r=Q(i,320),Q(i+1,320);low=Q(0) + for rank,n in signed.items(): + term=E.mul(E.power(rank,1-r if n>0 else 1-l),E.log_bounds(rank)) + low+=n*term[0 if n>0 else 1] + derivative=low if derivative is None else min(derivative,low) + upper=None + for i in range(128): + l,r=Q(1,20)+Q(19*i,2560),Q(1,20)+Q(19*(i+1),2560) + hi=sum(n*E.power(rank,1-l if n>0 else 1-r)[1 if n>0 else 0] for rank,n in signed.items()) + upper=hi if upper is None else max(hi,upper) + need(derivative>0 and upper<0,'Fixed-profile ceiling for every real 00,'No nonzero charge for erased idle stage') + P[rank]+=224;idle+=224 + for term in word['diagonal']: + need(term[0] in (-1,1) and all(x in (0,1) for x in term[1:]),'Actual normalized main target') + T[1+8*sum(term[1:])]+=112 + need((full,thin,idle)==(19,16,3584),'Every full, copied-query and whole-idle event') + need(sum(T.values())==11560 and sum(P.values())==69273,'Complete new productive/call counts') + need((sum(r*n for r,n in T.items()),sum(r*n for r,n in P.items()))==(260798,259998),'Preserve the exact surplus 800') + # Independent substitution into the source invoice must give the same ledger. + oldH={5:28,6:18,7:56,8:93,9:213};oldP={1:2487,2:713,3:224,4:102,5:20,8:8} + ref=source_query['complex_invoice'] + for key,new,old_unit,new_unit in [('targets',T,oldH,H),('paid',P,oldP,N)]: + check=Counter({int(k):v for k,v in ref[key].items()}) + check.subtract({k:19*v for k,v in old_unit.items()});check.update({k:19*v for k,v in new_unit.items()}) + need(+check==new,'Literal event count equals whole-call substitution: '+key) + E=S.C.load(ROOT/'research/higher-moment-strictification/verify.py','combined_exact_intervals') + root=ceiling(E,T,P) + t,u,v,c,b=1-TESTED,Q(1,5),1024,20,21 + target=E.moment(T,t);alpha=E.divide(E.moment(P,t),target) + other=S.C.load(ROOT/'research/kappa-rebuild/architecture/mixed_target_probe.py','combined_separate_intervals') + tl,th=other.moment(T,TESTED);pl,ph=other.moment(P,TESTED) + need(tl>ph and max(tl,target[0])<=min(th,target[1]),'Independent exact raw-moment engine') + gamma=E.divide(E.moment(P,t+u),E.mul(E.power(c,u),target)) + delta=E.divide((Q(sum(T.values())*b),)*2,E.mul(E.power(c,TESTED),target)) + alpha_gap=Q(1,1000000000);g,d=Q(97,100),Q(19,20) + need(alpha[1]<1-alpha_gap and gamma[1]Q(31,32),'The previous gamma limit fails and is explicitly replaced') + # Apply PR4433's general logarithmic majorant at the actual new ambient rank. + theta,power=Q(63,64),1000 + eta=E.scale(E.power(153,-v*TESTED),t) + need(2*(20**v)**64<=(153**v)**63 and eta[0]>theta**power,'Shifted exit and complement capacity') + need(E.power(153,v*TESTED)[1]<2**power,'Initial compiler range') + gap=(TESTED-KAPPA)/7;need(gap.numerator==1,'Integer compiler grid') + step=gap.denominator + def passes(j):return (step*j+1)**power<2**j + lo,hi=1,2 + while not passes(hi):lo,hi=hi,2*hi + while hi-lo>1: + mid=(lo+hi)//2 + if passes(mid):hi=mid + else:lo=mid + height=step*hi + need(height>8*v and passes(hi) and not passes(hi-1),'Effective uniform rank integer inequality') + # The changed local list is charged under an explicit larger fixed bound. + local_scalar=max(x['real_scalar_allowance'] for x in local['native'].values()) + local_routes=(sum(N.values())+2*408)*1000 + need(local_scalar+local_routes<10**7,'Every new local scalar and monomial route fits') + scalar_upper=19*10**7+16*1792+32*112*(len(word['physical_events'])+sum(len(word['boundaries'][k+'_program']) for k in ('left','right'))) + need(scalar_upper<10**9,'Retain the complete raw nonrecursive bound') + bit=source_query['ordinary_BIT'];atom=Q(bit['atom']);ordinary=(1-atom)*Q(bit['after_cover'])+atom*Q('.0000384599') + admitted=Q(bit['admitted']);need(atom==Q('.004') and atom>ordinary>admitted>TESTED and atom<1-ordinary,'Complete stronger source BIT admission') + L=S.C.load(ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py','combined_outer_ledger') + params={'kappa':KAPPA,'tested_saving':TESTED,'complex_uniform_saving':KAPPA+6*gap, + 'b':KAPPA+5*gap,'a':KAPPA+4*gap,'q':KAPPA+3*gap,'bit_saving':admitted, + 'epsilon':1-gap,'beta':1-3*gap,'r0':gap/10,'stop':gap,'layout':gap,'d':gap} + outer=L.ledger(params);outer['functional_checks']['actual_new_BIT_stock_sublinear']=params['beta']*(1-atom) + need(len(outer['strict_checks'])==54 and len(outer['functional_checks'])==4,'Complete outer predicate inventory') + need(all(x>0 for key in ('strict_checks','functional_checks') for x in outer[key].values()),'Every complete outer inequality') + controls={} + for name,patch in [('old_BIT',{'bit_saving':Q('.0027')}),('closed_uniform',{'complex_uniform_saving':params['b']}),('unfunded_endpoint',{'kappa':TESTED}),('closed_epsilon',{'epsilon':Q(1)})]: + bad=L.ledger(dict(params,**patch));failed=[k for k,x in bad['strict_checks'].items() if x<=0] + need(failed,'Reject '+name);controls[name]=failed + return encode({'status':'PASS_CONDITIONAL_FRESH_HELPER_QUERY_THINNED_KAPPA', 'kappa':KAPPA,'kappa_decimal':'0.00300105', + 'source_inputs':count,'source_heads':{'PR4440':'40e22a83ed660d3d6074c4f2dbf14bfb621eee51','helper_retiming':'ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9'}, + 'gain_over_PR4440':KAPPA-Q('.00296'),'gain_over_PR4416':KAPPA-Q('.00268647'), + 'targets':dict(sorted(T.items())),'paid':dict(sorted(P.items())),'full_calls':full,'query_shears':thin, + 'paid_calls':sum(P.values()),'productive_fields':sum(T.values()),'fixed_profile_ceiling':root, + 'strictification':{'tested':TESTED,'power':v,'cutoff':c,'floor':b,'tail_offset':u, + 'alpha':E.display(alpha),'gamma':E.display(gamma),'delta':E.display(delta), + 'limits':[1-alpha_gap,g,d],'normalized_paid_upper':bound}, + 'compiler':{'theta':theta,'logarithm_power':power,'eta':E.display(eta),'uniform_saving':params['complex_uniform_saving'], + 'gap':gap,'H':height,'N':'2^'+str(height),'integer_test_exponent':hi,'word_materialized':False}, + 'nonrecursive':{'local_scalar_allowance':local_scalar,'local_route_bound':local_routes,'raw_upper':scalar_upper,'raw_budget':10**9}, + 'ordinary_BIT':bit,'outer':outer,'negative_controls':controls, + 'scope':'Author-checked conditional construction; retained native/all-column, owned-erasure, whole-job, analytic, precision, tape, prime and recovery contracts. No selected promotion or formal/human acceptance.'}) + +if __name__=='__main__': + parser=argparse.ArgumentParser() + parser.add_argument('--write',action='store_true',help='Author the new arithmetic receipt from already-audited dependency receipts; normal replay freshly reruns both dependencies.') + args=parser.parse_args();result=run(execute_sources=not args.write) + if args.write:(HERE/'RESULT.json').write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + else:need(result==read(HERE/'RESULT.json'),'Exact combined receipt replay') + print(json.dumps({k:result[k] for k in ('status','kappa_decimal','gain_over_PR4440','compiler')},sort_keys=True)) From 5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39 Mon Sep 17 00:00:00 2001 From: Cinna Davis <1337isnot1337@users.noreply.github.com> Date: Wed, 21 Oct 2026 15:24:43 -0500 Subject: [PATCH 5/7] Repair selected checkpoint navigation blocking research CI --- docs/ci-verification.md | 12 ++++++++++++ docs/research/current-status.md | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/ci-verification.md b/docs/ci-verification.md index 582e416aaf..50e8120dc0 100644 --- a/docs/ci-verification.md +++ b/docs/ci-verification.md @@ -2,6 +2,18 @@ ## Current selected-family replay +Resolve the [selected record](../certificates/selected-result.json) before +running a historical checkpoint. The current cold replay is +`make frontier4359-verify`, using the +[proof review](research/pr-intake-evidence/pr4359/PROOF-REVIEW.md), +[validation](research/pr-intake-evidence/pr4359/VALIDATION.json) and +[source manifest](../certificates/frontier4359-source.json). +The [frontier4359 workflow](../.github/workflows/frontier4359.yml) provides +hosted replay evidence. Metadata and source-pin checks are separate from +operator replay and do not discharge the inherited theorem assumptions. + +## Historical frontier1094 replay + Start with the [selected record](../certificates/selected-result.json). Its `reproduce`, `review`, `source_manifest` and `validation` fields identify the replay command, scoped assessment, source bindings and integration evidence. diff --git a/docs/research/current-status.md b/docs/research/current-status.md index 62a8cbb097..532af84312 100644 --- a/docs/research/current-status.md +++ b/docs/research/current-status.md @@ -1,12 +1,14 @@ # Current reviewed status -Selected conditional κ: **0.0023 = 23/10000**, zxv’s #4359 productive-helper construction, using Jacob Alan Sussman’s mixed-target recursion and the credited cumulative native/outer lineage. +Selected conditional κ: **0.0023** (= 23/10000), zxv’s #4359 productive-helper construction, using Jacob Alan Sussman’s mixed-target recursion and the credited cumulative native/outer lineage. [Selected record](../../certificates/selected-result.json) · [Proof review](pr-intake-evidence/pr4359/PROOF-REVIEW.md) · [Integration receipt](pr-intake-evidence/pr4359/INTEGRATION.json) · [Contributors](community-productive4359-contributors.md). Cold replay: `make frontier4359-verify`. The fresh 23-stage replay and 59 normalized artifacts pass; the changed interfaces have an AI-assisted proof review under retained analytic/native/fixed-tape hypotheses. Winning uniform templates are not materialized. This is not a complete formal or independent human verification. #4404 independently checks a narrower arithmetic/flow scope. -## Historical selected status through #1094 +All sections below are a historical snapshot; the selected-result.json record above is authoritative. + +## Historical checkpoint through #1094 Historical selected conditional κ: **0.001672660197076918**, Rohan Arun's #1094 on Jeremy Kothe's #1087 packing and the cumulative k8/slot/T16 construction. The bit supplier remains #589 on #555. From 7d05d73f96c27a9d360011e04af69b23fa903757 Mon Sep 17 00:00:00 2001 From: Cinna Davis Date: Wed, 21 Oct 2026 15:49:01 -0500 Subject: [PATCH 6/7] Certify retimed p17 controller at conditional kappa 0.003001053 Build on the audited combined frontier with an independent complete native, phase, BIT and conditional-transfer replay. Retain exact source ancestry, paid completion and ownership costs, and the bounded controller search. --- .../EXTERNAL-SOURCES.json | 259 + research/kappa-hybrid-controller/NATIVE.md | 280 + research/kappa-hybrid-controller/PROOF.md | 424 + research/kappa-hybrid-controller/README.md | 295 + research/kappa-hybrid-controller/REPLAY.json | 17 + research/kappa-hybrid-controller/RESULT.json | 54143 ++++++++++++++++ research/kappa-hybrid-controller/SOURCES.json | 332 + research/kappa-hybrid-controller/TASK.json | 108 + .../kappa-hybrid-controller/VALIDATION.md | 39 + research/kappa-hybrid-controller/VERIFY.json | 83 + .../bit/BIT-P6-TENSOR-RESULT.json | 1915 + .../bit/BIT-P6-TENSOR.md | 240 + .../bit/BIT-TENSOR-RESULT.json | 117 + .../kappa-hybrid-controller/bit/BIT-TENSOR.md | 166 + .../bit/bit_p6_tensor_extension.py | 176 + .../bit/bit_tensor_extension.py | 177 + .../certificates/ENDPOINT.json | 2069 + .../certificates/HYBRID-GEOMETRY.json.gz | Bin 0 -> 724051 bytes .../certificates/NATIVE.json | 51970 +++++++++++++++ .../certificates/STRICTIFICATION.json | 52056 +++++++++++++++ .../controller/P17-DIRECT-CASE.json | 48473 ++++++++++++++ .../controller/P17-FULL-LAURENT-CASE.json | 49977 ++++++++++++++ .../controller/make_direct_case.py | 190 + .../dependencies/clifford_exact.py | 149 + research/kappa-hybrid-controller/endpoint.py | 168 + .../frontier/AUDIT.json | 63 + .../frontier/FRONTIER.json | 368 + .../frontier/REPORT.md | 29 + .../kappa-hybrid-controller/frontier/audit.py | 152 + .../kappa-hybrid-controller/local_supplier.py | 164 + .../native_geometry.py | 421 + .../native_inventory.py | 110 + .../kappa-hybrid-controller/parameters.py | 31 + .../kappa-hybrid-controller/search/SEARCH.md | 99 + .../search/SUMMARY-120.json | 1267 + .../search/direct_stage_dp.py | 129 + .../strictification.py | 136 + research/kappa-hybrid-controller/verify.py | 101 + 38 files changed, 266893 insertions(+) create mode 100644 research/kappa-hybrid-controller/EXTERNAL-SOURCES.json create mode 100644 research/kappa-hybrid-controller/NATIVE.md create mode 100644 research/kappa-hybrid-controller/PROOF.md create mode 100644 research/kappa-hybrid-controller/README.md create mode 100644 research/kappa-hybrid-controller/REPLAY.json create mode 100644 research/kappa-hybrid-controller/RESULT.json create mode 100644 research/kappa-hybrid-controller/SOURCES.json create mode 100644 research/kappa-hybrid-controller/TASK.json create mode 100644 research/kappa-hybrid-controller/VALIDATION.md create mode 100644 research/kappa-hybrid-controller/VERIFY.json create mode 100644 research/kappa-hybrid-controller/bit/BIT-P6-TENSOR-RESULT.json create mode 100644 research/kappa-hybrid-controller/bit/BIT-P6-TENSOR.md create mode 100644 research/kappa-hybrid-controller/bit/BIT-TENSOR-RESULT.json create mode 100644 research/kappa-hybrid-controller/bit/BIT-TENSOR.md create mode 100644 research/kappa-hybrid-controller/bit/bit_p6_tensor_extension.py create mode 100644 research/kappa-hybrid-controller/bit/bit_tensor_extension.py create mode 100644 research/kappa-hybrid-controller/certificates/ENDPOINT.json create mode 100644 research/kappa-hybrid-controller/certificates/HYBRID-GEOMETRY.json.gz create mode 100644 research/kappa-hybrid-controller/certificates/NATIVE.json create mode 100644 research/kappa-hybrid-controller/certificates/STRICTIFICATION.json create mode 100644 research/kappa-hybrid-controller/controller/P17-DIRECT-CASE.json create mode 100644 research/kappa-hybrid-controller/controller/P17-FULL-LAURENT-CASE.json create mode 100644 research/kappa-hybrid-controller/controller/make_direct_case.py create mode 100644 research/kappa-hybrid-controller/dependencies/clifford_exact.py create mode 100644 research/kappa-hybrid-controller/endpoint.py create mode 100644 research/kappa-hybrid-controller/frontier/AUDIT.json create mode 100644 research/kappa-hybrid-controller/frontier/FRONTIER.json create mode 100644 research/kappa-hybrid-controller/frontier/REPORT.md create mode 100644 research/kappa-hybrid-controller/frontier/audit.py create mode 100644 research/kappa-hybrid-controller/local_supplier.py create mode 100644 research/kappa-hybrid-controller/native_geometry.py create mode 100644 research/kappa-hybrid-controller/native_inventory.py create mode 100644 research/kappa-hybrid-controller/parameters.py create mode 100644 research/kappa-hybrid-controller/search/SEARCH.md create mode 100644 research/kappa-hybrid-controller/search/SUMMARY-120.json create mode 100644 research/kappa-hybrid-controller/search/direct_stage_dp.py create mode 100644 research/kappa-hybrid-controller/strictification.py create mode 100644 research/kappa-hybrid-controller/verify.py diff --git a/research/kappa-hybrid-controller/EXTERNAL-SOURCES.json b/research/kappa-hybrid-controller/EXTERNAL-SOURCES.json new file mode 100644 index 0000000000..8e7ef41117 --- /dev/null +++ b/research/kappa-hybrid-controller/EXTERNAL-SOURCES.json @@ -0,0 +1,259 @@ +{ + "BIT_default": "repository root", + "BIT_interval_dependency": { + "bytes": 29992, + "fallback_path": "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "preferred_path": "research/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "sha256": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85" + }, + "complex_default": "research/pr4359-p7-padding/source", + "existing_BIT_source_files": [ + { + "bytes": 13061, + "path": "notes/three-stage-cover-bit.tex", + "sha256": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511" + }, + { + "bytes": 4815, + "path": "notes/three-stage-cover-rows.tex", + "sha256": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8" + }, + { + "bytes": 6385, + "path": "research/e8-bit-carrier-skeleton/code/nine/geometry.py", + "sha256": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca" + }, + { + "bytes": 16874, + "path": "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "sha256": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443" + }, + { + "bytes": 50703, + "path": "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "sha256": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf" + }, + { + "bytes": 8380, + "path": "research/kappa-rebuild/bit/bit_native_binding.py", + "sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7" + }, + { + "bytes": 28173, + "path": "research/kappa-rebuild/bit/mixed_productive_bit.py", + "sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + { + "bytes": 42353, + "path": "research/kappa-rebuild/bit/sources/pr589-regenerated/WORD.json.gz", + "sha256": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f" + }, + { + "bytes": 653616, + "path": "research/kappa-rebuild/bit/sources/pr589-regenerated/records/249-records.bin", + "sha256": "ea44aa047a2a9cf034de8b56b2166c49cf2dbdf9cd9ed6a20299a4f2b05ef09a" + }, + { + "bytes": 112648, + "path": "research/kappa-rebuild/bit/sources/pr589-regenerated/records/frames.json", + "sha256": "d006b3bfe0c04afecfea7aecfa59dfe4298b99501c70da3938e40289bc2f5010" + } + ], + "existing_p7_package_files": [ + { + "bytes": 10730, + "path": "research/pr4359-p7-padding/EXPORTED-SOURCES.json", + "sha256": "0305d4730e2dfede834a241099aa6ceeee29444f305dfeb25ae9a1bb8b2df0b6" + }, + { + "bytes": 11603, + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "bytes": 6511, + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/template_bound.py", + "sha256": "25d409726cd867f7584fbd52e1b846335debdab42d24377e00c5653aaf12c0fb" + }, + { + "bytes": 10249, + "path": "research/pr4359-p7-padding/dependencies/tensor-strictification/native_inventory.py", + "sha256": "e1ba009d546981e75f0e6468723b9af4c065f5eb6e08390084fbbf9a579cedf1" + }, + { + "bytes": 29992, + "path": "research/pr4359-p7-padding/source/research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "sha256": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85" + }, + { + "bytes": 814141, + "path": "research/pr4359-p7-padding/source/research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "sha256": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" + }, + { + "bytes": 15898, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "sha256": "4cb32f6b8e388ecf6ed41b5bbdeeb4539cb40c8424f194974afea58f7e0921e8" + }, + { + "bytes": 7318, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/identity_mixed_certificate.py", + "sha256": "e1795294fa4d3100352bfda787ecb1efc2468ff11cbcbaca2476eb642b8d2a0a" + }, + { + "bytes": 16190, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/mixed_forest_search.py", + "sha256": "2dcec76840b437c67125af5b6d3529577f8c38851c792d0ffd9fa928c473e23b" + }, + { + "bytes": 12298, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/mixed_target_probe.py", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "bytes": 4138, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "sha256": "edb273f59a27356ad89f38791590c3c806b228c3510eb508e01e89f2caba95ef" + }, + { + "bytes": 12901, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/complex_controller_factor.py", + "sha256": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497" + }, + { + "bytes": 28173, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/mixed_productive_bit.py", + "sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + { + "bytes": 25720, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/fresh-certificates/THREE-base-HELPER-BOUNDARIES.json.gz", + "sha256": "f90517e395bde58c72cacd5d3481c4ea31d459fe4535384ac16547ac40460555" + }, + { + "bytes": 75462, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "sha256": "943d5fad2fc529f470df05a35446e07ecaef7344abfce450d2c2eb2c9b3798f6" + }, + { + "bytes": 82793, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61" + }, + { + "bytes": 198063, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "sha256": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39" + }, + { + "bytes": 9996, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full_identity_rebuild.py", + "sha256": "9af2ffbb0038c92e2a7d281081b0daaeadce75b11b566e5427845dc1af91e33d" + }, + { + "bytes": 176694, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/controller/P3-NATIVE-COVER.json.gz", + "sha256": "facfc6d6ecde151afb7e6a167776f3fdaac1c816e785a21a39f7f0bfd9140f3f" + }, + { + "bytes": 16380, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/controller/p3_native_cover.py", + "sha256": "fae71fcbbd20b9ee73b049cf6f43ea1d048217fb15feb6055a007e47da3363fe" + }, + { + "bytes": 15369, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md", + "sha256": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9" + }, + { + "bytes": 20800, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/OUTER-TRANSFER-AUDIT.md", + "sha256": "67569961d068633c6ff3ac9dfde47a0c17f0da6d20432799dcc920cff92b5779" + }, + { + "bytes": 10467, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/p3_cover_audit.py", + "sha256": "a0fe9a26f77556e83b31b0c91fea909d6f3d8209d0f9f7ad4e5bc1375d33615e" + }, + { + "bytes": 14209, + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/p3_native_audit.py", + "sha256": "5504a55a50546418d10c522984438cdeedb44993f7c1dab7bd4aa1ae0515d902" + } + ], + "note": "Existing repository inputs; no duplicate baseline vendor. PR4441 is an intact ancestry-bound live dependency. Its complete phase/native receipt is regenerated against pinned original sources at the repository root. The local supplier also authenticates the p7 source export and original center phase gate. Original p7-only wrapper/factor receipts are not read. The p6 BIT validator reuses pinned p3 arithmetic/native gates. Written copy/cover notes retain the inherited contracts.", + "retimed_source_default": "repository root", + "retimed_supplier_head": "ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9", + "retimed_supplier_live_files": [ + { + "bytes": 8228, + "path": "research/fresh-helper-boundary/native.py", + "sha256": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "source_commit": "ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9" + }, + { + "bytes": 13176, + "path": "research/fresh-helper-boundary/CHANGES.json", + "sha256": "cde73b8ff5b3c0d06e69e2293b991b24fd14a16dd4ccab7ff6b3439074a94624", + "source_commit": "ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9" + }, + { + "bytes": 29131, + "path": "research/fresh-helper-boundary/NATIVE-RESULT.json.gz", + "sha256": "37d0848458b289eb50271c47adef6e74014ae30be6363d09394b2337b566b839", + "source_commit": "ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9" + } + ], + "retimed_supplier_original_sources": [ + { + "bytes": 17028, + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "bytes": 13794, + "path": "research/kappa-function-composition/complex/prune_native.py", + "sha256": "f2b37c183a10922eabc8e0436b426a08866430e96bd0adc7e178951c7fbb5257" + }, + { + "bytes": 12470, + "path": "research/kappa-rebuild/complex/native_extensions.py", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "bytes": 25306, + "path": "research/kappa-rebuild/complex/rebuild_native.py", + "sha256": "f94c527cc02215de49350d477618188c4c0da48bc8fb05b4e37b24c482cad7d5" + }, + { + "bytes": 7152, + "path": "research/kappa-rebuild/complex/power_two_balance.py", + "sha256": "76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424" + }, + { + "bytes": 6824, + "path": "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962" + }, + { + "bytes": 82793, + "path": "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61" + }, + { + "bytes": 198063, + "path": "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "sha256": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39" + } + ], + "schema": "hybrid-retimed-external-inputs/2", + "written_proof_source_files": [ + { + "bytes": 5328, + "git_blob": "8933aaf508aa9d4c75ba1290913e02f6868d351d", + "path": "notes/copied-centers-lemma.tex", + "sha256": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe", + "used_for": "Retained complete-stream owned copy/transform/read/discard contract including complex inverse transforms; not imported by runtime." + } + ] +} diff --git a/research/kappa-hybrid-controller/NATIVE.md b/research/kappa-hybrid-controller/NATIVE.md new file mode 100644 index 0000000000..ea4cfb4a55 --- /dev/null +++ b/research/kappa-hybrid-controller/NATIVE.md @@ -0,0 +1,280 @@ +# Exact native and direct physical controller + +The complete raw unit has 17 main pairs, 19 native supplier invocations, +and 16 directly paid shears. Its productive and paid profiles are the +integer dictionaries in `parameters.py`. Their rank masses are 260798 +and 259998. This note proves the new physical construction and identifies +the finite source gates. `PROOF.md` supplies the conditional transfer. + +## 1. Source-bound local supplier + +The local source is the arbitrary-input `THREE-base` reconstruction in +PR4359, retained by the committed PR4416 source export. It has 224 main +fields and 408 autonomous helper fields. Every input is arbitrary, and +every helper has a distinct physical owner. + +The final supplier incorporates the fresh-helper boundary retiming from +[PR4441](https://github.com/CrocSwap/integer-mult-bounds/pull/4441), pinned +at head `ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9`. Its source package is +retained at [../fresh-helper-boundary/](../fresh-helper-boundary/). +The updated PR4441 head +`5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39` retains these same native +source bytes and also combines the retimed supplier with the p17 +native/direct controller at conditional saving `0.00300105`. That +updated head and its complete dependency changes are retained in the +publication ancestry. + +`local_supplier.py` authenticates and regenerates the modification: +117 helper entrances, 42 helper exits and 395 scalar contact frames change. +Scalar order and coefficients, all main boundaries, every warp's physical +entry and exit, and the owned center program remain fixed. + +Here is why this retiming preserves the main operator. A field in frame +$S$ has physical value $C_S z$. A paid nested transport +$C_T C_S^{-1}$ changes its frame without changing its logical value $z$. +At a common frame, scalar addition satisfies + +\[ +C_S z_i+aC_S z_j=C_S(z_i+az_j). +\] + +The generator inserts the required positive nested transport before each +next contact and completes each field to its declared final frame. +Induction through the unchanged scalar actions and warp words preserves +every logical row for arbitrary inputs. Main entrance and exit frames +stay fixed, so their physical forward and backward operators stay fixed. +No finite-order relation on the free warp symbols is used. + +A helper with new entrance $S$ and exit $T$ implements +$C_T C_S^{-1}$ on its arbitrary physical input. Its productive width is +$\dim T-\dim S$. The exact Clifford compiler verifies that this is the +Gaussian rank of the complete boundary operator and provides both +monomial factors around a standard positive Gaussian child. Those factors +need not be an inverse pair. Apply their inverses at the input and output +boundaries of the complete local invocation. Every helper has a fresh +independent owner, so these normalizers attach to its whole job without +changing any other field's boundary. + +Two independent retained interpreters replay both resulting orientations +on all 632 arbitrary persistent input columns, together with an arbitrary +owned-center entry column that is legally cleared. Every helper remains +logically autonomous. The phase compiler checks all 320 distinct new +transport or helper-boundary recipes in both orientations, retaining the +absolute phase through exact tableaux and Gaussian dyadic state vectors. +Unchanged edges retain their authenticated source phase evidence. + +The same gauge induction applies at each permitted column multiplicity +under the source all-column contract. Every new fixed coordinate and +phase generator uses its permitted block lift. This is a chronological +identity of frame transports and scalar actions; the argument does not +infer an all-column implementation by taking the tensor power of a sum. + +This retiming replaces the preliminary fifteen-tail-pruned supplier. +It subsumes all fifteen earlier terminal-climb deletions; no additional +pruning gain is applied. The final local productive helper profile is + +``` +H = {4:26, 5:2, 7:29, 8:42, 9:309}. +``` + +The eight original center paths retain their complete rank-eight requests. +The inherited center recipes verify their products including phase. +Every remaining query is counted: + +``` +L = {1:2253, 2:515, 3:445, 4:102, 5:40, 8:8}. +``` + +The pointwise real-scalar allowances are 158120 forward and 158168 +backward. These counts are regenerated from the unchanged scalar words. +The ideal formal prefix row-$\ell_1$ maxima remain 457 and 169. +Every new transport and helper boundary monomial contributes its actual +movement and phase records to the finite program. A rank-zero normalizer +is still a paid finite operation. + +## 2. Literal direct shear + +For a source port let $q\in\mathbf F_2^9$ be its specified odd vector. +The complete source phase data supplies eight vectors $b_1,\ldots,b_8$ +orthonormal and perpendicular to $q$. Thus the matrix with columns + +\[ +P=(q,b_1,\ldots,b_8) +\] + +is orthogonal over $\mathbf F_2$. All 112 actual port choices are checked; +their $q$ weights are three or seven. + +Write $X_q$ for address translation by $q$, and define the physical +Gaussian line operator by its exact kernel + +\[ +C_q=\frac{1+i}{2}I+\frac{1-i}{2}X_q. +\] + +If $\Pi_P$ is the address permutation induced by $P$, then + +\[ +C_q=\Pi_P C_{e_0}\Pi_P^{-1},\qquad +C_q^2=X_q,\qquad C_q^{-1}=X_q C_q. +\] + +These are literal equalities with global phase one. In particular the +inverse uses the same positive Gaussian child and one extra translation. +`native_geometry.py` checks both kernels using exact tableaux and the +absolute phase, independently lowers them to rank one, and checks the +two nonzero coefficients of all 512 coordinate columns. Omitting the +inverse translation is rejected at all 112 ports. + +The direct forward stage acts on arbitrary physical arrays as follows: + +1. Allocate an owned zero work stream and copy the complete source $X$. +2. Apply the input route $\Pi_P^{-1}$ to that copy. +3. Pay one rank-one Gaussian request on the copy. +4. Apply $\Pi_P$, then translate by $q$, giving $C_q^{-1}X$. +5. Add the copy to $Y$, retaining $X$, and release the copy. + +The resulting main map is exactly + +\[ +S_y(Q^{-1}):(X,Y)\longmapsto(X,Y+C_q^{-1}X). +\] + +The dual construction copies $Y$, applies $C_q$, subtracts it from +$X$, and releases the copy. It implements $S_x(-Q)$. The selected +controller uses only direct forward stages, but both kernel orientations +are checked. + +The work stream includes the original field's complete control and +spectator ranges. It receives no productive output credit. Its transformed +value can be discarded after the read under the retained +[copy/transform/read/discard contract](https://github.com/CrocSwap/integer-mult-bounds/blob/da637c87c89482bc4c86be36bd0071b3d400dbed/notes/copied-centers-lemma.tex). +That source explicitly covers complex inverse transforms and nonzero +temporary erasure. No inverse query is required to uncompute an owned +stream that is discarded through this interface. + +For $f$ columns the address space has dimension $9f$. The address map +is $P\otimes I_f$, or its column-order version $I_f\otimes P$. Its +induced permutation on value arrays is the product of the per-column +permutations. The single recursive request has rank **$f$**, with active +span of the vectors $q\otimes e_j$ for $1\le j\le f$ over +$\mathbf F_2$. The inverse translation repeats $q$ in every column. +The request has the full current ancestor weight. Its invoice contains +one rank-$f$ request, with every whole-field route charged. + +Each of the 1792 direct episodes is charged one paid request, 64 +pointwise real-scalar primitives per full field volume, and an allowance +of eight nonrecursive full-stream movement/control records. Those records +cover initialization, copy, the two routes, inverse translation, read/add, +and release. The copy remains owned across the recursive call. Its bank +is included in the expanded stock bound until release. + +## 3. Specialize the exact controller + +The original complex local operators are + +\[ +F_s=D_sS_y(Q^{-1}),\qquad B_s=D_sS_x(-Q). +\] + +The coefficient operators $Q,D_0,\ldots,D_{34}$ commute. Their symbols +form the rational Laurent ring used to factor the full p17 controller. +The exact retained-idle mask is 280378328416255, and the scalar boundary +words come from the source factorization. The pinned original rational +controller code is replayed by `controller/make_direct_case.py`. + +[PR4440](https://github.com/CrocSwap/integer-mult-bounds/pull/4440), +at head `40e22a83ed660d3d6074c4f2dbf14bfb621eee51`, independently gives +the same query-thinning mechanism and p17 schedule. The combination of +that interface with the retimed supplier is also present in updated +PR4441. This package contributes an independent source-bound physical +certificate, the bounded controller search, a separately replayed p6 +BIT supplier, and a refinement of the certified endpoint. + +Set $D_s=I$ for the internal even stages + +\[ +s=2,4,\ldots,32. +\] + +Leave $D_0$, every odd stage, and $D_{34}$ unchanged. This ring +homomorphism preserves the exact factorization. The sixteen specialized +local stages become the directly paid shears just proved. They have no +native helpers. The nineteen retained stages each receive 408 fresh +arbitrary helper owners. + +The factory verifies every collapsed Laurent coefficient over the +rationals. A separate event interpreter replays the actual right boundary, +specialized local/idle/scalar word, and left boundary on every one of +the 34 main input columns. It compares all 1156 entries with the exact +diagonal, including the signs of every $Q$ power. Wrong native reverse +sign and wrong direct orientation controls are rejected. + +## 4. Surviving native contacts on the full carrier + +The proof keeps all original 281 address axes. Stage $s>0$ has its +original fresh eight-axis block. Unused even-stage axes remain arbitrary +spectators; they receive no productive rank from a deleted $D_s$. + +The contact compiler keeps the original full-prefix reference frames at +each surviving native stage. These are invertible coordinate gauges used +to prove the physical operator identity on arbitrary inputs. They do not +assert that the incoming numerical values were previously produced by +every reference-frame transform. + +For example, let $A_X,A_Y$ denote the reference entry frames and +$B_X,B_Y$ the exit frames. The exact contact checks prove + +\[ +B_XA_X^{-1}=B_YA_Y^{-1}=D_s, +\] + +and prove that the cross term is $D_sQ^{-1}$ forward or $D_sQ$ +backward, with the latter's scalar minus sign in the native word. Every +old spectator factor cancels in these quotients. Therefore changing +earlier stages to direct shears does not invalidate a surviving local map. + +`native_geometry.py` checks all 8512 entry/exit contacts over the full +281-axis carrier. Each route is explicitly orthogonal and involutive, +fixes the actual $q$, and has the required complete quadratic phase and +physical translation. Both orientations are checked by exact polynomial +identities, retaining their inverse translations. + +## 5. Idle and endpoint phases after specialization + +Every literal idle window is specialized with the same stage mask. +An empty stage list is identity and incurs no Gaussian query. All sixteen +middle windows disappear this way. The initial and terminal windows have +positive ranks $16,24,\ldots,72$, each appearing 448 times in the paid +invoice. Each complete positive window is paid once per physical owner. + +For a window containing stage zero, use the source's eight $q$-orthogonal +old axes and its exact `translation_after`. Append only the fresh axes +whose stage factors remain active. Other windows use only their selected +fresh axes. The verifier checks the complete Gaussian phase and the +independence of every such axis set. No old split tariff is substituted +for a complete idle request. + +For a specialized output monomial + +\[ +Q^{\epsilon}\prod_sD_s^{a_s},\qquad +\epsilon\in\{-1,1\},\quad a_s\in\{0,1\}, +\] + +the target width is $1+8\sum_s a_s$. If $a_0=1$, its positive old +axes are all nine old coordinates; otherwise its old axis is $q$. +Append the selected active fresh blocks. A negative $Q$ power requires +translation by $q$, which is explicitly checked and charged. + +The resulting 3808 main targets have ranks $17,25,\ldots,73$, each with +multiplicity 448, and rank 153 with multiplicity 224. The nineteen local +suppliers contribute 7752 additional distinct targets. The complete +census is 11560 independent productive fields and 69273 paid requests. +Their scalar allowance is 3500584, including every direct episode. +Their rank-one surplus is exactly 800. + +`certificates/HYBRID-GEOMETRY.json.gz` contains the full contact, route, +kernel, endpoint and idle recipes. The native gate regenerates its +canonical JSON payload and compares the payload exactly; it does not +depend on the gzip implementation's stream encoding. diff --git a/research/kappa-hybrid-controller/PROOF.md b/research/kappa-hybrid-controller/PROOF.md new file mode 100644 index 0000000000..205fb6c16a --- /dev/null +++ b/research/kappa-hybrid-controller/PROOF.md @@ -0,0 +1,424 @@ +# Conditional saving 0.003001053 from the hybrid controller + +Subject to the inherited native and transfer hypotheses stated below, +the construction gives + +\[ +T(n)=O\!\left(n(\log n)^{1-\kappa}\right),\qquad +\kappa=0.003001053. +\] + +The physical change is proved in `NATIVE.md`. It specializes sixteen +transverse factors of the source Laurent controller to identity and pays +for their remaining $Q^{-1}$ shears directly. The final raw controller +has nineteen source-bound native invocations, 1792 directly paid Gaussian +requests, and 11560 independent productive fields. The native supplier +uses [PR4441's fresh-helper boundary retiming](https://github.com/CrocSwap/integer-mult-bounds/pull/4441), +with unchanged local source bytes pinned at +`ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9`. The query-thinning +mechanism and p17 schedule were independently given in +[PR4440](https://github.com/CrocSwap/integer-mult-bounds/pull/4440), +at head `40e22a83ed660d3d6074c4f2dbf14bfb621eee51`. + +Updated PR4441, at +`5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39`, also combines this +retimed supplier with the same p17 profile and admits `0.00300105`. +That updated head and its complete dependency changes remain in the +publication ancestry. The contribution here is an independent +source-bound physical certificate, the bounded controller search, +the separately replayed p6 BIT supplier, and the endpoint refinement +to `0.003001053`. The combined raw profile is shared with updated +PR4441. + +The retimed supplier replaces the preliminary lifetime-pruned local word. +Its construction subsumes the fifteen earlier terminal-climb deletions. +The final invoice uses the retimed profile directly and adds no separate +pruning gain. Its complete local source and boundary proof are retained +at [../fresh-helper-boundary/](../fresh-helper-boundary/). + +This theorem remains conditional on the admitted all-column native +semantics, permitted whole-job matchers, spectator law, mixed compiler, +fine-prime/analytic estimates, precision, stock, fixed-tape realization, +and exact recovery used by the PR4359/PR4416 line. The scripts check the +finite native modifications and exact arithmetic inputs. They are not a +formal verification of the complete multiplication theorem. + +## 1. Complete raw moments + +Use the productive and paid multiplicities $T_k,P_r$ in +`parameters.py`, including all local helper outputs, direct queries and +specialized whole idle requests. Put + +\[ +T_\tau=\sum_kT_k k^\tau,\qquad +P_\tau=\sum_rP_r r^\tau,\qquad \tau=1-C. +\] + +The exact rank-one moments and number of productive owners are + +\[ +T_1=260798,\qquad P_1=259998,\qquad B=11560. +\] + +Thus the complete rank-one surplus is 800. The raw ranks overlap: +the smallest productive rank is four and the largest paid rank is 72. +A positive raw moment therefore still requires a strictification step. + +The numerical discovery root is approximately 0.003001054183175. The +certificate uses the strictly smaller rational point + +\[ +C=C_{\rm test}=0.003001054=\frac{1500527}{500000000}. +\] + +All later inequalities use rational interval bounds. No floating-point +root or search score is used as acceptance evidence. + +## 2. Chronological native tensor substitution + +The hybrid unit retains the same all-column request interface as its +native components. At a direct paid position with $f$ columns it makes +one rank-$f$ request on a complete owned copy. The surrounding address +route is $P\otimes I_f$, with the inverse route and repeated $q$ +translation. Every field includes its full control and spectator ranges. +The query retains the current complete ancestor weight. + +Apply the chronological tensor construction of the admitted native rule. +Suppose units $U,V$ have productive ranks $k_i,h_j$, and paid ranks +$r_\ell,s_a$. Run copies of $U$ on the distinct $j$-indexed owners +at column count $h_j$. At each common paid position $\ell$, pause +those copies. Normalize their complete current jobs, run one full $V$ +unit at column count $r_\ell$, restore the whole-job matchers, and resume +the paused $U$ copies. Canonicalization uses both recorded monomial +boundary factors of each complete physical job. These factors need not +be an inverse pair. Placement on the desired disjoint coordinates then +uses coordinate conjugation; Fourier rank alone does not supply an +unrecorded normalizer. + +The resulting productive ranks are $k_i h_j$. The remaining paid ranks +are $r_\ell s_a$. Arbitrary-input correctness permits correlated current +values, while physical owners remain distinct. Every suspended owned +center or direct-copy bank remains allocated until its own release. +No copy or zero-initialized work stream receives productive credit. +Every unused coordinate remains an arbitrary spectator. + +This is chronological replacement of complete physical requests. It does +not expand a scalar sum and assign rank products without a program. The +copied-stream interface and the arbitrary-input native gates provide the +same closure at direct and native paid positions. + +After $v$ copies the raw productive and paid moments are +$T_\tau^v,P_\tau^v$. There are $B^v=11560^v$ productive owners. +The conservative ambient rank is $m=281^v$; unused stage coordinates +are retained in this bound. Raw productive ranks are at most $153^v$. + +## 3. Paid completion and complete split tails + +Choose + +\[ +v=17160,\qquad J=18^v,\qquad L=19^v. +\] + +After the entire native product has finished, normalize each productive +job of rank $KJ$, write $R=qJ+r$. Its split moment is at most + +\[ +qJ^\tau+r^\tau\le RJ^{-C}+J^\tau\le2RJ^{-C}. +\] + +Keeping unsplit requests of rank at most $J$, the full original paid +part is bounded by + +\[ +P_\tau^v+2P_1^vJ^{-C}. +\] + +A completion request $D0, +\] + +because completion adds equal productive and paid rank and splitting +preserves paid rank. + +## 4. Explicit finite uniform compiler + +Apply the inherited integer whole-job compiler, attributed in the source +to Jacob Alan Sussman's Theorem 1G. Select + +\[ +\kappa=0.003001053,\qquad +d=\frac{C-\kappa}{7}=\frac1{7000000000},\qquad +u=\kappa+6d=\frac{21007377}{7000000000}. +\] + +Here $u$ is the uniform complex saving. Put + +\[ +t=1-C,\qquad z=1-u,\qquad z_0=(t+z)/2, +\qquad \Delta=z_0-t=\frac1{14000000000}. +\] + +The exact inequality $18^{55}<19^{54}$ bounds the exit exponent by +$54/55$; use $h=1/55$. Retaining the full ambient $281^v$, the bounds +$18<2^5$, $281<2^9$ give + +\[ +\frac{mE(x)}x<2^{A}x^{-h},\qquad +A=(5+9h)v=88608. +\] + +The complement coefficient $\eta=z_0m^{z_0-1}$ satisfies + +\[ +-\log_2\eta<1+9v(1-z_0)=\frac{32513793811}{70000000}. +\] + +The following integers are sufficient: + +\[ +\begin{aligned} +H_0&=\left\lceil\frac{A\Delta+1+9v(1-z_0)}{h\Delta}\right\rceil + =357651736794440,\\ +H_1&=\left\lfloor\frac{H_0(1-z_0)}{z-z_0}\right\rfloor+1 + =15026650096742881962201,\\ +N&=2^{H_1}. +\end{aligned} +\] + +`endpoint.py` checks $H_0\ge9v$, the complete exit/complement +inequality, and the final strict power inequality. The last inequality's +gap is exactly $1/14000000000$. Reducing either threshold by one fails +its stated sufficient bound. Strong induction below and above the +threshold gives the admitted uniform saving $u$ at rank $N$. + +These are sufficient finite values. The enormous tensor and uniform +programs are specified by finite recipes; they are not materialized and +are not claimed to be practical or minimal. + +## 5. Ordinary BIT input and the outer ledger + +The ordinary BIT supplier is the separately source-bound six-pair +construction in `bit/BIT-P6-TENSOR.md`. It has thirteen native invocations, +7039 arbitrary input columns, 5707 independent helper owners, and 117 +owned-copy episodes. The complete source rational charts are embedded in +the 92-dimensional carrier. Every whole idle and endpoint is regenerated. + +Its exact raw profiles are + +``` +T_BIT = {8:5707, 22:444, 36:444, 50:222, 92:222}, +P_BIT = {1:17199, 2:17446, 3:1027, 4:572, 5:1326, + 6:143, 7:1357, 14:444, 28:444, 42:222}. +``` + +The BIT proof uses tested saving 0.00314, a native tensor power of 6000, +uniform saving 0.003135, and covered saving 0.00313. Its normalized paid +moment is bounded by $1653/1696<1$. All native tensor substitutions +and whole-job matchers precede one delayed global cover, with one common +external weight. Internal queries are not separately lowered to +incompatible covered weights. The inherited two-call ordinary wrapper +has fixed multiplicity. + +With atom exponent 0.0032 and the inherited old ordinary saving +$384599/10^{10}$, the exact conversion gives + +\[ +(1-0.0032)\,0.00313+0.0032\frac{384599}{10^{10}} +=\frac{9750334599}{3125000000000} +=0.00312010707168>0.00312. +\] + +The complex outer ledger uses this certified ordinary saving 0.00312 and + +\[ +b=\kappa+5d,\quad a=\kappa+4d,\quad q=\kappa+3d, +\quad\epsilon=1-d,\quad\beta=1-3d, +\quad r_0=d/10,\quad\mathrm{stop}=\mathrm{layout}=d. +\] + +The authenticated outer ledger checks all 54 strict predicates and the +three inherited functional predicates. A fourth functional predicate +binds the actual BIT atom exponent $\delta_{\rm BIT}=0.0032$: + +\[ +\beta(1-\delta_{\rm BIT}) +=\beta\frac{623}{625} +=\frac{622999999733}{625000000000}>0. +\] + +The inherited BIT stock predicate uses the old atom $0.003$; retaining +that predicate does not replace this check for the actual supplier. +The new inequality also follows from the BIT certificate's stronger +$\delta_{\rm BIT}<1-a_{\rm ordinary}$ and the outer $\beta>0$. +It is a stock condition for the BIT atom, while copied-query work is +charged by the finite envelope in the next section. + +Every strict and functional value is positive. The limiting +main-transform margin above $\kappa$ is exactly + +\[ +\frac{10489496313}{24500000000000000000}. +\] + +Mutation controls reject closed precision/uniform gaps, a final endpoint +equal to the tested raw saving, and an insufficient ordinary BIT premise. + +## 6. Full finite costs, owned stock and precision + +The raw hybrid scalar invoice is 3500584. It includes the source native +words in two forward and seventeen backward orientations, both literal +controller boundary programs, all scalar bridges and signed swaps, and +64 pointwise real-scalar operations per direct port episode. In +particular it includes initialization, complete-stream copying, read/add, +and release of each of the 1792 owned direct copies. + +Movement is charged separately. Each direct episode has an allowance of +eight full-stream movement/control records, covering its two coordinate +routes, inverse translation, and the associated stream operations. Thus +the raw direct contribution is 14336 such records. All 8512 surviving +native contacts, every helper input/output normalizer, endpoint +normalizer, idle route, and whole-job matching route also belong to the +complete movement inventory. They are not absorbed by declaring a +rank-zero operation free. + +Use separate owned banks for every suspended native center and every +suspended direct copy. A raw hybrid invocation has 19 native center-bank +episodes and 1792 direct-copy episodes, for 1811 owned-bank episodes. Within +a direct stage the ports can be processed sequentially, but no such +reuse is needed to justify the conservative bound that counts every +episode. A copied stream remains allocated while its recursive request +executes. It is released only after its destination read/add is complete. +Distinct productive helpers retain their independent arbitrary inputs. + +After tensor substitution, target completion, disjoint splitting and +uniform compilation, count all actual expanded records. Let $U$ be the +number of raw hybrid instances in that finite recipe, and let $R$ count +all nonrecursive movement/normalization records, including every inherited +and new route. The conservative scalar envelope can use + +\[ +G=3500584\,U+8R. +\] + +Count every complete owned work-bank volume, with separate entries for +nested suspended copies and centers. Let $O$ be their conservative +total in the same complete-stream units used by the inherited closure, +$W$ the final productive width, and $P$ the final paid rank-one leaf +count. Completion and compiler temporaries, if allocated, also enter +$O$; they are not inferred from the raw 1811 figure alone. Substitute +these enlarged fixed counts in the retained envelope + +\[ +\begin{aligned} +Z&=W+O,\\ +E&=64(Z+N+P+G+1)^3,\\ +B_{\rm const}&=P+E,\\ +C_0&=32N B_{\rm const}^2. +\end{aligned} +\] + +All these counts are finite and specified by the complete chronological +recipe. In particular, both monomial boundary factors of every retimed +helper and every new internal transport recipe enter the movement count. +The fixed-template precision, recurrence and eventual absorption +arguments use these new constants. Numerical allowances from the old +small p7 word are not substituted for the expanded program. Coordinate +permutations and unit phases have zero coefficient height but still have +movement and owned-stock costs. + +This use of the enlarged constants retains the inherited all-column +physical, fine-prime, analytic, stock, fixed-tape and recovery hypotheses. +The finite scripts certify their explicit arithmetic inputs and the +modified native contracts. The final theorem is conditional on those +written premises. + +## 7. Reproduction and source separation + +From the repository root run + +```sh +python3 -I -O -B research/kappa-hybrid-controller/verify.py +``` + +The default complex source root is the existing +`research/pr4359-p7-padding/source` export. The default BIT source root is +the repository root. The retained `../fresh-helper-boundary/` package +provides the pinned PR4441 retiming and its complete phase recipes. +Explicit source-root arguments allow independent source preparation. +The verifier authenticates the exact original bytes, regenerates the +retimed local supplier and rational controller, checks the required +physical phases, and uses two independent rational interval engines. + +The default command compares the full regenerated receipt with +`RESULT.json`. `--write-result` writes those receipts when deliberately +rebuilding a changed construction. Geometry gzip files are compared by +their canonical uncompressed JSON payload; the original source gzip +files retain their exact byte pins. + +The discovery program under `search/` is separate. Its floating scores +found the selected parameters. The positive construction receives exact +certificates; no global optimality or obstruction outside the searched +minimal-cut path family is claimed. diff --git a/research/kappa-hybrid-controller/README.md b/research/kappa-hybrid-controller/README.md new file mode 100644 index 0000000000..53df775133 --- /dev/null +++ b/research/kappa-hybrid-controller/README.md @@ -0,0 +1,295 @@ +# Retimed hybrid p17 controller: conditional kappa 0.003001053 + +This package constructs a conditional integer-multiplication exponent saving + +\[ +\boxed{\kappa=0.003001053},\qquad +T(n)=O\!\left(n(\log n)^{0.996998947}\right). +\] + +The increase over the conditional `0.00268647` proposal in +[PR4416](https://github.com/CrocSwap/integer-mult-bounds/pull/4416) is +`0.000314583`, or about **11.7099% in kappa**. It is also **1.3869% above** +the concurrent `0.00296` proposal in +[PR4440](https://github.com/CrocSwap/integer-mult-bounds/pull/4440). +These compare asymptotic exponent savings, not practical running times. + +The hybrid mechanism replaces selected full native invocations with directly +paid rank-one shears. Those stages produce no native helper outputs. Their +replacement also removes their transverse stage transform from every +productive endpoint and every idle request. A balanced controller with +17 main pairs gives the stronger complete moment after all these changes +are charged. The final construction uses the improved helper boundaries +from [PR4441](https://github.com/CrocSwap/integer-mult-bounds/pull/4441), +whose complete local native receipt is independently replayed here. The +updated PR4441 also certifies this same combined profile at `0.00300105`; +our final endpoint exceeds that value by `0.000000003`. +A separate native BIT construction admits saving `0.00312`, which supplies +the ordinary BIT premise of the outer proof. + +The frontier refresh found PR4440's independently developed query-thinning +construction and PR4441's helper retiming while this work was in progress. +The p17 schedule agrees with PR4440. After checking compatibility, we +replaced our initial fifteen-tail helper pruning with PR4441's stronger +supplier. A later refresh at 20:27 UTC found PR4441 had already combined the same +profile at a stronger endpoint than our initial certificate. We audited +that update, adopted it as the publication parent, and tightened our exact +endpoint. The complete updated PR4441 branch is retained unchanged as an +explicit source dependency. This package adds independent physical and +phase evidence, a broader bounded controller search, its own p6 BIT +supplier, and the small endpoint refinement. The combined profile itself +is concurrent work, not claimed as a new discovery unique to this package. + +This is a source-bound finite certificate and a conditional transfer proof. +It retains the PR4359/PR4416 line's stated native, whole-job matching, +spectator, mixed-compiler, precision, storage, analytic, fixed-tape and +exact-recovery premises. The scripts do not formally verify the full +multiplication theorem. The selected record at this package's base commit +still has kappa `0.0023`; this package does not change that record. + +## Construction + +The source complex controller uses local operators + +\[ +F_s=D_sS_y(Q^{-1}),\qquad B_s=D_sS_x(-Q). +\] + +Here `Q` is the central rank-one transform and `D_s` acts on the eight +transverse axes of stage `s`. The complete controller has an exact +factorization over the rational Laurent ring in `Q,D_0,...,D_34`. +Substituting `D_s=I` preserves that identity, including both `Q` and its +inverse. This substitution has a physical implementation: copy the source +into an owned scratch field, make its rank-one query, add the result into +the other main field, and erase the scratch field. The original source +field is preserved. Copies and scratch fields receive no productive credit. + +The selected controller has these exact parameters: + +| Parameter | Value | +| --- | ---: | +| Main pairs | 17 | +| Balanced cut | 8 | +| Original local stage positions | 35 | +| Retained-idle mask | 280378328416255 | +| Native-stage mask | 28633115307 | +| Native invocations | 19 | +| Direct shears | 16 | +| Paid direct rank-one queries | 1792 | +| Ambient rank retained for the proof | 281 | + +Stages `0`, all odd stages `1,3,...,33`, and stage `34` are native. Every +internal even stage `2,4,...,32` is a direct forward shear. Stage zero +therefore retains the original source geometry. All sixteen middle idle +requests become identity maps. The remaining initial and terminal idle +requests have ranks `16,24,...,72`; each rank occurs on 448 physical fields. + +The retimed native supplier changes 117 helper entrances, 42 helper exits +and 395 scalar contact frames. It preserves the logical scalar actions, +their order and coefficients, every warp contact, all main boundaries, +and the owned center program. Its 408 independent helper outputs have +profile `{4:26,5:2,7:29,8:42,9:309}`. The complete local paid profile is +`{1:2253,2:515,3:445,4:102,5:40,8:8}`. + +Two retained literal interpreters replay both orientations on all 632 +arbitrary local input columns. All 320 changed transport or helper-boundary +recipes are lowered with their exact absolute phases. The retiming +subsumes our original fifteen deleted helper tails; no extra lifetime +deletion remains. Relative to that earlier version, the final controller +saves 3344 paid calls. + +The nineteen native invocations have 7752 distinct helper inputs; the +seventeen main pairs contribute 3808 more inputs. The complete unit +therefore has **11560 independent productive fields** and **69273 paid +requests**. + +See [NATIVE.md](NATIVE.md) for the physical construction and source binding, +and [PROOF.md](PROOF.md) for the complete conditional transfer. + +## Complete rank invoice + +The table gives the productive and paid multiplicities of the complete +raw unit. A blank entry means zero. + +| Rank | Productive multiplicity | Paid multiplicity | +| ---: | ---: | ---: | +| 1 | | 44599 | +| 2 | | 9785 | +| 3 | | 8455 | +| 4 | 494 | 1938 | +| 5 | 38 | 760 | +| 7 | 551 | | +| 8 | 798 | 152 | +| 9 | 5871 | | +| 16 | | 448 | +| 17 | 448 | | +| 24 | | 448 | +| 25 | 448 | | +| 32 | | 448 | +| 33 | 448 | | +| 40 | | 448 | +| 41 | 448 | | +| 48 | | 448 | +| 49 | 448 | | +| 56 | | 448 | +| 57 | 448 | | +| 64 | | 448 | +| 65 | 448 | | +| 72 | | 448 | +| 73 | 448 | | +| 153 | 224 | | + +The rank-one moments are `T_1=260798` and `P_1=259998`, with surplus +`800`. Writing `T_tau` and `P_tau` for the two moments at `tau=1-C`, +the numerical discovery root of `T_tau-P_tau` is about +`0.003001054183175`. The proof uses the exact rational tested saving +`C=0.003001054` and the smaller final saving `kappa=0.003001053`. + +## Turning the raw moment into an admitted rule + +The raw productive and paid ranks overlap. The proof composes complete +native units chronologically before applying any global cover. It uses +distinct productive owners, preserves every paid position, and retains +separate owned scratch banks for suspended invocations. + +Take `v=17160` native factors, a paid cutoff `18^v`, and a productive floor +`19^v`. After the complete product, raise each smaller productive endpoint +to that floor with an explicitly paid transform on disjoint coordinates. +Split every oversized paid request, including these completion requests, +at the same cutoff. Thus every final paid rank is strictly smaller than +every final productive rank. + +The exact interval calculation certifies + +\[ +\alpha=\frac{P_\tau}{T_\tau}<1-\frac1{10000000000},\qquad +\gamma=\frac{259998}{18^C T_\tau}<\frac{9991}{10000},\qquad +\delta=\frac{11560\cdot19}{18^C T_\tau}<\frac67. +\] + +The full paid moment, including both original tails and paid productive +completion, is bounded by + +\[ +\alpha^v+2\gamma^v+2\delta^v +<\frac{262144250000429}{262144449839104}<1. +\] + +The proof then derives sufficient finite uniform-compiler parameters from +this enlarged word and checks the complete outer inequality ledger. It +recomputes the scalar, movement, owned-bank and precision envelopes for the +expanded finite program. The enormous tensor and uniform words are given +as finite recipes; they are not materialized or claimed to be practical. + +The BIT side uses six main pairs and thirteen native invocations. It keeps +the complete original idle operators, tensors the native program before a +single delayed cover, and obtains the exact ordinary saving + +\[ +\frac{9750334599}{3125000000000}=0.00312010707168>0.00312. +\] + +The native replay covers all 7039 arbitrary BIT input columns and all 117 +owned-copy episodes. The BIT proof is in the `bit/` directory. + +## Reproduction and evidence + +From the repository root, using Python 3.12: + +```sh +python3 -I -O -B research/kappa-hybrid-controller/verify.py +``` + +The verifier authenticates the retained source inputs, reconstructs the +complex Laurent factor and the integer invoice, replays the changed native +helper boundaries and direct query phases, and checks the complete +strictification and outer arithmetic. It preserves all 54 outer predicates +and adds an explicit fourth functional guard for the actual BIT atom +exponent `0.0032`. It uses independently implemented +rational interval calculations and compares regenerated receipts with +the committed result. Acceptance guards remain active under `-O`. + +The separate historical frontier audit is reproducible with +`python3 -I -O -B research/kappa-hybrid-controller/frontier/audit.py`. +Its independent outward integer interval engine checks updated PR4441 +and the fixed-profile ceiling; [frontier/REPORT.md](frontier/REPORT.md) +states its exact scope. + +`VERIFY.json` registers both replays and their 51 live input paths. `SOURCES.json` +pins repository provenance; `EXTERNAL-SOURCES.json` records the retained +source closure used by the native gates. `RESULT.json` and `certificates/` +contain the exact receipts. Explicit `--source-root`, `--bit-source-root` and `--retimed-source-root` +arguments allow separately prepared source checkouts. The default paths +use the already committed PR4416 source export and the original BIT files. +The retimed supplier additionally uses the unchanged PR4441 package and +its original source dependencies in the repository root. + +The search is a separate discovery artifact under `search/`. Its dynamic +program considers all cuts and native-count states in the stated +minimal-cut path family through `p=120`. Its scores use floating-point +arithmetic. Only the selected positive construction is promoted to exact +Laurent, native, phase and interval certificates. No global optimality or +barrier for other controllers is claimed. + +## Open next questions + +1. **Allow more local choices than native or direct.** A partly executed + supplier could retain some helper outputs while removing transverse + work. First derive its arbitrary-input operator and complete paid + invoice, then add that proven choice to the controller search. A local + tariff alone does not establish a valid supplier. +2. **Search beyond the minimal-cut path family.** Other idle masks, + controller graphs or asymmetric directions could improve the balance. + First produce an exact Laurent factorization and price every physical + idle before attempting a transfer. The present finite search gives no + obstruction outside its stated family. +3. **Reduce the sufficient tensor power.** The higher-moment method in + [PR4433](https://github.com/CrocSwap/integer-mult-bounds/pull/4433) + reduced the predecessor's finite constants without changing kappa. + Updated PR4441 already applies it to this invoice using power 1024. + To port that smaller sufficient power into this independent proof, + rederive the compiler constants with the ambient rank 281 retained + here and include every paid completion tail. A smaller power does + not itself improve the limiting kappa. +4. **Independently review the inherited transfer premises.** Replay the + exact native and arithmetic gates first, then check the all-column + matching, common-weight cover, precision and effective recovery + arguments against this enlarged program. Finite checks alone do not + settle those asymptotic premises. + +The same questions, including first steps and blockers, are recorded in +`TASK.json`. + +## Sources and credit + +Prepared for Cinna Davis (`1337isnot1337`) with substantial OpenAI +assistance. The final contribution supplies an independent source-bound native, +phase and conditional-transfer certificate for the retimed p17 profile, +with a slightly larger certified endpoint. The work also includes +the bounded controller search and a separately replayed p6 ordinary BIT +supplier. Our initial helper-tail pruning is subsumed by PR4441. + +Credit the concurrent +[PR4440](https://github.com/CrocSwap/integer-mult-bounds/pull/4440) +for the independently developed query-thinning mechanism and identical +p17 schedule, and +[PR4441](https://github.com/CrocSwap/integer-mult-bounds/pull/4441) +at `ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9` for the helper retiming +used in the final supplier. The combined result in updated PR4441 at +`5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39` is the publication parent +and is credited for the already combined profile. Both were prepared for the same contributor +in parallel sessions. Neither source is presented here as an uncredited +new invention. + +This work builds on zxv's +[PR4359](https://github.com/CrocSwap/integer-mult-bounds/pull/4359) +native reconstruction and delayed cover; the user's compiler refill and +native tensor work in +[PR4405](https://github.com/CrocSwap/integer-mult-bounds/pull/4405), +[PR4412](https://github.com/CrocSwap/integer-mult-bounds/pull/4412), +[PR4414](https://github.com/CrocSwap/integer-mult-bounds/pull/4414), and +[PR4416](https://github.com/CrocSwap/integer-mult-bounds/pull/4416); +and Jacob Alan Sussman's finite mixed compiler, Theorem 1G / PR4268. +The BIT local word retains DreamingOfClouds's PR589 and eumemic's +PR555/PR543 lineage. Retained source files preserve their own notices. +New contributions are under the repository's Apache-2.0 license. diff --git a/research/kappa-hybrid-controller/REPLAY.json b/research/kappa-hybrid-controller/REPLAY.json new file mode 100644 index 0000000000..f444629bc5 --- /dev/null +++ b/research/kappa-hybrid-controller/REPLAY.json @@ -0,0 +1,17 @@ +{ + "command": [ + "python3", + "-I", + "-O", + "-B", + "research/kappa-hybrid-controller/verify.py" + ], + "python": "3.12.14 (main, Aug 25 2026, 14:00:49) [Clang 22.1.3 ]", + "start_utc": "2026-10-21T20:45:02.127245+00:00", + "finish_utc": "2026-10-21T20:47:08.800859+00:00", + "duration_seconds": 126.674, + "exit_code": 0, + "stdout": "{\"kappa\": \"3001053/1000000000\", \"ordinary_BIT\": \"39/12500\", \"status\": \"PASS_SOURCE_BOUND_HYBRID_P17_AND_ORDINARY_BIT_P6\", \"tensor_power\": 17160, \"tested_saving\": \"1500527/500000000\", \"uniform_rank_exponent\": 15026650096742881962201}\n", + "stderr": "", + "scope": "Independent final default-path comparison with committed-style saved receipts; registered Git metadata runner not executed in this partial staging tree." +} diff --git a/research/kappa-hybrid-controller/RESULT.json b/research/kappa-hybrid-controller/RESULT.json new file mode 100644 index 0000000000..01ee7a03f7 --- /dev/null +++ b/research/kappa-hybrid-controller/RESULT.json @@ -0,0 +1,54143 @@ +{ + "endpoint": { + "BIT_validator_sha256": "9993c4b695740d41f56bfac0f4d016e7c62c6fef692fc09b0c01b6d67da7da7c", + "compiler": { + "H0": 357651736794440, + "H1": 15026650096742881962201, + "N_encoding": "2^15026650096742881962201", + "ambient_rank_encoding": "281^17160", + "delta": "1/14000000000", + "exit_coefficient_log2_upper": "88608", + "final_strict_power_gap": "1/14000000000", + "h": "1/55", + "materialized_tensor_rule_or_uniform_word": false, + "negative_log2_eta_upper": "32513793811/70000000", + "paid_max_bound_encoding": "18^17160", + "rank_one_induction": "260798^n > 259998^n; target padding adds equal paid and target rank, and splitting preserves rank", + "t": "498499473/500000000", + "target_max_encoding": "153^17160", + "target_min_encoding": "19^17160", + "tensor_power": 17160, + "theta_upper": "54/55", + "z": "6978992623/7000000000", + "z0": "2791597049/2800000000" + }, + "gain_over_PR4359": "701053/1000000000", + "gain_over_PR4405": "695963/1000000000", + "gain_over_PR4414": "321183/1000000000", + "gain_over_PR4416": "314583/1000000000", + "gain_over_allfresh_p3": "523503/1000000000", + "kappa": "3001053/1000000000", + "ledger_source_sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "minimum_outer_margin": "10489496313/24500000000000000000", + "negative_controls": { + "closed_epsilon": { + "actual_logarithmic_gamma_guard": "0", + "epsilon_below_one": "0", + "gaussian_above_main": "-31511061/24500000000000000000", + "global_gamma_power_slack": "-1/70000000000", + "new_semantic_guard_with_C1_one": "0", + "source_axis_superpolynomial": "0" + }, + "closed_uniform_gap": { + "new_complex_uniform_saving_above_b": "0" + }, + "insufficient_BIT": { + "actual_bit_above_effective": "-39259/56000000" + }, + "unfunded_outer_point": { + "boundary_algebraic_matrix_above_kappa": "-10510503687/24500000000000000000", + "fused_gaussian_above_kappa": "-10531511061/24500000000000000000", + "global_coordinate_router_above_kappa": "-3/7000000000", + "group_bit_router_above_kappa": "-112504177/392000000000000000", + "main_transform_above_kappa": "-14010503687/24500000000000000000" + } + }, + "ordinary_BIT_certificate": { + "admitted_BIT_saving": "39/12500", + "alpha_upper": "99999/100000", + "arithmetic_dependency_sha256": "7ac72da26df21a0bef1ed15cb500468cf94b328e86efd1ed60a7a0016db415c0", + "compiled_uniform_saving": "627/200000", + "complete_normalized_paid_moment_upper": "1653/1696", + "cover": { + "complete_moment_upper": "800001/800002", + "gap": "1/200000", + "prime_coefficient_times_N5": "51200000" + }, + "covered_saving": "313/100000", + "cutoff_encoding": "7^6000", + "gamma_upper": "999/1000", + "materialized_tensor_or_uniform_word": false, + "native_source": { + "COPY_or_ERASE_records": 234, + "all_arbitrary_columns": 7039, + "ambient_rank": 92, + "common_weight_contract": "All original port charts and every product/compiler matcher are fixed rational right routes in one final cover. No intermediate covered child is lowered.", + "exact_factorization": { + "boundary_unit_ADDs_per_port": 48, + "coefficient_projectors": { + "14337": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1024, + 2048 + ], + "15": [ + 5, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "15873": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 256, + 512, + 0, + 0 + ], + "16383": [ + 64, + 0, + 64, + 0, + 64, + 0, + 64, + 170, + 0, + 0, + 0, + 0 + ], + "255": [ + 80, + 0, + 80, + 0, + 80, + 42, + 0, + 42, + 0, + 0, + 0, + 0 + ], + "63": [ + 20, + 0, + 20, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "diagonal_monomials": [ + 15, + 15, + 63, + 63, + 255, + 255, + 14337, + 14337, + 15873, + 15873, + 16383, + 16383 + ], + "full_coefficient_endpoint_sha256": "bf485e1f07f44b15757bccec1a7c23e2887a8dbef22943b5ff2426fa21fbb0a6", + "left_program": [ + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 7, + 10 + ], + [ + "ADD", + 4, + 6 + ], + [ + "ADD", + 2, + 6 + ], + [ + "ADD", + 0, + 6 + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 10, + 5 + ], + [ + "ADD", + 2, + 4 + ], + [ + "ADD", + 0, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 10, + 3 + ], + [ + "ADD", + 4, + 3 + ], + [ + "ADD", + 0, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 10, + 1 + ], + [ + "ADD", + 4, + 1 + ], + [ + "ADD", + 2, + 1 + ] + ], + "left_rows": [ + 5, + 2, + 10, + 20, + 42, + 80, + 1024, + 2048, + 256, + 512, + 170, + 64 + ], + "right_program": [ + [ + "ADD", + 5, + 11 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 7, + 11 + ], + [ + "SWAP", + 6, + 10 + ], + [ + "ADD", + 3, + 5 + ], + [ + "ADD", + 7, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 0, + 3 + ], + [ + "ADD", + 5, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 1 + ] + ], + "right_rows": [ + 2089, + 2, + 2088, + 6, + 2080, + 20, + 2048, + 1040, + 256, + 512, + 64, + 128 + ] + }, + "expanded_chart_identity": "Gamma=I-EE^t+E rho E^t; Gamma^2=I92, active identity on im(E), identity on its orthogonal complement", + "helper_owners": [ + { + "first": 1332, + "last_exclusive": 1771, + "stage": 0 + }, + { + "first": 1771, + "last_exclusive": 2210, + "stage": 1 + }, + { + "first": 2210, + "last_exclusive": 2649, + "stage": 2 + }, + { + "first": 2649, + "last_exclusive": 3088, + "stage": 3 + }, + { + "first": 3088, + "last_exclusive": 3527, + "stage": 4 + }, + { + "first": 3527, + "last_exclusive": 3966, + "stage": 5 + }, + { + "first": 3966, + "last_exclusive": 4405, + "stage": 6 + }, + { + "first": 4405, + "last_exclusive": 4844, + "stage": 7 + }, + { + "first": 4844, + "last_exclusive": 5283, + "stage": 8 + }, + { + "first": 5283, + "last_exclusive": 5722, + "stage": 9 + }, + { + "first": 5722, + "last_exclusive": 6161, + "stage": 10 + }, + { + "first": 6161, + "last_exclusive": 6600, + "stage": 11 + }, + { + "first": 6600, + "last_exclusive": 7039, + "stage": 12 + } + ], + "independent_dirty_helpers": 5707, + "keep": 25279, + "local_all_f_lift": "Every head projector and chart is tensor-multiplied by I_f; the reversed tail block uses C_(Nf). Polynomial identities remain exact, and routes change only cover coordinates.", + "local_audit": "PASS_FULL_LOCAL_COLUMNS_AND_EXACT_PROJECTORS", + "main_endpoints": [ + { + "central_q": true, + "rank": 22, + "role": 0, + "stages": [ + 0, + 1, + 2 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 1, + "stages": [ + 0, + 1, + 2 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 2, + "stages": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 3, + "stages": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "central_q": true, + "rank": 50, + "role": 4, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + { + "central_q": true, + "rank": 50, + "role": 5, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 6, + "stages": [ + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 7, + "stages": [ + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 8, + "stages": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 9, + "stages": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 92, + "role": 10, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 92, + "role": 11, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + } + ], + "nonidentity_port_routes_including_inverses": 5328, + "original_p3_audit": "PASS_FIXED_RATIONAL_PORTS_AND_PHYSICAL_ENDPOINTS", + "owned_COPY_episodes": 117, + "paid": { + "1": 17199, + "14": 444, + "2": 17446, + "28": 444, + "3": 1027, + "4": 572, + "42": 222, + "5": 1326, + "6": 143, + "7": 1357 + }, + "pairs": 6, + "scalar_ADD_allowance": 326621, + "source_generator_sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "source_port_audit_sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "source_sha256": { + "DELAYED-COVER-BRIDGE.md": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443", + "MIXED-PRODUCTIVE-BIT.json": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf", + "bit_native_binding.py": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "sources/pr589-regenerated/WORD.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "sources/pr589-regenerated/records/249-records.bin": "ea44aa047a2a9cf034de8b56b2166c49cf2dbdf9cd9ed6a20299a4f2b05ef09a", + "sources/pr589-regenerated/records/frames.json": "d006b3bfe0c04afecfea7aecfa59dfe4298b99501c70da3938e40289bc2f5010" + }, + "stage_chart_embeddings": [ + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "spectator_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 1 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 2 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 3 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 4 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 5 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 6 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 7 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 8 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 9 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 10 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 11 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + "stage": 12 + } + ], + "stages": 13, + "status": "PASS_P6_EXACT_NATIVE_PORTS_ARBITRARY_COLUMNS_AND_WHOLE_IDLES", + "targets": { + "22": 444, + "36": 444, + "50": 222, + "8": 5707, + "92": 222 + }, + "whole_idle_windows": [ + { + "index": 0, + "kind": "initial", + "pair": 1, + "rank": 14, + "retained": true, + "stages": [ + 0, + 1 + ] + }, + { + "index": 1, + "kind": "middle", + "pair": 1, + "rank": 7, + "retained": true, + "stages": [ + 2 + ] + }, + { + "index": 2, + "kind": "initial", + "pair": 2, + "rank": 28, + "retained": true, + "stages": [ + 0, + 1, + 2, + 3 + ] + }, + { + "index": 3, + "kind": "middle", + "pair": 2, + "rank": 7, + "retained": true, + "stages": [ + 4 + ] + }, + { + "index": 4, + "kind": "initial", + "pair": 3, + "rank": 42, + "retained": true, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + { + "index": 5, + "kind": "middle", + "pair": 3, + "rank": 7, + "retained": true, + "stages": [ + 6 + ] + }, + { + "index": 7, + "kind": "middle", + "pair": 4, + "rank": 7, + "retained": true, + "stages": [ + 8 + ] + }, + { + "index": 9, + "kind": "middle", + "pair": 5, + "rank": 7, + "retained": true, + "stages": [ + 10 + ] + }, + { + "index": 13, + "kind": "terminal", + "pair": 3, + "rank": 28, + "retained": true, + "stages": [ + 9, + 10, + 11, + 12 + ] + }, + { + "index": 14, + "kind": "terminal", + "pair": 4, + "rank": 14, + "retained": true, + "stages": [ + 11, + 12 + ] + } + ] + }, + "ordinary": { + "admission_gap": "334599/3125000000000", + "atom_power": "2/625", + "linear_adapter_gap": "249665401/3125000000000", + "old_saving": "384599/10000000000", + "stock_absorption_gap": "3105249665401/3125000000000" + }, + "ordinary_saving": "9750334599/3125000000000", + "paid": { + "1": 17199, + "14": 444, + "2": 17446, + "28": 444, + "3": 1027, + "4": 572, + "42": 222, + "5": 1326, + "6": 143, + "7": 1357 + }, + "paid_rank_mass": 102419, + "positive_rank_surplus": 513, + "status": "PASS_EXACT_P6_BIT_TENSOR_AND_ORDINARY_ARITHMETIC", + "strictification_margin": "43/1696", + "target_rank_mass": 102932, + "targets": { + "22": 444, + "36": 444, + "50": 222, + "8": 5707, + "92": 222 + }, + "tensor_power": 6000, + "tested_saving": "157/50000", + "uniform_compiler": { + "H0": 850090000, + "H1": 1066862950001, + "N_encoding": "2^1066862950001", + "delta": "1/400000", + "exit_log2_upper": "20625", + "h": "1/16", + "negative_log2_eta_upper": "5311/40", + "theta_upper": "15/16" + }, + "verifier_sha256": "9993c4b695740d41f56bfac0f4d016e7c62c6fef692fc09b0c01b6d67da7da7c" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "622999999733/625000000000", + "fixed_halo_explicit_metadata_branch": "134750000001/1750000000", + "new_BIT_row_stock_sublinear_in_active_group": "6978999997009/7000000000000", + "new_semantic_group_guard": "3/7000000000" + }, + "margins": { + "boundary_algebraic_matrix": "73525812489496313/24500000000000000000", + "fused_gaussian": "73525812468488939/24500000000000000000", + "global_coordinate_router": "168059/56000000", + "group_bit_router": "1176413055495823/392000000000000000", + "group_scans": "3499999999/3500000000", + "main_transform": "73525808989496313/24500000000000000000", + "microbox_face_corrections": "134750000001/1750000000", + "polynomial_products": "6999999999/7000000000", + "sparse_union_movement": "10026650812489496313/24500000000000000000" + }, + "parameters": { + "a": "168059/56000000", + "b": "1312961/437500000", + "beta": "6999999997/7000000000", + "bit_saving": "39/12500", + "cap_xi": "22276650808989496313/24500000000000000000", + "complex_uniform_saving": "21007377/7000000000", + "d": "1/7000000000", + "epsilon": "6999999999/7000000000", + "kappa": "3001053/1000000000", + "lambda_": "1993997893/2000000000", + "lambda_prime": "3489496313/3500000000", + "layout": "1/7000000000", + "q": "10503687/3500000000", + "r0": "1/70000000000", + "stop": "1/7000000000", + "tested_saving": "1500527/500000000" + }, + "strict_checks": { + "actual_bit_above_effective": "6661/56000000", + "actual_logarithmic_gamma_guard": "1/7000000000", + "actual_logarithmic_group_guard": "2223349196260503687/12250000000000000000", + "alpha_logarithm_absorption": "1/70000000000", + "boundary_algebraic_matrix_above_kappa": "13989496313/24500000000000000000", + "cap_above_band": "10026650808989496313/24500000000000000000", + "cap_below_cell": "2223349187510503687/24500000000000000000", + "cap_below_phase_cell_power": "26723349191010503687/24500000000000000000", + "complex_above_effective": "1/7000000000", + "complex_below_one_over_32": "6179457/218750000", + "complex_endpoint": "1/3500000000", + "epsilon_below_one": "1/7000000000", + "epsilon_positive": "6999999999/7000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "13968488939/24500000000000000000", + "gaussian_above_main": "1739496313/12250000000000000000", + "global_coordinate_router_above_kappa": "1/1750000000", + "global_gamma_power_slack": "9/70000000000", + "group_below_dimension": "1/3500000000", + "group_bit_router_above_kappa": "279495823/392000000000000000", + "group_gauge_power_slack": "2223349196085503687/12250000000000000000", + "group_key_fits_record": "1/3500000000", + "group_positive": "6999999997/7000000000", + "group_scans_above_kappa": "6978992627/7000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "635041290400418148631/500000000000000000000000", + "lambda_above_internal": "1/14000000000", + "lambda_above_sigma": "3/14000000000", + "lambda_above_tau": "1/14000000000", + "lambda_prime_above_lambda": "1/14000000000", + "lambda_prime_above_leaf": "873687039/3062500000000000000", + "leaf_saving_above_effective": "436187039/3062500000000000000", + "main_transform_above_kappa": "10489496313/24500000000000000000", + "membership_arithmetic_fits_record": "1/7000000000", + "microbox_face_corrections_above_kappa": "538978992633/7000000000", + "microbox_halo_volume": "553000000003/7000000000", + "new_complex_uniform_saving_above_b": "1/7000000000", + "new_semantic_guard_with_C1_one": "1/7000000000", + "polynomial_products_above_kappa": "1744748157/1750000000", + "positive_layout_slack": "1/7000000000", + "q_below_effective": "1/7000000000", + "q_below_internal": "1/7000000000", + "q_below_leaf": "873687039/3062500000000000000", + "q_positive": "10503687/3500000000", + "short_record_fallback": "436187039/437500000", + "source_axis_superpolynomial": "1/7000000000", + "sparse_union_movement_above_kappa": "9953125013989496313/24500000000000000000", + "stop_below_one": "6999999999/7000000000", + "stop_positive": "1/7000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/7000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/7000000000", + "union_tag_work_per_visit_fits_record": "3/7000000000" + } + }, + "parameters_sha256": "c12bc02374d8aa5947d15098288394beff52fc417ee5e5c72bd6b0c83f4b1d80", + "schema": "hybrid-p17-padding-outer-endpoint/1", + "scope": "Source-bound PR4441 retimed arbitrary-input local word, p17 native/direct geometry, a finite tensor recipe with target padding, exact moment and outer inequalities, and a specified finite uniform rank. Native tensor closure and the PR4359 inherited precision, storage, analytic, fixed-tape and recovery hypotheses are written premises, not a full formal theorem certificate.", + "status": "PASS_CONDITIONAL_HYBRID_P17_OUTER_POINT", + "strictification_source_sha256": "8028ebd0f83e59bbba1c5f0dd760adb3050c4dce660d675f48eb227ff4649904", + "tested_saving": "1500527/500000000" + }, + "implementation_sha256": { + "bit/bit_p6_tensor_extension.py": "9993c4b695740d41f56bfac0f4d016e7c62c6fef692fc09b0c01b6d67da7da7c", + "bit/bit_tensor_extension.py": "7ac72da26df21a0bef1ed15cb500468cf94b328e86efd1ed60a7a0016db415c0", + "controller/make_direct_case.py": "f527528ff19b107427d593bf35481e127154831563179eed3f43f365177d4585", + "endpoint.py": "79c469fc7fedd0740ee167266390413a1bc8a5c7ef003065d1f55681d724b5de", + "local_supplier.py": "8542575d046c9488574dbf1ca258bbdc6ff7dc66db778cba3b0027b7b4673653", + "native_geometry.py": "fe4e7d689df8af865dc0ae16bcbac9cb50e988efd24f3ff99ac52b498cd6c60a", + "native_inventory.py": "d23bc658af0196f26a5bcd101e11b496f0430b96c0a5974d92e485002d0f68d8", + "parameters.py": "c12bc02374d8aa5947d15098288394beff52fc417ee5e5c72bd6b0c83f4b1d80", + "strictification.py": "8028ebd0f83e59bbba1c5f0dd760adb3050c4dce660d675f48eb227ff4649904", + "verify.py": "537bacce0287d28e4296047468cac429250b9fc600800706fc5a806edacf67fd" + }, + "independent_interval_crosscheck": true, + "schema": "hybrid-p17-complete-conditional-certificate/1", + "scope": "Fresh finite retimed native replay, all helper phases, full native/direct p17 geometry, two independent interval engines, explicit uniform ranks, native BIT and all outer inequalities. All-column tensor, route-cost, precision, stock, analytic, fixed-tape and recovery assumptions remain the inherited written premises.", + "status": "PASS_SOURCE_BOUND_HYBRID_P17_AND_ORDINARY_BIT_P6", + "strictification": { + "alpha_interval": { + "lower": "0.99999999981197332875426410809243316", + "upper": "0.99999999981197332875426410809243317" + }, + "alpha_upper": "9999999999/10000000000", + "ambient_rank_encoding": "281^17160", + "completion_decay_block_length": 5, + "controls": { + "one_decay_block_rejected": true, + "undamped_completion_rejected": true, + "unpadded_rank_one_tail_rejected": true + }, + "cutoff_base": 18, + "cutoff_encoding": "18^17160", + "decay_block_count": 22, + "decay_block_length": 780, + "delta_interval": { + "lower": "0.84399113766577138522456189514008497", + "upper": "0.84399113766577138522456189514008498" + }, + "delta_upper": "6/7", + "exponent": 17160, + "gamma_interval": { + "lower": "0.99907124299228386730839393376721823", + "upper": "0.99907124299228386730839393376721824" + }, + "gamma_upper": "9991/10000", + "materialized_tensor_or_completed_word": false, + "native_inventory": { + "all_column_direct_recipe": "At f columns the address map is P tensor I_f (or I_f tensor P in column order), with its induced per-column array permutation. Use one Gaussian child of rank f, inverse route and repeated q translation for C_q inverse. The request has the complete ancestor weight.", + "artifact_hash_encoding": "Uncompressed UTF-8 JSON, sort_keys=True, separators=(comma,colon)", + "artifact_sha256": "a58789b3cc4449fd7f9520119b2aaf6f5d9f7351cc34ed96f32e41e4169eb034", + "case_sha256": "b6a480b2c8c21520a73d74871f360acee7a4b0c6979314d1c2e67fa3641fee33", + "clifford_source_sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "dimension": 281, + "direct_nonrecursive_movement_records_allowance": 14336, + "direct_owned_copy_episodes": 1792, + "direct_owned_release_episodes": 1792, + "direct_paid_queries": 1792, + "direct_productive_scratch_endpoints": 0, + "direct_query_rank_for_f_columns": "f, with the same ancestor weight; never f rank-one column queries", + "direct_scalar_allowance": 114688, + "direct_scratch_ownership": "Copy source to an owned zero array; query that copy; add to destination; release. No arbitrary helper or productive scratch credit.", + "direct_stage_indices": [ + 2, + 4, + 6, + 8, + 10, + 12, + 14, + 16, + 18, + 20, + 22, + 24, + 26, + 28, + 30, + 32 + ], + "direct_stages": 16, + "factor_factory": { + "artifacts": { + "P17-DIRECT-CASE.json": "00247ee53b39cf01e176d93b8035bbdb18e7669f969b4ab576130205ae02d0df", + "P17-FULL-LAURENT-CASE.json": "b6a480b2c8c21520a73d74871f360acee7a4b0c6979314d1c2e67fa3641fee33" + }, + "direct_rank1_children": 1792, + "incorrect_backward_sign_rejected": true, + "native_invocations": 19, + "source_sha256": { + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85", + "research/kappa-rebuild/bit/complex_controller_factor.py": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497", + "research/kappa-rebuild/bit/mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + "status": "PASS_EXACT_P17_LAURENT_SPECIALIZATION" + }, + "factor_factory_source_sha256": "f527528ff19b107427d593bf35481e127154831563179eed3f43f365177d4585", + "fresh_helper_fields": 7752, + "geometry_payload_sha256": "a58789b3cc4449fd7f9520119b2aaf6f5d9f7351cc34ed96f32e41e4169eb034", + "geometry_source_sha256": "fe4e7d689df8af865dc0ae16bcbac9cb50e988efd24f3ff99ac52b498cd6c60a", + "keep": 280378328416255, + "laurent": { + "input_columns": 34, + "literal_events": 341, + "matrix_entries": 1156 + }, + "limits": "Complete finite native/direct controller admission. The common-column tensor rule, expanded fixed route/scalar/owned-stock bounds and inherited precision, analytic, fixed-tape and exact-recovery premises are written separately in PROOF.md.", + "local_profiles": "Independently audited PR4441 retimed local supplier; the enclosing native_inventory reruns its complete literal and phase gate.", + "local_supplier": { + "all_408_helpers_arbitrary": true, + "all_scalar_actions_and_order_unchanged": true, + "all_warp_contacts_unchanged": true, + "authenticated_original_files": 23, + "boundary_movement_allowance": "Every new whole-helper left/right monomial and transport recipe contributes its full finite route and phase cost.", + "distinct_physical_edge_and_boundary_recipes": 320, + "external_main_boundaries_unchanged": true, + "fresh_arbitrary_input_fields": 632, + "inherited_native_gate": { + "ambient_rank": 57, + "controls": { + "raw_rule_not_strictly_separated": true, + "whole_idle_missing_phase_rejected_count": 224, + "wrong_intermediate_center_rejected": true + }, + "fresh_helper_fields": 2856, + "main_fields": 672, + "native_scalar_allowance": 1147304, + "paid": { + "1": 17409, + "16": 448, + "2": 4991, + "3": 1568, + "4": 714, + "5": 140, + "8": 504 + }, + "paid_calls": 25774, + "productive_fields": 3528, + "rank_surplus": 224, + "restored_native_centers": 56, + "schema": "native-all-fresh-full-idle-inventory/1", + "scope": "Exact finite all-fresh controller inventory. Native all-column closure is inherited; the raw rule requires the separate tensor strictification before the old strict compiler applies.", + "source_head": "da637c87c89482bc4c86be36bd0071b3d400dbed", + "source_sha256": { + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "research/kappa-rebuild/complex/fresh-certificates/THREE-base-HELPER-BOUNDARIES.json.gz": "f90517e395bde58c72cacd5d3481c4ea31d459fe4535384ac16547ac40460555", + "research/kappa-rebuild/complex/full-identity-certificates/RESULT.json": "943d5fad2fc529f470df05a35446e07ecaef7344abfce450d2c2eb2c9b3798f6", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39", + "research/kappa-rebuild/complex/full_identity_rebuild.py": "9af2ffbb0038c92e2a7d281081b0daaeadce75b11b566e5427845dc1af91e33d", + "research/kappa-rebuild/controller/P3-NATIVE-COVER.json.gz": "facfc6d6ecde151afb7e6a167776f3fdaac1c816e785a21a39f7f0bfd9140f3f", + "research/kappa-rebuild/controller/p3_native_cover.py": "fae71fcbbd20b9ee73b049cf6f43ea1d048217fb15feb6055a007e47da3363fe", + "research/kappa-rebuild/transfer-audit/p3_cover_audit.py": "a0fe9a26f77556e83b31b0c91fea909d6f3d8209d0f9f7ad4e5bc1375d33615e" + }, + "status": "PASS_ACTUAL_ARBITRARY_HELPERS_AND_COMPLETE_PHASE_CORRECT_IDLE_JOBS", + "targets": { + "25": 448, + "5": 196, + "57": 224, + "6": 126, + "7": 392, + "8": 651, + "9": 1491 + }, + "whole_idle_profile": { + "16": 448, + "8": 448 + } + }, + "local_helper_profile": { + "4": 26, + "5": 2, + "7": 29, + "8": 42, + "9": 309 + }, + "local_paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "local_replays": { + "backward": { + "all_scalar_frames_checked": true, + "clean_J": false, + "conservative_real_scalar_primitive_allowance": 158168, + "direction": "backward", + "dyadic_coefficients_and_unit_scales_checked": true, + "event_counts": { + "adapter": 448, + "center": 8, + "climb": 3355, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "expected_restored_arbitrary_cleanup_buffers": 0, + "expected_restored_helpers": 408, + "explicitly_owned_C_fields_cleared": 1, + "free_warp_operator_endpoint_matches": true, + "independent_borrowed_input_fields": 632, + "mismatch_examples": [], + "negative_control_omitted_last_cleanup_scalar": false, + "original_data_fields": 224, + "paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "paid_rank_mass": 5290 + }, + "forward": { + "all_scalar_frames_checked": true, + "clean_J": false, + "conservative_real_scalar_primitive_allowance": 158120, + "direction": "forward", + "dyadic_coefficients_and_unit_scales_checked": true, + "event_counts": { + "adapter": 448, + "center": 8, + "climb": 3355, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "expected_restored_arbitrary_cleanup_buffers": 0, + "expected_restored_helpers": 408, + "explicitly_owned_C_fields_cleared": 1, + "free_warp_operator_endpoint_matches": true, + "independent_borrowed_input_fields": 632, + "mismatch_examples": [], + "negative_control_omitted_last_cleanup_scalar": false, + "original_data_fields": 224, + "paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "paid_rank_mass": 5290 + } + }, + "retimed_artifact_sha256": { + "CHANGES.json": "cde73b8ff5b3c0d06e69e2293b991b24fd14a16dd4ccab7ff6b3439074a94624", + "NATIVE-RESULT.json.gz": "37d0848458b289eb50271c47adef6e74014ae30be6363d09394b2337b566b839", + "native.py": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29" + }, + "retimed_native_receipt": { + "changed_entrances": 117, + "changed_exits": 42, + "changed_scalar_frames": 395, + "helpers": { + "4": 26, + "5": 2, + "7": 29, + "8": 42, + "9": 309 + }, + "native": { + "backward": { + "arbitrary_owned_C0_cleared": true, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "l1_witness": { + "event": 6396, + "role": [ + "L", + 225 + ] + }, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "paid_rank_mass": 5290, + "real_scalar_allowance": 158168, + "scalar_frames_checked": true, + "second_literal": { + "all_scalar_frames_checked": true, + "clean_J": false, + "conservative_real_scalar_primitive_allowance": 158168, + "direction": "backward", + "dyadic_coefficients_and_unit_scales_checked": true, + "event_counts": { + "adapter": 448, + "center": 8, + "climb": 3355, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "expected_restored_arbitrary_cleanup_buffers": 0, + "expected_restored_helpers": 408, + "explicitly_owned_C_fields_cleared": 1, + "free_warp_operator_endpoint_matches": true, + "independent_borrowed_input_fields": 632, + "mismatch_examples": [], + "negative_control_omitted_last_cleanup_scalar": false, + "original_data_fields": 224, + "paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "paid_rank_mass": 5290 + } + }, + "forward": { + "arbitrary_owned_C0_cleared": true, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "l1_witness": { + "event": 19099, + "role": [ + "L", + 224 + ] + }, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "paid_rank_mass": 5290, + "real_scalar_allowance": 158120, + "scalar_frames_checked": true, + "second_literal": { + "all_scalar_frames_checked": true, + "clean_J": false, + "conservative_real_scalar_primitive_allowance": 158120, + "direction": "forward", + "dyadic_coefficients_and_unit_scales_checked": true, + "event_counts": { + "adapter": 448, + "center": 8, + "climb": 3355, + "phase": 10, + "scalar": 17453, + "warp": 240 + }, + "expected_restored_arbitrary_cleanup_buffers": 0, + "expected_restored_helpers": 408, + "explicitly_owned_C_fields_cleared": 1, + "free_warp_operator_endpoint_matches": true, + "independent_borrowed_input_fields": 632, + "mismatch_examples": [], + "negative_control_omitted_last_cleanup_scalar": false, + "original_data_fields": 224, + "paid_profile": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "paid_rank_mass": 5290 + } + } + }, + "new_physical_edges_and_boundaries": [ + { + "new": 1, + "old": 0, + "rank": 9, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 9, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 9, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128, + 256 + ], + "offset": 511, + "phase": 1, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 139, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 7, + 8, + 17, + 33, + 64, + 3, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 65, + 33, + 2, + 100, + 104, + 16, + 128, + 256 + ], + "offset": 2, + "phase": 3, + "quadratic_rows": [ + 108, + 0, + 109, + 109, + 0, + 13, + 13, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 7, + 8, + 17, + 33, + 64, + 3, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 2, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 65, + 33, + 2, + 100, + 104, + 16, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 108, + 0, + 109, + 109, + 0, + 13, + 13, + 0, + 0 + ] + } + } + } + }, + { + "new": 140, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 19, + 35, + 2, + 65, + 128, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2 + ], + "matrix_rows": [ + 173, + 14, + 257, + 18, + 276, + 280, + 288, + 64, + 384 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 429, + 30, + 435, + 435, + 14, + 429, + 0, + 429, + 173 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 19, + 35, + 2, + 65, + 128, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 2, + 2, + 1, + 0, + 1, + 2 + ], + "matrix_rows": [ + 173, + 14, + 257, + 18, + 276, + 280, + 288, + 64, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 429, + 30, + 435, + 435, + 14, + 429, + 0, + 429, + 173 + ] + } + } + } + }, + { + "new": 141, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 35, + 65, + 136, + 258, + 3, + 1, + 12, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 1, + 1, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 6, + 19, + 384, + 264, + 97, + 34, + 68, + 392, + 112 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 115, + 53, + 70, + 136, + 115, + 19, + 21, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 35, + 65, + 136, + 258, + 3, + 1, + 12, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 1, + 1, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 6, + 19, + 384, + 264, + 97, + 34, + 68, + 392, + 112 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 115, + 53, + 70, + 136, + 115, + 19, + 21, + 136, + 0 + ] + } + } + } + }, + { + "new": 254, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 264, + 4, + 10, + 16, + 2, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 1, + 2, + 3, + 2, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 40, + 4, + 34, + 16, + 64, + 128, + 256, + 42 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 264, + 4, + 10, + 16, + 2, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 1, + 2, + 3, + 2, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 40, + 4, + 34, + 16, + 64, + 128, + 256, + 42 + ], + "offset": 245, + "phase": 2, + "quadratic_rows": [ + 0, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 255, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 133, + 260, + 1, + 7, + 8, + 3, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 0, + 1, + 3, + 3, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 40, + 15, + 16, + 64, + 128, + 256, + 45, + 42 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 34, + 39, + 38, + 40, + 0, + 15, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 133, + 260, + 1, + 7, + 8, + 3, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 3, + 2, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 40, + 15, + 16, + 64, + 128, + 256, + 45, + 42 + ], + "offset": 125, + "phase": 2, + "quadratic_rows": [ + 34, + 39, + 38, + 40, + 0, + 15, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 259, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 138, + 265, + 4, + 11, + 1, + 2, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 1, + 1, + 2, + 2, + 2 + ], + "matrix_rows": [ + 50, + 49, + 4, + 59, + 64, + 128, + 256, + 25, + 42 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 18, + 33, + 0, + 0, + 49, + 50, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 138, + 265, + 4, + 11, + 1, + 2, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 3, + 3, + 2, + 2, + 2 + ], + "matrix_rows": [ + 50, + 49, + 4, + 59, + 64, + 128, + 256, + 25, + 42 + ], + "offset": 127, + "phase": 3, + "quadratic_rows": [ + 18, + 33, + 0, + 0, + 49, + 50, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 260, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 2, + 2, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 294, + 6, + 8, + 16, + 34, + 2, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 36, + 0, + 0, + 36, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 2, + 2, + 3, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 98, + 8, + 16, + 70, + 128, + 256, + 102 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 66, + 36, + 0, + 0, + 36, + 2, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 2, + 2, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 294, + 6, + 8, + 16, + 34, + 2, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 36, + 0, + 0, + 36, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 2, + 2, + 3, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 98, + 8, + 16, + 70, + 128, + 256, + 102 + ], + "offset": 219, + "phase": 2, + "quadratic_rows": [ + 0, + 66, + 36, + 0, + 0, + 36, + 2, + 0, + 0 + ] + } + } + } + }, + { + "new": 264, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 267, + 3, + 4, + 9, + 16, + 32, + 1, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 2, + 3, + 2, + 2, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 73, + 4, + 67, + 16, + 32, + 128, + 256, + 75 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 65, + 10, + 0, + 10, + 0, + 0, + 1, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 267, + 3, + 4, + 9, + 16, + 32, + 1, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 2, + 3, + 2, + 2, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 73, + 4, + 67, + 16, + 32, + 128, + 256, + 75 + ], + "offset": 245, + "phase": 2, + "quadratic_rows": [ + 65, + 10, + 0, + 10, + 0, + 0, + 1, + 0, + 0 + ] + } + } + } + }, + { + "new": 269, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 1, + 140, + 258, + 10, + 4, + 6, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 12, + 10, + 14, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 0, + 0, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 28, + 26, + 34, + 64, + 128, + 256, + 42, + 52 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 0, + 16, + 44, + 36, + 34, + 28, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 1, + 140, + 258, + 10, + 4, + 6, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 12, + 10, + 14, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 0, + 3, + 0, + 0, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 28, + 26, + 34, + 64, + 128, + 256, + 42, + 52 + ], + "offset": 119, + "phase": 2, + "quadratic_rows": [ + 0, + 16, + 44, + 36, + 34, + 28, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 274, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 258, + 3, + 1, + 4, + 8, + 16, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 0, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 6, + 5, + 8, + 16, + 32, + 64, + 128, + 256, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 258, + 3, + 1, + 4, + 8, + 16, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 0, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 6, + 5, + 8, + 16, + 32, + 64, + 128, + 256, + 7 + ], + "offset": 252, + "phase": 2, + "quadratic_rows": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 279, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 2, + 272, + 8, + 20, + 4, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 20, + 0, + 20, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 2, + 3, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 48, + 8, + 36, + 64, + 128, + 256, + 52 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 20, + 0, + 20, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 2, + 272, + 8, + 20, + 4, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 20, + 0, + 20, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 2, + 3, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 48, + 8, + 36, + 64, + 128, + 256, + 52 + ], + "offset": 235, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 20, + 0, + 20, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 280, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 3, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 318, + 3, + 5, + 9, + 17, + 33, + 1, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 63, + 63, + 63, + 63, + 63, + 63, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 3, + 3, + 3, + 0, + 2, + 2 + ], + "matrix_rows": [ + 126, + 125, + 123, + 119, + 111, + 95, + 128, + 256, + 127 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 63, + 63, + 63, + 63, + 63, + 63, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 3, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 318, + 3, + 5, + 9, + 17, + 33, + 1, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 63, + 63, + 63, + 63, + 63, + 63, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 3, + 3, + 3, + 0, + 2, + 2 + ], + "matrix_rows": [ + 126, + 125, + 123, + 119, + 111, + 95, + 128, + 256, + 127 + ], + "offset": 192, + "phase": 2, + "quadratic_rows": [ + 63, + 63, + 63, + 63, + 63, + 63, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 281, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 2, + 264, + 12, + 16, + 32, + 4, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 3, + 2, + 2, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 72, + 68, + 16, + 32, + 128, + 256, + 76 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 2, + 264, + 12, + 16, + 32, + 4, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 3, + 2, + 2, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 72, + 68, + 16, + 32, + 128, + 256, + 76 + ], + "offset": 243, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 282, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 132, + 262, + 2, + 7, + 3, + 8, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 3, + 2, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 24, + 2, + 15, + 32, + 64, + 128, + 256, + 25, + 30 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 23, + 17, + 21, + 24, + 15, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 132, + 262, + 2, + 7, + 3, + 8, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 3, + 0, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 24, + 2, + 15, + 32, + 64, + 128, + 256, + 25, + 30 + ], + "offset": 126, + "phase": 2, + "quadratic_rows": [ + 23, + 17, + 21, + 24, + 15, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 283, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 139, + 3, + 264, + 4, + 9, + 1, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 10, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 1, + 3, + 1, + 2, + 3, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 49, + 8, + 23, + 64, + 128, + 256, + 51, + 52 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 21, + 38, + 39, + 0, + 49, + 22, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 139, + 3, + 264, + 4, + 9, + 1, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 10, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 2, + 3, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 49, + 8, + 23, + 64, + 128, + 256, + 51, + 52 + ], + "offset": 125, + "phase": 2, + "quadratic_rows": [ + 21, + 38, + 39, + 0, + 49, + 22, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 284, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 270, + 6, + 10, + 2, + 16, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 3, + 0, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 26, + 22, + 32, + 64, + 128, + 256, + 30 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 18, + 12, + 12, + 2, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 3, + 2, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 270, + 6, + 10, + 2, + 16, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 3, + 0, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 2, + 26, + 22, + 32, + 64, + 128, + 256, + 30 + ], + "offset": 243, + "phase": 2, + "quadratic_rows": [ + 0, + 18, + 12, + 12, + 2, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 285, + "old": 0, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 275, + 3, + 4, + 8, + 17, + 1, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 18, + 0, + 0, + 18, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 2, + 2, + 3, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 49, + 4, + 8, + 35, + 64, + 128, + 256, + 51 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 33, + 18, + 0, + 0, + 18, + 1, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 275, + 3, + 4, + 8, + 17, + 1, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 18, + 0, + 0, + 18, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 1, + 3, + 2, + 2, + 3, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 49, + 4, + 8, + 35, + 64, + 128, + 256, + 51 + ], + "offset": 237, + "phase": 2, + "quadratic_rows": [ + 33, + 18, + 0, + 0, + 18, + 1, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 290, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 1, + 132, + 266, + 12, + 2, + 16, + 6, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 12, + 10, + 14, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 1, + 2, + 0, + 0, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 28, + 26, + 68, + 32, + 128, + 256, + 82, + 76 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 0, + 74, + 16, + 66, + 68, + 0, + 26, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 1, + 132, + 266, + 12, + 2, + 16, + 6, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 12, + 10, + 14, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 2, + 0, + 2, + 2 + ], + "matrix_rows": [ + 1, + 28, + 26, + 68, + 32, + 128, + 256, + 82, + 76 + ], + "offset": 119, + "phase": 2, + "quadratic_rows": [ + 0, + 74, + 16, + 66, + 68, + 0, + 26, + 0, + 0 + ] + } + } + } + }, + { + "new": 291, + "old": 0, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 3, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 144, + 270, + 6, + 10, + 2, + 17, + 1, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 17, + 2, + 12, + 12, + 17, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 3, + 0, + 3, + 0, + 2, + 2 + ], + "matrix_rows": [ + 96, + 2, + 26, + 22, + 65, + 128, + 256, + 97, + 30 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 33, + 18, + 12, + 12, + 2, + 33, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 3, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 144, + 270, + 6, + 10, + 2, + 17, + 1, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 17, + 2, + 12, + 12, + 17, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 3, + 0, + 3, + 0, + 2, + 2 + ], + "matrix_rows": [ + 96, + 2, + 26, + 22, + 65, + 128, + 256, + 97, + 30 + ], + "offset": 98, + "phase": 3, + "quadratic_rows": [ + 33, + 18, + 12, + 12, + 2, + 33, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 293, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 34, + 67, + 131, + 2, + 1, + 264, + 12, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 3, + 0 + ], + "matrix_rows": [ + 13, + 14, + 384, + 320, + 33, + 18, + 52, + 56, + 448 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 45, + 30, + 51, + 51, + 14, + 13, + 192, + 192, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 34, + 67, + 131, + 2, + 1, + 264, + 12, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 2, + 2, + 2, + 1, + 3, + 0 + ], + "matrix_rows": [ + 13, + 14, + 384, + 320, + 33, + 18, + 52, + 56, + 448 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 45, + 30, + 51, + 51, + 14, + 13, + 192, + 192, + 0 + ] + } + } + } + }, + { + "new": 294, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 22, + 45, + 67, + 10, + 4, + 135, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 10, + 12, + 15, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 3, + 2, + 1, + 1, + 3, + 1, + 3, + 2 + ], + "matrix_rows": [ + 510, + 509, + 507, + 258, + 321, + 266, + 276, + 288, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 326, + 15, + 275, + 250, + 252, + 248, + 249, + 248, + 5 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 22, + 45, + 67, + 10, + 4, + 135, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 10, + 12, + 15, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 3, + 2, + 1, + 1, + 3, + 1, + 3, + 2 + ], + "matrix_rows": [ + 510, + 509, + 507, + 258, + 321, + 266, + 276, + 288, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 326, + 15, + 275, + 250, + 252, + 248, + 249, + 248, + 5 + ] + } + } + } + }, + { + "new": 296, + "old": 0, + "rank": 5, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 1, + 60, + 6, + 82, + 8, + 138, + 16, + 282, + 26 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 28, + 30, + 22, + 14, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 2, + 1, + 2, + 1, + 3, + 2 + ], + "matrix_rows": [ + 1, + 252, + 258, + 246, + 222, + 262, + 280, + 352, + 384 + ], + "offset": 0, + "phase": 3, + "quadratic_rows": [ + 0, + 46, + 470, + 306, + 476, + 330, + 500, + 468, + 252 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 1, + 60, + 6, + 82, + 8, + 138, + 16, + 282, + 26 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 28, + 30, + 22, + 14, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 2, + 3, + 2, + 3, + 1, + 0 + ], + "matrix_rows": [ + 1, + 252, + 258, + 246, + 222, + 262, + 280, + 352, + 384 + ], + "offset": 27, + "phase": 0, + "quadratic_rows": [ + 0, + 46, + 470, + 306, + 476, + 330, + 500, + 468, + 252 + ] + } + } + } + }, + { + "new": 298, + "old": 0, + "rank": 5, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 37, + 68, + 7, + 130, + 1, + 272, + 3, + 24, + 8 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 2, + 24, + 24, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 2, + 1, + 1, + 3, + 1, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 1, + 28, + 23, + 384, + 288, + 85, + 70, + 88, + 416 + ], + "offset": 2, + "phase": 0, + "quadratic_rows": [ + 66, + 83, + 28, + 76, + 22, + 160, + 11, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 37, + 68, + 7, + 130, + 1, + 272, + 3, + 24, + 8 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 2, + 24, + 24, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 3, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 1, + 28, + 23, + 384, + 288, + 85, + 70, + 88, + 416 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 66, + 83, + 28, + 76, + 22, + 160, + 11, + 160, + 0 + ] + } + } + } + }, + { + "new": 299, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 33, + 68, + 136, + 10, + 9, + 11, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 8, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 3, + 1, + 1, + 3, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 50, + 49, + 388, + 8, + 97, + 82, + 260, + 120, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 81, + 98, + 132, + 120, + 57, + 58, + 11, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 33, + 68, + 136, + 10, + 9, + 11, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 8, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 50, + 49, + 388, + 8, + 97, + 82, + 260, + 120, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 81, + 98, + 132, + 120, + 57, + 58, + 11, + 132, + 0 + ] + } + } + } + }, + { + "new": 301, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 30, + 35, + 69, + 128, + 270, + 3, + 5, + 9, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 3, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 390, + 19, + 21, + 145, + 481, + 34, + 68, + 8, + 496 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 375, + 437, + 467, + 0, + 375, + 19, + 21, + 390, + 151 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 30, + 35, + 69, + 128, + 270, + 3, + 5, + 9, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 390, + 19, + 21, + 145, + 481, + 34, + 68, + 8, + 496 + ], + "offset": 8, + "phase": 1, + "quadratic_rows": [ + 375, + 437, + 467, + 0, + 375, + 19, + 21, + 390, + 151 + ] + } + } + } + }, + { + "new": 303, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 36, + 66, + 136, + 14, + 12, + 10, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 8, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 1, + 2, + 3, + 3, + 1, + 2 + ], + "matrix_rows": [ + 385, + 100, + 98, + 8, + 257, + 82, + 52, + 120, + 384 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 129, + 50, + 84, + 120, + 14, + 106, + 108, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 36, + 66, + 136, + 14, + 12, + 10, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 8, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 1, + 2, + 1, + 1, + 3, + 2 + ], + "matrix_rows": [ + 385, + 100, + 98, + 8, + 257, + 82, + 52, + 120, + 384 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 129, + 50, + 84, + 120, + 14, + 106, + 108, + 129, + 0 + ] + } + } + } + }, + { + "new": 304, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 19, + 45, + 70, + 141, + 6, + 256, + 3, + 10, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 10, + 4, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 3, + 2, + 3, + 2, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 11, + 389, + 14, + 138, + 65, + 466, + 20, + 472, + 32 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 462, + 351, + 411, + 351, + 14, + 0, + 11, + 389, + 143 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 19, + 45, + 70, + 141, + 6, + 256, + 3, + 10, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 10, + 4, + 2, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 1, + 2, + 1, + 2, + 0, + 2, + 3, + 0 + ], + "matrix_rows": [ + 11, + 389, + 14, + 138, + 65, + 466, + 20, + 472, + 32 + ], + "offset": 8, + "phase": 1, + "quadratic_rows": [ + 462, + 351, + 411, + 351, + 14, + 0, + 11, + 389, + 143 + ] + } + } + } + }, + { + "new": 305, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 22, + 33, + 71, + 5, + 3, + 136, + 2, + 264, + 8 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 2, + 2, + 1, + 2, + 1, + 2 + ], + "matrix_rows": [ + 6, + 5, + 93, + 416, + 25, + 82, + 76, + 288, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 64, + 86, + 22, + 0, + 6, + 160, + 3, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 22, + 33, + 71, + 5, + 3, + 136, + 2, + 264, + 8 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 2, + 2, + 3, + 2, + 3, + 2 + ], + "matrix_rows": [ + 6, + 5, + 93, + 416, + 25, + 82, + 76, + 288, + 384 + ], + "offset": 15, + "phase": 0, + "quadratic_rows": [ + 64, + 86, + 22, + 0, + 6, + 160, + 3, + 160, + 0 + ] + } + } + } + }, + { + "new": 307, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 16, + 46, + 78, + 131, + 3, + 261, + 5, + 9, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 2, + 2, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 424, + 14, + 38, + 134, + 1, + 466, + 468, + 24, + 96 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 382, + 382, + 438, + 14, + 462, + 38, + 424, + 174 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 16, + 46, + 78, + 131, + 3, + 261, + 5, + 9, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 424, + 14, + 38, + 134, + 1, + 466, + 468, + 24, + 96 + ], + "offset": 8, + "phase": 1, + "quadratic_rows": [ + 0, + 382, + 382, + 438, + 14, + 462, + 38, + 424, + 174 + ] + } + } + } + }, + { + "new": 308, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 41, + 75, + 132, + 10, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 2, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 6, + 5, + 392, + 118, + 97, + 82, + 52, + 264, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 101, + 32, + 69, + 136, + 0, + 3, + 5, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 41, + 75, + 132, + 10, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 3, + 2, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 6, + 5, + 392, + 118, + 97, + 82, + 52, + 264, + 384 + ], + "offset": 15, + "phase": 0, + "quadratic_rows": [ + 101, + 32, + 69, + 136, + 0, + 3, + 5, + 136, + 0 + ] + } + } + } + }, + { + "new": 309, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 30, + 46, + 64, + 131, + 261, + 5, + 3, + 9, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 2, + 2, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 408, + 11, + 19, + 131, + 481, + 482, + 4, + 72, + 48 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 379, + 379, + 0, + 467, + 427, + 19, + 11, + 408, + 155 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 30, + 46, + 64, + 131, + 261, + 5, + 3, + 9, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 2, + 2, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 408, + 11, + 19, + 131, + 481, + 482, + 4, + 72, + 48 + ], + "offset": 8, + "phase": 1, + "quadratic_rows": [ + 379, + 379, + 0, + 467, + 427, + 19, + 11, + 408, + 155 + ] + } + } + } + }, + { + "new": 314, + "old": 0, + "rank": 5, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 60, + 2, + 5, + 81, + 137, + 8, + 16, + 281, + 25 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 28, + 0, + 29, + 21, + 13, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 2, + 2, + 1, + 1, + 3, + 2 + ], + "matrix_rows": [ + 252, + 2, + 257, + 245, + 237, + 261, + 296, + 336, + 384 + ], + "offset": 0, + "phase": 3, + "quadratic_rows": [ + 29, + 0, + 485, + 305, + 329, + 492, + 500, + 484, + 252 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 60, + 2, + 5, + 81, + 137, + 8, + 16, + 281, + 25 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 28, + 0, + 29, + 21, + 13, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 2, + 2, + 3, + 3, + 1, + 0 + ], + "matrix_rows": [ + 252, + 2, + 257, + 245, + 237, + 261, + 296, + 336, + 384 + ], + "offset": 27, + "phase": 0, + "quadratic_rows": [ + 29, + 0, + 485, + 305, + 329, + 492, + 500, + 484, + 252 + ] + } + } + } + }, + { + "new": 318, + "old": 0, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 20, + 38, + 7, + 65, + 136, + 2, + 3, + 8, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 1, + 8, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 2, + 1, + 3, + 1, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 44, + 2, + 39, + 16, + 69, + 102, + 104, + 144, + 256 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 99, + 65, + 44, + 76, + 144, + 37, + 11, + 16, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 20, + 38, + 7, + 65, + 136, + 2, + 3, + 8, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 1, + 8, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 1, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 44, + 2, + 39, + 16, + 69, + 102, + 104, + 144, + 256 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 99, + 65, + 44, + 76, + 144, + 37, + 11, + 16, + 0 + ] + } + } + } + }, + { + "new": 324, + "old": 0, + "rank": 5, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 34, + 65, + 144, + 264, + 9, + 10, + 11, + 20, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 20, + 8, + 20, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 3, + 3, + 1, + 1, + 3, + 3, + 2, + 3, + 0 + ], + "matrix_rows": [ + 50, + 49, + 384, + 8, + 260, + 81, + 98, + 388, + 120 + ], + "offset": 3, + "phase": 1, + "quadratic_rows": [ + 97, + 82, + 132, + 120, + 58, + 57, + 11, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 34, + 65, + 144, + 264, + 9, + 10, + 11, + 20, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 20, + 8, + 20, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 50, + 49, + 384, + 8, + 260, + 81, + 98, + 388, + 120 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 97, + 82, + 132, + 120, + 58, + 57, + 11, + 132, + 0 + ] + } + } + } + }, + { + "new": 335, + "old": 0, + "rank": 5, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 48, + 68, + 130, + 264, + 14, + 10, + 12, + 17, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 17, + 4, + 2, + 8, + 17, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 1, + 2, + 3, + 3, + 3, + 0 + ], + "matrix_rows": [ + 384, + 100, + 98, + 8, + 257, + 385, + 50, + 84, + 120 + ], + "offset": 6, + "phase": 1, + "quadratic_rows": [ + 129, + 82, + 52, + 120, + 14, + 108, + 106, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 3, + 3, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 48, + 68, + 130, + 264, + 14, + 10, + 12, + 17, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 17, + 4, + 2, + 8, + 17, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 3, + 0 + ], + "matrix_rows": [ + 384, + 100, + 98, + 8, + 257, + 385, + 50, + 84, + 120 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 129, + 82, + 52, + 120, + 14, + 108, + 106, + 129, + 0 + ] + } + } + } + }, + { + "new": 340, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 8, + 18, + 35, + 1, + 3, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 24, + 13, + 49, + 2, + 52, + 40, + 64, + 128, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 61, + 0, + 61, + 53, + 13, + 13, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 8, + 18, + 35, + 1, + 3, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 24, + 13, + 49, + 2, + 52, + 40, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 61, + 0, + 61, + 53, + 13, + 13, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 341, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 7, + 9, + 18, + 3, + 32, + 2, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 3, + 2, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 43, + 5, + 9, + 42, + 36, + 16, + 64, + 128, + 256 + ], + "offset": 2, + "phase": 3, + "quadratic_rows": [ + 38, + 3, + 37, + 0, + 0, + 5, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 7, + 9, + 18, + 3, + 32, + 2, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 2, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 43, + 5, + 9, + 42, + 36, + 16, + 64, + 128, + 256 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 38, + 3, + 37, + 0, + 0, + 5, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 351, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 21, + 35, + 71, + 1, + 2, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 2, + 3, + 3, + 0 + ], + "matrix_rows": [ + 462, + 461, + 251, + 273, + 290, + 52, + 264, + 320, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 38, + 21, + 51, + 504, + 462, + 461, + 504, + 504, + 248 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 21, + 35, + 71, + 1, + 2, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 0, + 0, + 3, + 3, + 0 + ], + "matrix_rows": [ + 462, + 461, + 251, + 273, + 290, + 52, + 264, + 320, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 38, + 21, + 51, + 504, + 462, + 461, + 504, + 504, + 248 + ] + } + } + } + }, + { + "new": 352, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 3, + 65, + 1, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 3, + 2, + 1, + 1, + 2 + ], + "matrix_rows": [ + 24, + 11, + 448, + 41, + 42, + 4, + 48, + 320, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 35, + 35, + 0, + 24, + 56, + 19, + 192, + 192, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 3, + 65, + 1, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 3, + 1, + 2, + 3, + 3, + 2 + ], + "matrix_rows": [ + 24, + 11, + 448, + 41, + 42, + 4, + 48, + 320, + 384 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 35, + 35, + 0, + 24, + 56, + 19, + 192, + 192, + 0 + ] + } + } + } + }, + { + "new": 353, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 1, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 0, + 1, + 1, + 2 + ], + "matrix_rows": [ + 40, + 14, + 448, + 1, + 50, + 52, + 24, + 320, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 62, + 62, + 54, + 14, + 14, + 192, + 192, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 1, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 0, + 3, + 3, + 2 + ], + "matrix_rows": [ + 40, + 14, + 448, + 1, + 50, + 52, + 24, + 320, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 62, + 62, + 54, + 14, + 14, + 192, + 192, + 0 + ] + } + } + } + }, + { + "new": 354, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 21, + 35, + 7, + 1, + 66, + 130, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 2, + 2, + 1, + 1, + 1, + 0 + ], + "matrix_rows": [ + 6, + 485, + 283, + 25, + 266, + 276, + 288, + 320, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 230, + 21, + 243, + 0, + 6, + 229, + 229, + 229, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 21, + 35, + 7, + 1, + 66, + 130, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 0 + ], + "matrix_rows": [ + 6, + 485, + 283, + 25, + 266, + 276, + 288, + 320, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 230, + 21, + 243, + 0, + 6, + 229, + 229, + 229, + 0 + ] + } + } + } + }, + { + "new": 355, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 36, + 65, + 6, + 2, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 2, + 1, + 3, + 3, + 1 + ], + "matrix_rows": [ + 235, + 451, + 229, + 257, + 306, + 52, + 280, + 320, + 384 + ], + "offset": 6, + "phase": 3, + "quadratic_rows": [ + 205, + 24, + 213, + 507, + 14, + 296, + 205, + 205, + 296 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 36, + 65, + 6, + 2, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 3, + 1, + 2, + 3, + 1, + 1, + 3 + ], + "matrix_rows": [ + 235, + 451, + 229, + 257, + 306, + 52, + 280, + 320, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 205, + 24, + 213, + 507, + 14, + 296, + 205, + 205, + 296 + ] + } + } + } + }, + { + "new": 356, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 3, + 1, + 64, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 2, + 2, + 0, + 1, + 1, + 2 + ], + "matrix_rows": [ + 6, + 27, + 448, + 25, + 10, + 20, + 32, + 320, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 3, + 21, + 22, + 0, + 6, + 0, + 192, + 192, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 3, + 1, + 64, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 2, + 2, + 0, + 3, + 3, + 2 + ], + "matrix_rows": [ + 6, + 27, + 448, + 25, + 10, + 20, + 32, + 320, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 3, + 21, + 22, + 0, + 6, + 0, + 192, + 192, + 0 + ] + } + } + } + }, + { + "new": 357, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 64, + 1, + 2, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 0, + 3, + 3, + 1, + 1, + 2 + ], + "matrix_rows": [ + 53, + 54, + 448, + 17, + 34, + 52, + 8, + 320, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 37, + 22, + 51, + 0, + 54, + 53, + 192, + 192, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 64, + 1, + 2, + 132, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 1, + 1, + 3, + 3, + 2 + ], + "matrix_rows": [ + 53, + 54, + 448, + 17, + 34, + 52, + 8, + 320, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 37, + 22, + 51, + 0, + 54, + 53, + 192, + 192, + 0 + ] + } + } + } + }, + { + "new": 358, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 33, + 7, + 66, + 3, + 129, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 3, + 1, + 3, + 2, + 3, + 3, + 1 + ], + "matrix_rows": [ + 453, + 280, + 267, + 297, + 42, + 260, + 304, + 320, + 384 + ], + "offset": 3, + "phase": 3, + "quadratic_rows": [ + 486, + 291, + 197, + 280, + 56, + 19, + 197, + 197, + 267 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 33, + 7, + 66, + 3, + 129, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 1, + 3, + 1, + 2, + 1, + 1, + 3 + ], + "matrix_rows": [ + 453, + 280, + 267, + 297, + 42, + 260, + 304, + 320, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 486, + 291, + 197, + 280, + 56, + 19, + 197, + 197, + 267 + ] + } + } + } + }, + { + "new": 360, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 8, + 18, + 35, + 64, + 3, + 128, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 136, + 13, + 161, + 2, + 164, + 40, + 16, + 64, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 173, + 0, + 173, + 165, + 0, + 13, + 0, + 13, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 8, + 18, + 35, + 64, + 3, + 128, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 2, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 136, + 13, + 161, + 2, + 164, + 40, + 16, + 64, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 173, + 0, + 173, + 165, + 0, + 13, + 0, + 13, + 0 + ] + } + } + } + }, + { + "new": 361, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 8, + 17, + 33, + 66, + 1, + 130, + 2, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 1, + 2, + 1, + 2, + 0 + ], + "matrix_rows": [ + 13, + 208, + 33, + 2, + 36, + 40, + 144, + 192, + 256 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 45, + 0, + 45, + 45, + 80, + 13, + 80, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 8, + 17, + 33, + 66, + 1, + 130, + 2, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 3, + 2, + 3, + 2, + 0 + ], + "matrix_rows": [ + 13, + 208, + 33, + 2, + 36, + 40, + 144, + 192, + 256 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 45, + 0, + 45, + 45, + 80, + 13, + 80, + 0, + 0 + ] + } + } + } + }, + { + "new": 371, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 130, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 384, + 56, + 133, + 385, + 2, + 388, + 72, + 80, + 96 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 261, + 0, + 261, + 120, + 120, + 120, + 56, + 384, + 133 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 130, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 1, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 384, + 56, + 133, + 385, + 2, + 388, + 72, + 80, + 96 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 261, + 0, + 261, + 120, + 120, + 120, + 56, + 384, + 133 + ] + } + } + } + }, + { + "new": 372, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 71, + 131, + 263, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 1, + 0, + 1, + 2, + 1, + 0 + ], + "matrix_rows": [ + 440, + 56, + 168, + 1, + 2, + 4, + 456, + 80, + 480 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 0, + 232, + 448, + 232, + 56, + 440, + 144 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 71, + 131, + 263, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 3, + 0, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 440, + 56, + 168, + 1, + 2, + 4, + 456, + 80, + 480 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 0, + 232, + 448, + 232, + 56, + 440, + 144 + ] + } + } + } + }, + { + "new": 373, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 133, + 258, + 5, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 272, + 168, + 21, + 321, + 2, + 324, + 136, + 80, + 160 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 341, + 0, + 341, + 40, + 325, + 40, + 21, + 0, + 21 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 133, + 258, + 5, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 3, + 2, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 272, + 168, + 21, + 321, + 2, + 324, + 136, + 80, + 160 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 341, + 0, + 341, + 40, + 325, + 40, + 21, + 0, + 21 + ] + } + } + } + }, + { + "new": 374, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 133, + 258, + 5, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 144, + 296, + 21, + 193, + 2, + 196, + 264, + 80, + 288 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 213, + 0, + 213, + 40, + 197, + 40, + 21, + 21, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 133, + 258, + 5, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 3, + 2, + 3, + 2, + 0, + 2 + ], + "matrix_rows": [ + 144, + 296, + 21, + 193, + 2, + 196, + 264, + 80, + 288 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 213, + 0, + 213, + 40, + 197, + 40, + 21, + 21, + 0 + ] + } + } + } + }, + { + "new": 375, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 129, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 21, + 384, + 168, + 65, + 2, + 68, + 392, + 80, + 416 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 85, + 0, + 85, + 296, + 85, + 296, + 21, + 384, + 168 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 129, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 3, + 1, + 3, + 2, + 3, + 0 + ], + "matrix_rows": [ + 21, + 384, + 168, + 65, + 2, + 68, + 392, + 80, + 416 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 85, + 0, + 85, + 296, + 85, + 296, + 21, + 384, + 168 + ] + } + } + } + }, + { + "new": 376, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 16, + 39, + 64, + 131, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 0, + 0, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 405, + 21, + 133, + 449, + 2, + 452, + 8, + 80, + 32 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 197, + 0, + 197, + 0, + 448, + 0, + 21, + 405, + 144 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 16, + 39, + 64, + 131, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 0, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 405, + 21, + 133, + 449, + 2, + 452, + 8, + 80, + 32 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 197, + 0, + 197, + 0, + 448, + 0, + 21, + 405, + 144 + ] + } + } + } + }, + { + "new": 377, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 134, + 260, + 6, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 133, + 272, + 56, + 129, + 2, + 132, + 328, + 80, + 352 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 5, + 0, + 5, + 376, + 360, + 376, + 56, + 0, + 56 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 134, + 260, + 6, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 2, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 133, + 272, + 56, + 129, + 2, + 132, + 328, + 80, + 352 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 5, + 0, + 5, + 376, + 360, + 376, + 56, + 0, + 56 + ] + } + } + } + }, + { + "new": 378, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 134, + 260, + 6, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 261, + 144, + 56, + 257, + 2, + 260, + 200, + 80, + 224 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 5, + 0, + 5, + 248, + 232, + 248, + 56, + 56, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 134, + 260, + 6, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 2, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 261, + 144, + 56, + 257, + 2, + 260, + 200, + 80, + 224 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 5, + 0, + 5, + 248, + 232, + 248, + 56, + 56, + 0 + ] + } + } + } + }, + { + "new": 380, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 17, + 34, + 67, + 1, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 1, + 0, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 470, + 475, + 289, + 258, + 36, + 296, + 272, + 320, + 384 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 251, + 269, + 502, + 251, + 269, + 13, + 269, + 269, + 470 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 17, + 34, + 67, + 1, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 0, + 1, + 3, + 0, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 470, + 475, + 289, + 258, + 36, + 296, + 272, + 320, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 251, + 269, + 502, + 251, + 269, + 13, + 269, + 269, + 470 + ] + } + } + } + }, + { + "new": 381, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 8, + 17, + 33, + 66, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 1, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 13, + 400, + 33, + 2, + 36, + 40, + 272, + 64, + 384 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 45, + 0, + 45, + 45, + 144, + 13, + 0, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 8, + 17, + 33, + 66, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 3, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 13, + 400, + 33, + 2, + 36, + 40, + 272, + 64, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 45, + 0, + 45, + 45, + 144, + 13, + 0, + 144, + 0 + ] + } + } + } + }, + { + "new": 391, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 39, + 6, + 67, + 131, + 1, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 3, + 2, + 2, + 2, + 2, + 2, + 1 + ], + "matrix_rows": [ + 438, + 437, + 334, + 321, + 266, + 76, + 272, + 288, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 245, + 496, + 261, + 0, + 259, + 259, + 3, + 259, + 438 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 39, + 6, + 67, + 131, + 1, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 438, + 437, + 334, + 321, + 266, + 76, + 272, + 288, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 245, + 496, + 261, + 0, + 259, + 259, + 3, + 259, + 438 + ] + } + } + } + }, + { + "new": 392, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 132, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 40, + 11, + 400, + 97, + 98, + 4, + 72, + 272, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 107, + 107, + 0, + 99, + 144, + 11, + 11, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 132, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 2, + 3, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 40, + 11, + 400, + 97, + 98, + 4, + 72, + 272, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 107, + 107, + 0, + 99, + 144, + 11, + 11, + 144, + 0 + ] + } + } + } + }, + { + "new": 393, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 39, + 70, + 134, + 3, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 6, + 413, + 254, + 97, + 290, + 324, + 264, + 272, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 509, + 472, + 37, + 99, + 99, + 413, + 411, + 99, + 355 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 39, + 70, + 134, + 3, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 6, + 413, + 254, + 97, + 290, + 324, + 264, + 272, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 509, + 472, + 37, + 99, + 99, + 413, + 411, + 99, + 355 + ] + } + } + } + }, + { + "new": 394, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 3, + 68, + 129, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 40, + 14, + 400, + 1, + 74, + 76, + 272, + 96, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 70, + 70, + 40, + 144, + 104, + 38, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 3, + 68, + 129, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 3, + 3, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 40, + 14, + 400, + 1, + 74, + 76, + 272, + 96, + 384 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 0, + 70, + 70, + 40, + 144, + 104, + 38, + 144, + 0 + ] + } + } + } + }, + { + "new": 395, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 23, + 36, + 6, + 67, + 129, + 2, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 7, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 3, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 187, + 403, + 270, + 257, + 330, + 76, + 272, + 352, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 40, + 366, + 326, + 187, + 40, + 507, + 38, + 40, + 38 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 23, + 36, + 6, + 67, + 129, + 2, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 7, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 3, + 2, + 1, + 2, + 2, + 2 + ], + "matrix_rows": [ + 187, + 403, + 270, + 257, + 330, + 76, + 272, + 352, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 40, + 366, + 326, + 187, + 40, + 507, + 38, + 40, + 38 + ] + } + } + } + }, + { + "new": 396, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 64, + 132, + 3, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 0, + 1, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 6, + 99, + 400, + 97, + 34, + 68, + 8, + 272, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 3, + 69, + 70, + 0, + 144, + 0, + 6, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 64, + 132, + 3, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 3, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 6, + 99, + 400, + 97, + 34, + 68, + 8, + 272, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 3, + 69, + 70, + 0, + 144, + 0, + 6, + 144, + 0 + ] + } + } + } + }, + { + "new": 397, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 38, + 65, + 134, + 3, + 7, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 3, + 2, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 296, + 406, + 181, + 97, + 354, + 260, + 328, + 272, + 384 + ], + "offset": 7, + "phase": 0, + "quadratic_rows": [ + 213, + 246, + 35, + 104, + 35, + 190, + 11, + 35, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 38, + 65, + 134, + 3, + 7, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 0, + 1, + 0, + 3, + 2, + 0, + 0 + ], + "matrix_rows": [ + 296, + 406, + 181, + 97, + 354, + 260, + 328, + 272, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 213, + 246, + 35, + 104, + 35, + 190, + 11, + 35, + 0 + ] + } + } + } + }, + { + "new": 398, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 2, + 68, + 128, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 3, + 1, + 0, + 3, + 1, + 2 + ], + "matrix_rows": [ + 77, + 78, + 400, + 65, + 10, + 76, + 272, + 32, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 13, + 70, + 75, + 77, + 144, + 0, + 78, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 2, + 68, + 128, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 1, + 3, + 0, + 1, + 3, + 2 + ], + "matrix_rows": [ + 77, + 78, + 400, + 65, + 10, + 76, + 272, + 32, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 13, + 70, + 75, + 77, + 144, + 0, + 78, + 144, + 0 + ] + } + } + } + }, + { + "new": 399, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 16, + 32, + 66, + 3, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 66, + 19, + 97, + 34, + 4, + 8, + 112, + 128, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 115, + 113, + 0, + 0, + 115, + 19, + 19, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 16, + 32, + 66, + 3, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 66, + 19, + 97, + 34, + 4, + 8, + 112, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 115, + 113, + 0, + 0, + 115, + 19, + 19, + 0, + 0 + ] + } + } + } + }, + { + "new": 400, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 10, + 19, + 35, + 65, + 1, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 3, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 476, + 463, + 289, + 290, + 260, + 264, + 48, + 320, + 384 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 239, + 239, + 275, + 275, + 508, + 19, + 275, + 275, + 476 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 10, + 19, + 35, + 65, + 1, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 0, + 1, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 476, + 463, + 289, + 290, + 260, + 264, + 48, + 320, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 239, + 239, + 275, + 275, + 508, + 19, + 275, + 275, + 476 + ] + } + } + } + }, + { + "new": 401, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 16, + 35, + 2, + 1, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 2, + 3, + 3, + 0, + 0, + 0 + ], + "matrix_rows": [ + 57, + 58, + 33, + 18, + 4, + 56, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 25, + 42, + 0, + 51, + 57, + 58, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 16, + 35, + 2, + 1, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 2, + 1, + 1, + 0, + 0, + 0 + ], + "matrix_rows": [ + 57, + 58, + 33, + 18, + 4, + 56, + 64, + 128, + 256 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 25, + 42, + 0, + 51, + 57, + 58, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 404, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 18, + 32, + 65, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 19, + 388, + 33, + 34, + 260, + 8, + 48, + 64, + 384 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 51, + 51, + 132, + 0, + 51, + 19, + 0, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 18, + 32, + 65, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 0, + 1, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 19, + 388, + 33, + 34, + 260, + 8, + 48, + 64, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 132, + 0, + 51, + 19, + 0, + 132, + 0 + ] + } + } + } + }, + { + "new": 411, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 34, + 69, + 5, + 129, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 40, + 388, + 90, + 1, + 82, + 260, + 24, + 96, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 10, + 132, + 98, + 0, + 104, + 40, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 34, + 69, + 5, + 129, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 2, + 2, + 3, + 2, + 3, + 2 + ], + "matrix_rows": [ + 40, + 388, + 90, + 1, + 82, + 260, + 24, + 96, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 0, + 10, + 132, + 98, + 0, + 104, + 40, + 132, + 0 + ] + } + } + } + }, + { + "new": 412, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 22, + 38, + 67, + 135, + 5, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 2, + 0, + 1, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 24, + 254, + 407, + 97, + 258, + 260, + 296, + 336, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 503, + 105, + 105, + 454, + 49, + 407, + 399, + 105, + 361 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 22, + 38, + 67, + 135, + 5, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 24, + 254, + 407, + 97, + 258, + 260, + 296, + 336, + 384 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 503, + 105, + 105, + 454, + 49, + 407, + 399, + 105, + 361 + ] + } + } + } + }, + { + "new": 413, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 37, + 68, + 2, + 133, + 3, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 1, + 0, + 0, + 2, + 0, + 1 + ], + "matrix_rows": [ + 182, + 273, + 189, + 321, + 82, + 260, + 344, + 288, + 384 + ], + "offset": 3, + "phase": 3, + "quadratic_rows": [ + 236, + 230, + 267, + 493, + 0, + 267, + 11, + 267, + 428 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 37, + 68, + 2, + 133, + 3, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 0, + 1, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 182, + 273, + 189, + 321, + 82, + 260, + 344, + 288, + 384 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 236, + 230, + 267, + 493, + 0, + 267, + 11, + 267, + 428 + ] + } + } + } + }, + { + "new": 414, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 36, + 66, + 128, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 34, + 11, + 388, + 97, + 66, + 260, + 104, + 16, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 107, + 105, + 132, + 107, + 0, + 11, + 11, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 36, + 66, + 128, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 3, + 1, + 0, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 34, + 11, + 388, + 97, + 66, + 260, + 104, + 16, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 107, + 105, + 132, + 107, + 0, + 11, + 11, + 132, + 0 + ] + } + } + } + }, + { + "new": 415, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 65, + 2, + 128, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 11, + 17, + 388, + 65, + 82, + 260, + 88, + 32, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 90, + 91, + 132, + 91, + 11, + 0, + 11, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 65, + 2, + 128, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 1, + 0, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 11, + 17, + 388, + 65, + 82, + 260, + 88, + 32, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 90, + 91, + 132, + 91, + 11, + 0, + 11, + 132, + 0 + ] + } + } + } + }, + { + "new": 416, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 38, + 68, + 134, + 1, + 3, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 1, + 0, + 0, + 2, + 0, + 1 + ], + "matrix_rows": [ + 290, + 181, + 190, + 97, + 322, + 260, + 360, + 272, + 384 + ], + "offset": 3, + "phase": 3, + "quadratic_rows": [ + 213, + 220, + 267, + 478, + 267, + 0, + 11, + 267, + 412 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 38, + 68, + 134, + 1, + 3, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 290, + 181, + 190, + 97, + 322, + 260, + 360, + 272, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 213, + 220, + 267, + 478, + 267, + 0, + 11, + 267, + 412 + ] + } + } + } + }, + { + "new": 417, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 37, + 67, + 6, + 135, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 2, + 0, + 2, + 1, + 2, + 2, + 3 + ], + "matrix_rows": [ + 253, + 40, + 423, + 257, + 82, + 260, + 280, + 352, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 90, + 503, + 90, + 453, + 423, + 50, + 399, + 90, + 346 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 37, + 67, + 6, + 135, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 0, + 0, + 3, + 0, + 0, + 1 + ], + "matrix_rows": [ + 253, + 40, + 423, + 257, + 82, + 260, + 280, + 352, + 384 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 90, + 503, + 90, + 453, + 423, + 50, + 399, + 90, + 346 + ] + } + } + } + }, + { + "new": 418, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 34, + 69, + 129, + 5, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 0, + 3, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 24, + 388, + 105, + 97, + 2, + 260, + 40, + 80, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 9, + 0, + 132, + 81, + 88, + 0, + 24, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 34, + 69, + 129, + 5, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 2, + 3, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 24, + 388, + 105, + 97, + 2, + 260, + 40, + 80, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 9, + 0, + 132, + 81, + 88, + 0, + 24, + 132, + 0 + ] + } + } + } + }, + { + "new": 424, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 18, + 32, + 65, + 1, + 130, + 2, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 2, + 0 + ], + "matrix_rows": [ + 19, + 196, + 33, + 34, + 132, + 8, + 48, + 192, + 256 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 51, + 51, + 68, + 0, + 51, + 19, + 68, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 18, + 32, + 65, + 1, + 130, + 2, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 0, + 1, + 2, + 3, + 2, + 0 + ], + "matrix_rows": [ + 19, + 196, + 33, + 34, + 132, + 8, + 48, + 192, + 256 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 68, + 0, + 51, + 19, + 68, + 0, + 0 + ] + } + } + } + }, + { + "new": 431, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 37, + 64, + 132, + 258, + 5, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 260, + 162, + 21, + 321, + 130, + 68, + 8, + 336, + 160 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 341, + 34, + 337, + 0, + 341, + 34, + 21, + 0, + 21 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 37, + 64, + 132, + 258, + 5, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 2, + 0, + 1, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 260, + 162, + 21, + 321, + 130, + 68, + 8, + 336, + 160 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 341, + 34, + 337, + 0, + 341, + 34, + 21, + 0, + 21 + ] + } + } + } + }, + { + "new": 432, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 37, + 64, + 132, + 258, + 5, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 132, + 290, + 21, + 193, + 258, + 68, + 8, + 208, + 288 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 213, + 34, + 209, + 0, + 213, + 34, + 21, + 21, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 37, + 64, + 132, + 258, + 5, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 2, + 0, + 1, + 3, + 2, + 0, + 2 + ], + "matrix_rows": [ + 132, + 290, + 21, + 193, + 258, + 68, + 8, + 208, + 288 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 213, + 34, + 209, + 0, + 213, + 34, + 21, + 21, + 0 + ] + } + } + } + }, + { + "new": 433, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 35, + 64, + 128, + 263, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 0 + ], + "matrix_rows": [ + 422, + 38, + 162, + 1, + 450, + 68, + 8, + 16, + 480 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 226, + 448, + 0, + 0, + 226, + 38, + 422, + 132 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 35, + 64, + 128, + 263, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 0, + 0, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 422, + 38, + 162, + 1, + 450, + 68, + 8, + 16, + 480 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 0, + 226, + 448, + 0, + 0, + 226, + 38, + 422, + 132 + ] + } + } + } + }, + { + "new": 434, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 64, + 132, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 384, + 38, + 145, + 385, + 66, + 68, + 8, + 400, + 96 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 273, + 102, + 102, + 0, + 273, + 102, + 38, + 384, + 145 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 64, + 132, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 0, + 3, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 384, + 38, + 145, + 385, + 66, + 68, + 8, + 400, + 96 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 273, + 102, + 102, + 0, + 273, + 102, + 38, + 384, + 145 + ] + } + } + } + }, + { + "new": 435, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 64, + 129, + 260, + 6, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 145, + 260, + 38, + 129, + 322, + 68, + 8, + 144, + 352 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 17, + 358, + 354, + 0, + 17, + 358, + 38, + 0, + 38 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 64, + 129, + 260, + 6, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 2, + 0, + 3, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 145, + 260, + 38, + 129, + 322, + 68, + 8, + 144, + 352 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 17, + 358, + 354, + 0, + 17, + 358, + 38, + 0, + 38 + ] + } + } + } + }, + { + "new": 436, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 64, + 129, + 260, + 6, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 273, + 132, + 38, + 257, + 194, + 68, + 8, + 272, + 224 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 17, + 230, + 226, + 0, + 17, + 230, + 38, + 38, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 64, + 129, + 260, + 6, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 2, + 0, + 3, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 273, + 132, + 38, + 257, + 194, + 68, + 8, + 272, + 224 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 17, + 230, + 226, + 0, + 17, + 230, + 38, + 38, + 0 + ] + } + } + } + }, + { + "new": 437, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 16, + 35, + 64, + 135, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 0, + 1, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 405, + 21, + 145, + 449, + 2, + 68, + 8, + 464, + 32 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 209, + 0, + 448, + 0, + 209, + 0, + 21, + 405, + 132 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 16, + 35, + 64, + 135, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 3, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 405, + 21, + 145, + 449, + 2, + 68, + 8, + 464, + 32 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 209, + 0, + 448, + 0, + 209, + 0, + 21, + 405, + 132 + ] + } + } + } + }, + { + "new": 438, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 64, + 129, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 21, + 384, + 162, + 65, + 386, + 68, + 8, + 80, + 416 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 85, + 290, + 85, + 0, + 85, + 290, + 21, + 384, + 162 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 64, + 129, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 1, + 0, + 1, + 3, + 2, + 3, + 0 + ], + "matrix_rows": [ + 21, + 384, + 162, + 65, + 386, + 68, + 8, + 80, + 416 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 85, + 290, + 85, + 0, + 85, + 290, + 21, + 384, + 162 + ] + } + } + } + }, + { + "new": 439, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 18, + 34, + 2, + 64, + 128, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 385, + 14, + 257, + 18, + 20, + 24, + 32, + 64, + 384 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 129, + 30, + 30, + 30, + 14, + 0, + 0, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 18, + 34, + 2, + 64, + 128, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 1, + 2, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 385, + 14, + 257, + 18, + 20, + 24, + 32, + 64, + 384 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 129, + 30, + 30, + 30, + 14, + 0, + 0, + 129, + 0 + ] + } + } + } + }, + { + "new": 440, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 11, + 17, + 33, + 3, + 2, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 34, + 1, + 18, + 52, + 56, + 64, + 128, + 256 + ], + "offset": 2, + "phase": 3, + "quadratic_rows": [ + 0, + 60, + 62, + 62, + 14, + 14, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 11, + 17, + 33, + 3, + 2, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 2, + 1, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 34, + 1, + 18, + 52, + 56, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 60, + 62, + 62, + 14, + 14, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 441, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 7, + 9, + 17, + 34, + 2, + 67, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 3, + 2, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 487, + 489, + 257, + 274, + 276, + 24, + 288, + 320, + 384 + ], + "offset": 2, + "phase": 3, + "quadratic_rows": [ + 270, + 247, + 247, + 505, + 14, + 270, + 270, + 270, + 489 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 7, + 9, + 17, + 34, + 2, + 67, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 2, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 487, + 489, + 257, + 274, + 276, + 24, + 288, + 320, + 384 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 270, + 247, + 247, + 505, + 14, + 270, + 270, + 270, + 489 + ] + } + } + } + }, + { + "new": 444, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 19, + 34, + 3, + 64, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 68, + 14, + 1, + 82, + 20, + 88, + 32, + 128, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 0, + 94, + 90, + 94, + 14, + 0, + 14, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 19, + 34, + 3, + 64, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 68, + 14, + 1, + 82, + 20, + 88, + 32, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 94, + 90, + 94, + 14, + 0, + 14, + 0, + 0 + ] + } + } + } + }, + { + "new": 455, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 21, + 35, + 65, + 135, + 4, + 2, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 2, + 1, + 3, + 3, + 3, + 3, + 0 + ], + "matrix_rows": [ + 415, + 501, + 499, + 257, + 322, + 292, + 360, + 272, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 153, + 300, + 330, + 255, + 153, + 106, + 108, + 153, + 6 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 21, + 35, + 65, + 135, + 4, + 2, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 3, + 1, + 1, + 1, + 1, + 0 + ], + "matrix_rows": [ + 415, + 501, + 499, + 257, + 322, + 292, + 360, + 272, + 384 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 153, + 300, + 330, + 255, + 153, + 106, + 108, + 153, + 6 + ] + } + } + } + }, + { + "new": 456, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 64, + 134, + 2, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 2, + 3, + 3, + 1, + 2 + ], + "matrix_rows": [ + 385, + 114, + 116, + 257, + 34, + 68, + 8, + 112, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 129, + 82, + 52, + 0, + 102, + 116, + 114, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 64, + 134, + 2, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 2, + 1, + 1, + 3, + 2 + ], + "matrix_rows": [ + 385, + 114, + 116, + 257, + 34, + 68, + 8, + 112, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 129, + 82, + 52, + 0, + 102, + 116, + 114, + 129, + 0 + ] + } + } + } + }, + { + "new": 457, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 36, + 70, + 130, + 6, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 0, + 3, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 385, + 24, + 108, + 257, + 2, + 100, + 40, + 80, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 129, + 0, + 12, + 84, + 88, + 0, + 24, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 36, + 70, + 130, + 6, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 2, + 3, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 385, + 24, + 108, + 257, + 2, + 100, + 40, + 80, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 129, + 0, + 12, + 84, + 88, + 0, + 24, + 129, + 0 + ] + } + } + } + }, + { + "new": 458, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 39, + 65, + 133, + 2, + 6, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 1, + 2, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 415, + 391, + 501, + 257, + 354, + 260, + 328, + 304, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 237, + 376, + 237, + 223, + 330, + 391, + 415, + 237, + 114 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 39, + 65, + 133, + 2, + 6, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 3, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 415, + 391, + 501, + 257, + 354, + 260, + 328, + 304, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 237, + 376, + 237, + 223, + 330, + 391, + 415, + 237, + 114 + ] + } + } + } + }, + { + "new": 460, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 18, + 34, + 2, + 64, + 129, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 2, + 0 + ], + "matrix_rows": [ + 193, + 14, + 129, + 18, + 20, + 24, + 32, + 192, + 256 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 65, + 30, + 30, + 30, + 14, + 0, + 65, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 18, + 34, + 2, + 64, + 129, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 1, + 2, + 0, + 3, + 2, + 0 + ], + "matrix_rows": [ + 193, + 14, + 129, + 18, + 20, + 24, + 32, + 192, + 256 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 65, + 30, + 30, + 30, + 14, + 0, + 65, + 0, + 0 + ] + } + } + } + }, + { + "new": 461, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 19, + 34, + 3, + 64, + 128, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 132, + 14, + 1, + 146, + 20, + 152, + 32, + 64, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 0, + 158, + 154, + 158, + 14, + 0, + 0, + 14, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 19, + 34, + 3, + 64, + 128, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 132, + 14, + 1, + 146, + 20, + 152, + 32, + 64, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 158, + 154, + 158, + 14, + 0, + 0, + 14, + 0 + ] + } + } + } + }, + { + "new": 464, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 19, + 34, + 3, + 64, + 128, + 256, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 260, + 14, + 1, + 274, + 20, + 280, + 32, + 64, + 128 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 0, + 286, + 282, + 286, + 14, + 0, + 0, + 0, + 14 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 19, + 34, + 3, + 64, + 128, + 256, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 2, + 1, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 260, + 14, + 1, + 274, + 20, + 280, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 286, + 282, + 286, + 14, + 0, + 0, + 0, + 14 + ] + } + } + } + }, + { + "new": 475, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 65, + 132, + 256, + 3, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 11, + 129, + 276, + 65, + 194, + 260, + 200, + 272, + 32 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 202, + 203, + 20, + 203, + 20, + 0, + 11, + 11, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 65, + 132, + 256, + 3, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 1, + 3, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 11, + 129, + 276, + 65, + 194, + 260, + 200, + 272, + 32 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 202, + 203, + 20, + 203, + 20, + 0, + 11, + 11, + 0 + ] + } + } + } + }, + { + "new": 476, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 65, + 132, + 256, + 3, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0 + ], + "matrix_rows": [ + 11, + 257, + 148, + 65, + 322, + 132, + 328, + 144, + 32 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 330, + 331, + 20, + 331, + 20, + 0, + 11, + 0, + 11 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 65, + 132, + 256, + 3, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 1, + 3, + 0, + 2, + 2, + 0 + ], + "matrix_rows": [ + 11, + 257, + 148, + 65, + 322, + 132, + 328, + 144, + 32 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 330, + 331, + 20, + 331, + 20, + 0, + 11, + 0, + 11 + ] + } + } + } + }, + { + "new": 477, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 68, + 129, + 256, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 1, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 21, + 384, + 138, + 65, + 386, + 68, + 392, + 80, + 32 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 85, + 266, + 85, + 266, + 85, + 0, + 21, + 384, + 138 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 68, + 129, + 256, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 1, + 3, + 1, + 0, + 2, + 3, + 0 + ], + "matrix_rows": [ + 21, + 384, + 138, + 65, + 386, + 68, + 392, + 80, + 32 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 85, + 266, + 85, + 266, + 85, + 0, + 21, + 384, + 138 + ] + } + } + } + }, + { + "new": 478, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 39, + 64, + 135, + 256, + 3, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 0, + 1, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 21, + 405, + 148, + 65, + 2, + 452, + 8, + 464, + 32 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 448, + 0, + 212, + 0, + 212, + 0, + 21, + 405, + 129 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 39, + 64, + 135, + 256, + 3, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 0, + 3, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 21, + 405, + 148, + 65, + 2, + 452, + 8, + 464, + 32 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 448, + 0, + 212, + 0, + 212, + 0, + 21, + 405, + 129 + ] + } + } + } + }, + { + "new": 479, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 18, + 35, + 3, + 64, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 72, + 14, + 1, + 82, + 84, + 24, + 32, + 128, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 0, + 94, + 94, + 86, + 14, + 0, + 14, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 18, + 35, + 3, + 64, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 72, + 14, + 1, + 82, + 84, + 24, + 32, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 94, + 94, + 86, + 14, + 0, + 14, + 0, + 0 + ] + } + } + } + }, + { + "new": 481, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 17, + 1, + 3, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 27, + 25, + 18, + 12, + 32, + 64, + 128, + 256 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 3, + 13, + 14, + 6, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 17, + 1, + 3, + 32, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 27, + 25, + 18, + 12, + 32, + 64, + 128, + 256 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 3, + 13, + 14, + 6, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 484, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 9, + 17, + 33, + 1, + 66, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 1, + 0, + 1, + 2 + ], + "matrix_rows": [ + 14, + 416, + 1, + 18, + 20, + 24, + 288, + 64, + 384 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 160, + 0, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 9, + 17, + 33, + 1, + 66, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 3, + 0, + 3, + 2 + ], + "matrix_rows": [ + 14, + 416, + 1, + 18, + 20, + 24, + 288, + 64, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 160, + 0, + 160, + 0 + ] + } + } + } + }, + { + "new": 491, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 34, + 64, + 3, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 3, + 0, + 2, + 1, + 2, + 1, + 2 + ], + "matrix_rows": [ + 83, + 5, + 416, + 17, + 82, + 68, + 8, + 288, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 70, + 3, + 69, + 0, + 0, + 160, + 5, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 34, + 64, + 3, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 2, + 3, + 2, + 3, + 2 + ], + "matrix_rows": [ + 83, + 5, + 416, + 17, + 82, + 68, + 8, + 288, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 70, + 3, + 69, + 0, + 0, + 160, + 5, + 160, + 0 + ] + } + } + } + }, + { + "new": 492, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 36, + 5, + 66, + 131, + 1, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 7, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 3, + 1, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 419, + 187, + 269, + 329, + 258, + 76, + 336, + 288, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 349, + 24, + 325, + 187, + 507, + 24, + 21, + 24, + 21 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 36, + 5, + 66, + 131, + 1, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 7, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 3, + 3, + 1, + 2, + 2, + 2, + 2 + ], + "matrix_rows": [ + 419, + 187, + 269, + 329, + 258, + 76, + 336, + 288, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 349, + 24, + 325, + 187, + 507, + 24, + 21, + 24, + 21 + ] + } + } + } + }, + { + "new": 493, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 37, + 66, + 3, + 133, + 7, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 3, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 421, + 280, + 182, + 337, + 82, + 260, + 328, + 288, + 384 + ], + "offset": 7, + "phase": 0, + "quadratic_rows": [ + 245, + 230, + 19, + 88, + 189, + 19, + 11, + 19, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 37, + 66, + 3, + 133, + 7, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 0, + 1, + 3, + 0, + 2, + 0, + 0 + ], + "matrix_rows": [ + 421, + 280, + 182, + 337, + 82, + 260, + 328, + 288, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 245, + 230, + 19, + 88, + 189, + 19, + 11, + 19, + 0 + ] + } + } + } + }, + { + "new": 494, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 1, + 64, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 3, + 0, + 1, + 3, + 1, + 2 + ], + "matrix_rows": [ + 77, + 78, + 416, + 9, + 66, + 76, + 16, + 288, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 69, + 14, + 75, + 78, + 0, + 160, + 77, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 1, + 64, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 1, + 0, + 3, + 1, + 3, + 2 + ], + "matrix_rows": [ + 77, + 78, + 416, + 9, + 66, + 76, + 16, + 288, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 69, + 14, + 75, + 78, + 0, + 160, + 77, + 160, + 0 + ] + } + } + } + }, + { + "new": 495, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 1, + 132, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 0, + 1, + 2, + 1, + 2 + ], + "matrix_rows": [ + 24, + 11, + 416, + 81, + 82, + 4, + 72, + 288, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 91, + 91, + 0, + 83, + 11, + 160, + 11, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 1, + 132, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 2, + 0, + 3, + 2, + 3, + 2 + ], + "matrix_rows": [ + 24, + 11, + 416, + 81, + 82, + 4, + 72, + 288, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 91, + 91, + 0, + 83, + 11, + 160, + 11, + 160, + 0 + ] + } + } + } + }, + { + "new": 496, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 5, + 67, + 131, + 2, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 2, + 2, + 2, + 2, + 2, + 1 + ], + "matrix_rows": [ + 438, + 437, + 333, + 265, + 322, + 76, + 272, + 288, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 496, + 246, + 262, + 0, + 259, + 259, + 3, + 259, + 437 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 5, + 67, + 131, + 2, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 2, + 2, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 438, + 437, + 333, + 265, + 322, + 76, + 272, + 288, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 496, + 246, + 262, + 0, + 259, + 259, + 3, + 259, + 437 + ] + } + } + } + }, + { + "new": 497, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 69, + 3, + 133, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 430, + 5, + 253, + 273, + 82, + 324, + 264, + 288, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 488, + 510, + 22, + 83, + 430, + 83, + 427, + 83, + 339 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 69, + 3, + 133, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 430, + 5, + 253, + 273, + 82, + 324, + 264, + 288, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 488, + 510, + 22, + 83, + 430, + 83, + 427, + 83, + 339 + ] + } + } + } + }, + { + "new": 498, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 34, + 3, + 65, + 132, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 3, + 1, + 2, + 1, + 2 + ], + "matrix_rows": [ + 24, + 13, + 416, + 73, + 2, + 76, + 80, + 288, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 69, + 0, + 69, + 24, + 88, + 160, + 21, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 34, + 3, + 65, + 132, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 3, + 1, + 3, + 2, + 3, + 2 + ], + "matrix_rows": [ + 24, + 13, + 416, + 73, + 2, + 76, + 80, + 288, + 384 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 69, + 0, + 69, + 24, + 88, + 160, + 21, + 160, + 0 + ] + } + } + } + }, + { + "new": 500, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 18, + 35, + 3, + 64, + 128, + 256, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 264, + 14, + 1, + 274, + 276, + 24, + 32, + 64, + 128 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 0, + 286, + 286, + 278, + 14, + 0, + 0, + 0, + 14 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 18, + 35, + 3, + 64, + 128, + 256, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 264, + 14, + 1, + 274, + 276, + 24, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 286, + 286, + 278, + 14, + 0, + 0, + 0, + 14 + ] + } + } + } + }, + { + "new": 501, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 9, + 17, + 33, + 1, + 66, + 130, + 256, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 14, + 352, + 1, + 18, + 20, + 24, + 288, + 320, + 128 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 96, + 96, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 9, + 17, + 33, + 1, + 66, + 130, + 256, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 3, + 3, + 0, + 2 + ], + "matrix_rows": [ + 14, + 352, + 1, + 18, + 20, + 24, + 288, + 320, + 128 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 96, + 96, + 0, + 0 + ] + } + } + } + }, + { + "new": 504, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 9, + 17, + 33, + 1, + 66, + 130, + 2, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 2, + 0 + ], + "matrix_rows": [ + 14, + 224, + 1, + 18, + 20, + 24, + 160, + 192, + 256 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 96, + 96, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 9, + 17, + 33, + 1, + 66, + 130, + 2, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 3, + 3, + 2, + 0 + ], + "matrix_rows": [ + 14, + 224, + 1, + 18, + 20, + 24, + 160, + 192, + 256 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 96, + 96, + 0, + 0 + ] + } + } + } + }, + { + "new": 511, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 132, + 262, + 6, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0 + ], + "matrix_rows": [ + 134, + 288, + 56, + 1, + 130, + 132, + 328, + 336, + 96 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 0, + 6, + 6, + 376, + 376, + 344, + 56, + 0, + 56 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 132, + 262, + 6, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 1, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 134, + 288, + 56, + 1, + 130, + 132, + 328, + 336, + 96 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 0, + 6, + 6, + 376, + 376, + 344, + 56, + 0, + 56 + ] + } + } + } + }, + { + "new": 512, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 132, + 262, + 6, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 262, + 160, + 56, + 1, + 258, + 260, + 200, + 208, + 96 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 0, + 6, + 6, + 248, + 248, + 216, + 56, + 56, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 132, + 262, + 6, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 1, + 2, + 2, + 0, + 2 + ], + "matrix_rows": [ + 262, + 160, + 56, + 1, + 258, + 260, + 200, + 208, + 96 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 0, + 6, + 6, + 248, + 248, + 216, + 56, + 56, + 0 + ] + } + } + } + }, + { + "new": 513, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 39, + 64, + 128, + 259, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 422, + 38, + 134, + 1, + 450, + 452, + 8, + 16, + 96 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 198, + 198, + 0, + 0, + 448, + 38, + 422, + 160 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 39, + 64, + 128, + 259, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 0, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 422, + 38, + 134, + 1, + 450, + 452, + 8, + 16, + 96 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 0, + 198, + 198, + 0, + 0, + 448, + 38, + 422, + 160 + ] + } + } + } + }, + { + "new": 514, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 132, + 257, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 38, + 384, + 152, + 1, + 66, + 68, + 392, + 400, + 96 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 0, + 102, + 102, + 280, + 280, + 102, + 38, + 384, + 152 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 132, + 257, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 3, + 3, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 38, + 384, + 152, + 1, + 66, + 68, + 392, + 400, + 96 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 102, + 102, + 280, + 280, + 102, + 38, + 384, + 152 + ] + } + } + } + }, + { + "new": 515, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 130, + 261, + 5, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 2, + 0 + ], + "matrix_rows": [ + 288, + 152, + 38, + 1, + 322, + 324, + 136, + 144, + 96 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 358, + 358, + 24, + 24, + 326, + 38, + 0, + 38 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 130, + 261, + 5, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 3, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 288, + 152, + 38, + 1, + 322, + 324, + 136, + 144, + 96 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 358, + 358, + 24, + 24, + 326, + 38, + 0, + 38 + ] + } + } + } + }, + { + "new": 516, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 130, + 261, + 5, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 160, + 280, + 38, + 1, + 194, + 196, + 264, + 272, + 96 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 230, + 230, + 24, + 24, + 198, + 38, + 38, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 130, + 261, + 5, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 3, + 3, + 2, + 2, + 0, + 2 + ], + "matrix_rows": [ + 160, + 280, + 38, + 1, + 194, + 196, + 264, + 272, + 96 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 0, + 230, + 230, + 24, + 24, + 198, + 38, + 38, + 0 + ] + } + } + } + }, + { + "new": 517, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 71, + 135, + 259, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 440, + 56, + 152, + 1, + 2, + 4, + 456, + 464, + 96 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 0, + 216, + 216, + 448, + 56, + 440, + 160 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 71, + 135, + 259, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 3, + 3, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 440, + 56, + 152, + 1, + 2, + 4, + 456, + 464, + 96 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 0, + 216, + 216, + 448, + 56, + 440, + 160 + ] + } + } + } + }, + { + "new": 518, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 130, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 384, + 56, + 134, + 1, + 386, + 388, + 72, + 80, + 96 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 0, + 262, + 262, + 120, + 120, + 120, + 56, + 384, + 134 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 130, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 1, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 384, + 56, + 134, + 1, + 386, + 388, + 72, + 80, + 96 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 262, + 262, + 120, + 120, + 120, + 56, + 384, + 134 + ] + } + } + } + }, + { + "new": 519, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 16, + 34, + 65, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 1, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 19, + 392, + 33, + 34, + 4, + 264, + 48, + 64, + 384 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 51, + 51, + 0, + 136, + 51, + 19, + 0, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 16, + 34, + 65, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 3, + 1, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 19, + 392, + 33, + 34, + 4, + 264, + 48, + 64, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 0, + 136, + 51, + 19, + 0, + 136, + 0 + ] + } + } + } + }, + { + "new": 520, + "old": 0, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 17, + 33, + 66, + 3, + 129, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 3, + 1, + 2, + 3, + 3, + 0 + ], + "matrix_rows": [ + 462, + 19, + 289, + 34, + 260, + 264, + 304, + 320, + 384 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 307, + 509, + 206, + 206, + 307, + 19, + 206, + 206, + 19 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 6, + 11, + 17, + 33, + 66, + 3, + 129, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 1, + 2, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "matrix_rows": [ + 462, + 19, + 289, + 34, + 260, + 264, + 304, + 320, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 307, + 509, + 206, + 206, + 307, + 19, + 206, + 206, + 19 + ] + } + } + } + }, + { + "new": 531, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 34, + 68, + 2, + 128, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 3, + 1, + 2, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 83, + 5, + 392, + 65, + 82, + 20, + 264, + 32, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 22, + 3, + 21, + 136, + 5, + 0, + 0, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 34, + 68, + 2, + 128, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 3, + 2, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 83, + 5, + 392, + 65, + 82, + 20, + 264, + 32, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 22, + 3, + 21, + 136, + 5, + 0, + 0, + 136, + 0 + ] + } + } + } + }, + { + "new": 532, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 22, + 34, + 70, + 131, + 1, + 5, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 1 + ], + "matrix_rows": [ + 304, + 190, + 171, + 97, + 258, + 356, + 264, + 336, + 384 + ], + "offset": 5, + "phase": 3, + "quadratic_rows": [ + 203, + 277, + 478, + 277, + 206, + 0, + 21, + 277, + 398 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 22, + 34, + 70, + 131, + 1, + 5, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 304, + 190, + 171, + 97, + 258, + 356, + 264, + 336, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 203, + 277, + 478, + 277, + 206, + 0, + 21, + 277, + 398 + ] + } + } + } + }, + { + "new": 533, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 37, + 65, + 6, + 131, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 7, + 5, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 1, + 2, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 189, + 304, + 278, + 257, + 82, + 340, + 264, + 352, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 445, + 326, + 251, + 445, + 397, + 205, + 38, + 445, + 155 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 37, + 65, + 6, + 131, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 7, + 5, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 0, + 1, + 0, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 189, + 304, + 278, + 257, + 82, + 340, + 264, + 352, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 445, + 326, + 251, + 445, + 397, + 205, + 38, + 445, + 155 + ] + } + } + } + }, + { + "new": 534, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 68, + 128, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 1, + 0, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 6, + 99, + 392, + 97, + 66, + 36, + 264, + 16, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 3, + 37, + 38, + 136, + 0, + 6, + 0, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 68, + 128, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 3, + 0, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 6, + 99, + 392, + 97, + 66, + 36, + 264, + 16, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 3, + 37, + 38, + 136, + 0, + 6, + 0, + 136, + 0 + ] + } + } + } + }, + { + "new": 535, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 39, + 70, + 134, + 1, + 3, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 2, + 2, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 6, + 413, + 254, + 97, + 322, + 292, + 264, + 272, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 509, + 440, + 69, + 99, + 99, + 411, + 413, + 99, + 355 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 21, + 39, + 70, + 134, + 1, + 3, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 6, + 413, + 254, + 97, + 322, + 292, + 264, + 272, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 509, + 440, + 69, + 99, + 99, + 411, + 413, + 99, + 355 + ] + } + } + } + }, + { + "new": 536, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 5, + 129, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 48, + 392, + 22, + 1, + 82, + 84, + 264, + 96, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 70, + 70, + 136, + 48, + 112, + 38, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 36, + 66, + 5, + 129, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 3, + 3, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 48, + 392, + 22, + 1, + 82, + 84, + 264, + 96, + 384 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 0, + 70, + 70, + 136, + 48, + 112, + 38, + 136, + 0 + ] + } + } + } + }, + { + "new": 537, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 133, + 1, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 48, + 392, + 21, + 97, + 2, + 100, + 264, + 80, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 117, + 0, + 117, + 136, + 101, + 21, + 21, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 36, + 66, + 133, + 1, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 3, + 2, + 0, + 2, + 3, + 2 + ], + "matrix_rows": [ + 48, + 392, + 21, + 97, + 2, + 100, + 264, + 80, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 117, + 0, + 117, + 136, + 101, + 21, + 21, + 136, + 0 + ] + } + } + } + }, + { + "new": 538, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 69, + 2, + 133, + 3, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 3 + ], + "matrix_rows": [ + 430, + 5, + 253, + 321, + 82, + 276, + 264, + 288, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 440, + 510, + 70, + 83, + 427, + 83, + 430, + 83, + 339 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 69, + 2, + 133, + 3, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 430, + 5, + 253, + 321, + 82, + 276, + 264, + 288, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 440, + 510, + 70, + 83, + 427, + 83, + 430, + 83, + 339 + ] + } + } + } + }, + { + "new": 551, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 70, + 130, + 258, + 6, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 131, + 56, + 264, + 129, + 130, + 4, + 72, + 336, + 352 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 3, + 3, + 0, + 368, + 376, + 376, + 56, + 0, + 56 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 70, + 130, + 258, + 6, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 2, + 1, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 131, + 56, + 264, + 129, + 130, + 4, + 72, + 336, + 352 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 3, + 3, + 0, + 368, + 376, + 376, + 56, + 0, + 56 + ] + } + } + } + }, + { + "new": 552, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 70, + 130, + 258, + 6, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 259, + 56, + 136, + 257, + 258, + 4, + 72, + 208, + 224 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 3, + 3, + 0, + 240, + 248, + 248, + 56, + 56, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 70, + 130, + 258, + 6, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 2, + 1, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 259, + 56, + 136, + 257, + 258, + 4, + 72, + 208, + 224 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 3, + 3, + 0, + 240, + 248, + 248, + 56, + 56, + 0 + ] + } + } + } + }, + { + "new": 553, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 32, + 67, + 128, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 0, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 395, + 11, + 131, + 449, + 450, + 4, + 72, + 16, + 32 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 195, + 195, + 0, + 448, + 0, + 0, + 11, + 395, + 136 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 32, + 67, + 128, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 0, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 395, + 11, + 131, + 449, + 450, + 4, + 72, + 16, + 32 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 195, + 195, + 0, + 448, + 0, + 0, + 11, + 395, + 136 + ] + } + } + } + }, + { + "new": 554, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 65, + 132, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 11, + 384, + 176, + 65, + 66, + 4, + 72, + 400, + 416 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 75, + 75, + 0, + 75, + 304, + 304, + 11, + 384, + 176 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 65, + 132, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 3, + 3, + 2, + 3, + 0 + ], + "matrix_rows": [ + 11, + 384, + 176, + 65, + 66, + 4, + 72, + 400, + 416 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 75, + 75, + 0, + 75, + 304, + 304, + 11, + 384, + 176 + ] + } + } + } + }, + { + "new": 555, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 132, + 260, + 3, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 136, + 11, + 304, + 193, + 194, + 4, + 72, + 272, + 288 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 203, + 203, + 0, + 195, + 48, + 48, + 11, + 11, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 132, + 260, + 3, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 2, + 3, + 3, + 2, + 0, + 2 + ], + "matrix_rows": [ + 136, + 11, + 304, + 193, + 194, + 4, + 72, + 272, + 288 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 203, + 203, + 0, + 195, + 48, + 48, + 11, + 11, + 0 + ] + } + } + } + }, + { + "new": 556, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 132, + 260, + 3, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 264, + 11, + 176, + 321, + 322, + 4, + 72, + 144, + 160 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 331, + 331, + 0, + 323, + 48, + 48, + 11, + 0, + 11 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 32, + 67, + 132, + 260, + 3, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 2, + 3, + 3, + 2, + 2, + 0 + ], + "matrix_rows": [ + 264, + 11, + 176, + 321, + 322, + 4, + 72, + 144, + 160 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 331, + 331, + 0, + 323, + 48, + 48, + 11, + 0, + 11 + ] + } + } + } + }, + { + "new": 557, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 20, + 32, + 66, + 130, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 1, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 384, + 56, + 131, + 385, + 386, + 4, + 72, + 80, + 96 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 259, + 259, + 0, + 120, + 120, + 120, + 56, + 384, + 131 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 20, + 32, + 66, + 130, + 258, + 2, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 1, + 1, + 1, + 2, + 3, + 0 + ], + "matrix_rows": [ + 384, + 56, + 131, + 385, + 386, + 4, + 72, + 80, + 96 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 259, + 259, + 0, + 120, + 120, + 120, + 56, + 384, + 131 + ] + } + } + } + }, + { + "new": 558, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 67, + 135, + 263, + 3, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 0 + ], + "matrix_rows": [ + 56, + 440, + 176, + 1, + 2, + 4, + 72, + 464, + 480 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 0, + 448, + 240, + 240, + 56, + 440, + 136 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 67, + 135, + 263, + 3, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 3, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 56, + 440, + 176, + 1, + 2, + 4, + 72, + 464, + 480 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 0, + 448, + 240, + 240, + 56, + 440, + 136 + ] + } + } + } + }, + { + "new": 571, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 65, + 128, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 0, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 11, + 384, + 164, + 65, + 66, + 388, + 72, + 16, + 416 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 75, + 75, + 292, + 75, + 0, + 292, + 11, + 384, + 164 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 65, + 128, + 260, + 1, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 1, + 0, + 3, + 2, + 3, + 0 + ], + "matrix_rows": [ + 11, + 384, + 164, + 65, + 66, + 388, + 72, + 16, + 416 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 75, + 75, + 292, + 75, + 0, + 292, + 11, + 384, + 164 + ] + } + } + } + }, + { + "new": 572, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 32, + 71, + 128, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 1, + 0, + 0, + 2, + 1, + 0 + ], + "matrix_rows": [ + 395, + 11, + 137, + 449, + 66, + 4, + 456, + 16, + 32 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 201, + 448, + 0, + 201, + 0, + 0, + 11, + 395, + 130 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 32, + 71, + 128, + 256, + 3, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 3, + 0, + 0, + 2, + 1, + 2 + ], + "matrix_rows": [ + 395, + 11, + 137, + 449, + 66, + 4, + 456, + 16, + 32 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 201, + 448, + 0, + 201, + 0, + 0, + 11, + 395, + 130 + ] + } + } + } + }, + { + "new": 573, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 65, + 128, + 258, + 6, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 137, + 38, + 258, + 129, + 66, + 324, + 136, + 16, + 352 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 9, + 356, + 358, + 9, + 0, + 358, + 38, + 0, + 38 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 65, + 128, + 258, + 6, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 3, + 0, + 1, + 2, + 2, + 0 + ], + "matrix_rows": [ + 137, + 38, + 258, + 129, + 66, + 324, + 136, + 16, + 352 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 9, + 356, + 358, + 9, + 0, + 358, + 38, + 0, + 38 + ] + } + } + } + }, + { + "new": 574, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 65, + 128, + 258, + 6, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 265, + 38, + 130, + 257, + 66, + 196, + 264, + 16, + 224 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 9, + 228, + 230, + 9, + 0, + 230, + 38, + 38, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 65, + 128, + 258, + 6, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 3, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 265, + 38, + 130, + 257, + 66, + 196, + 264, + 16, + 224 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 9, + 228, + 230, + 9, + 0, + 230, + 38, + 38, + 0 + ] + } + } + } + }, + { + "new": 591, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 35, + 65, + 6, + 133, + 2, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 1, + 2, + 2, + 2, + 3, + 0 + ], + "matrix_rows": [ + 431, + 391, + 499, + 257, + 258, + 340, + 280, + 352, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 219, + 219, + 376, + 191, + 431, + 284, + 391, + 219, + 116 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 35, + 65, + 6, + 133, + 2, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 3, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 431, + 391, + 499, + 257, + 258, + 340, + 280, + 352, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 219, + 219, + 376, + 191, + 431, + 284, + 391, + 219, + 116 + ] + } + } + } + }, + { + "new": 592, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 32, + 69, + 129, + 1, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 3, + 2, + 2, + 1, + 2 + ], + "matrix_rows": [ + 24, + 386, + 105, + 97, + 258, + 4, + 72, + 48, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 9, + 130, + 0, + 49, + 56, + 24, + 0, + 130, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 32, + 69, + 129, + 1, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 2, + 3, + 2, + 2, + 3, + 2 + ], + "matrix_rows": [ + 24, + 386, + 105, + 97, + 258, + 4, + 72, + 48, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 9, + 130, + 0, + 49, + 56, + 24, + 0, + 130, + 0 + ] + } + } + } + }, + { + "new": 593, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 22, + 35, + 70, + 130, + 1, + 5, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 1, + 0, + 2, + 0, + 1 + ], + "matrix_rows": [ + 292, + 190, + 171, + 97, + 258, + 324, + 264, + 368, + 384 + ], + "offset": 5, + "phase": 3, + "quadratic_rows": [ + 203, + 277, + 218, + 277, + 478, + 0, + 21, + 277, + 410 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 22, + 35, + 70, + 130, + 1, + 5, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 292, + 190, + 171, + 97, + 258, + 324, + 264, + 368, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 203, + 277, + 218, + 277, + 478, + 0, + 21, + 277, + 410 + ] + } + } + } + }, + { + "new": 594, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 69, + 4, + 128, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 2, + 3, + 0, + 3, + 1, + 2 + ], + "matrix_rows": [ + 89, + 386, + 92, + 65, + 258, + 20, + 88, + 32, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 25, + 130, + 76, + 85, + 89, + 0, + 92, + 130, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 69, + 4, + 128, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 1, + 0, + 1, + 3, + 2 + ], + "matrix_rows": [ + 89, + 386, + 92, + 65, + 258, + 20, + 88, + 32, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 25, + 130, + 76, + 85, + 89, + 0, + 92, + 130, + 0 + ] + } + } + } + }, + { + "new": 611, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 68, + 129, + 1, + 256, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 1, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 19, + 384, + 140, + 33, + 34, + 388, + 392, + 48, + 64 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 268, + 268, + 51, + 19, + 0, + 384, + 140 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 68, + 129, + 1, + 256, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 3, + 1, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 19, + 384, + 140, + 33, + 34, + 388, + 392, + 48, + 64 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 268, + 268, + 51, + 19, + 0, + 384, + 140 + ] + } + } + } + }, + { + "new": 612, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 23, + 32, + 64, + 135, + 3, + 256, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 0, + 1, + 2, + 0, + 1, + 0 + ], + "matrix_rows": [ + 19, + 403, + 146, + 33, + 418, + 4, + 8, + 432, + 64 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 416, + 178, + 0, + 0, + 178, + 19, + 0, + 403, + 129 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 23, + 32, + 64, + 135, + 3, + 256, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 0, + 3, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 19, + 403, + 146, + 33, + 418, + 4, + 8, + 432, + 64 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 416, + 178, + 0, + 0, + 178, + 19, + 0, + 403, + 129 + ] + } + } + } + }, + { + "new": 613, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 66, + 2, + 132, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 2, + 1, + 0, + 3, + 2 + ], + "matrix_rows": [ + 384, + 14, + 161, + 385, + 18, + 20, + 24, + 416, + 64 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 289, + 30, + 30, + 30, + 14, + 289, + 0, + 384, + 161 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 66, + 2, + 132, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 1, + 2, + 3, + 0, + 3, + 0 + ], + "matrix_rows": [ + 384, + 14, + 161, + 385, + 18, + 20, + 24, + 416, + 64 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 289, + 30, + 30, + 30, + 14, + 289, + 0, + 384, + 161 + ] + } + } + } + }, + { + "new": 614, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 39, + 71, + 3, + 128, + 256, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 1, + 2, + 0, + 0, + 1, + 0 + ], + "matrix_rows": [ + 14, + 398, + 140, + 1, + 18, + 404, + 408, + 32, + 64 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 0, + 400, + 156, + 156, + 14, + 0, + 0, + 398, + 130 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 39, + 71, + 3, + 128, + 256, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 3, + 2, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 14, + 398, + 140, + 1, + 18, + 404, + 408, + 32, + 64 + ], + "offset": 6, + "phase": 2, + "quadratic_rows": [ + 0, + 400, + 156, + 156, + 14, + 0, + 0, + 398, + 130 + ] + } + } + } + }, + { + "new": 615, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 66, + 6, + 129, + 256, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 2, + 0 + ], + "matrix_rows": [ + 161, + 14, + 258, + 129, + 18, + 276, + 280, + 160, + 64 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 33, + 284, + 286, + 286, + 14, + 33, + 0, + 0, + 14 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 66, + 6, + 129, + 256, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 1, + 2, + 3, + 0, + 2, + 0 + ], + "matrix_rows": [ + 161, + 14, + 258, + 129, + 18, + 276, + 280, + 160, + 64 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 33, + 284, + 286, + 286, + 14, + 33, + 0, + 0, + 14 + ] + } + } + } + }, + { + "new": 616, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 66, + 6, + 129, + 256, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 1, + 2, + 1, + 0, + 0, + 2 + ], + "matrix_rows": [ + 289, + 14, + 130, + 257, + 18, + 148, + 152, + 288, + 64 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 33, + 156, + 158, + 158, + 14, + 33, + 0, + 14, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 22, + 34, + 66, + 6, + 129, + 256, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 1, + 2, + 3, + 0, + 0, + 2 + ], + "matrix_rows": [ + 289, + 14, + 130, + 257, + 18, + 148, + 152, + 288, + 64 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 33, + 156, + 158, + 158, + 14, + 33, + 0, + 14, + 0 + ] + } + } + } + }, + { + "new": 618, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 68, + 129, + 3, + 256, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 2 + ], + "matrix_rows": [ + 19, + 129, + 268, + 33, + 162, + 260, + 264, + 176, + 64 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 178, + 179, + 12, + 12, + 179, + 19, + 0, + 19, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 17, + 36, + 68, + 129, + 3, + 256, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 3, + 3, + 1, + 2, + 0, + 0, + 2 + ], + "matrix_rows": [ + 19, + 129, + 268, + 33, + 162, + 260, + 264, + 176, + 64 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 178, + 179, + 12, + 12, + 179, + 19, + 0, + 19, + 0 + ] + } + } + } + }, + { + "new": 626, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 5, + 3, + 66, + 130, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 2, + 2, + 1, + 1, + 1, + 0 + ], + "matrix_rows": [ + 6, + 485, + 285, + 25, + 274, + 268, + 288, + 320, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 224, + 278, + 502, + 0, + 6, + 229, + 229, + 229, + 6 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 39, + 5, + 3, + 66, + 130, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 2, + 2, + 3, + 3, + 3, + 0 + ], + "matrix_rows": [ + 6, + 485, + 285, + 25, + 274, + 268, + 288, + 320, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 224, + 278, + 502, + 0, + 6, + 229, + 229, + 229, + 6 + ] + } + } + } + }, + { + "new": 627, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 132, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 1, + 0, + 1, + 2 + ], + "matrix_rows": [ + 72, + 14, + 416, + 1, + 82, + 84, + 24, + 288, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 94, + 94, + 86, + 14, + 160, + 14, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 132, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 3, + 0, + 3, + 2 + ], + "matrix_rows": [ + 72, + 14, + 416, + 1, + 82, + 84, + 24, + 288, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 94, + 94, + 86, + 14, + 160, + 14, + 160, + 0 + ] + } + } + } + }, + { + "new": 628, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 132, + 260, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 136, + 14, + 352, + 1, + 146, + 148, + 24, + 288, + 320 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 158, + 158, + 150, + 14, + 96, + 96, + 14, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 132, + 260, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 0, + 2 + ], + "matrix_rows": [ + 136, + 14, + 352, + 1, + 146, + 148, + 24, + 288, + 320 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 158, + 158, + 150, + 14, + 96, + 96, + 14, + 0 + ] + } + } + } + }, + { + "new": 629, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 68, + 6, + 128, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 385, + 68, + 14, + 257, + 82, + 20, + 88, + 32, + 384 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 129, + 94, + 90, + 94, + 14, + 0, + 14, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 68, + 6, + 128, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 2, + 1, + 2, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 385, + 68, + 14, + 257, + 82, + 20, + 88, + 32, + 384 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 129, + 94, + 90, + 94, + 14, + 0, + 14, + 129, + 0 + ] + } + } + } + }, + { + "new": 630, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 21, + 35, + 71, + 2, + 1, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 2, + 2, + 3, + 3, + 0 + ], + "matrix_rows": [ + 462, + 461, + 251, + 289, + 274, + 52, + 264, + 320, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 22, + 37, + 51, + 504, + 461, + 462, + 504, + 504, + 248 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 21, + 35, + 71, + 2, + 1, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 0, + 0, + 3, + 3, + 0 + ], + "matrix_rows": [ + 462, + 461, + 251, + 289, + 274, + 52, + 264, + 320, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 22, + 37, + 51, + 504, + 461, + 462, + 504, + 504, + 248 + ] + } + } + } + }, + { + "new": 631, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 20, + 32, + 66, + 133, + 5, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 0, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 80, + 392, + 19, + 97, + 98, + 4, + 264, + 48, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 115, + 115, + 0, + 136, + 99, + 19, + 19, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 20, + 32, + 66, + 133, + 5, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 3, + 2, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 80, + 392, + 19, + 97, + 98, + 4, + 264, + 48, + 384 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 115, + 115, + 0, + 136, + 99, + 19, + 19, + 136, + 0 + ] + } + } + } + }, + { + "new": 634, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 68, + 6, + 128, + 257, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 2, + 0, + 1, + 2, + 0 + ], + "matrix_rows": [ + 193, + 260, + 14, + 129, + 274, + 20, + 280, + 32, + 192 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 65, + 286, + 282, + 286, + 14, + 0, + 65, + 0, + 14 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 38, + 68, + 6, + 128, + 257, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 2, + 1, + 2, + 0, + 3, + 2, + 0 + ], + "matrix_rows": [ + 193, + 260, + 14, + 129, + 274, + 20, + 280, + 32, + 192 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 65, + 286, + 282, + 286, + 14, + 0, + 65, + 0, + 14 + ] + } + } + } + }, + { + "new": 674, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 132, + 260, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 1, + 1, + 2, + 0 + ], + "matrix_rows": [ + 264, + 14, + 224, + 1, + 274, + 276, + 24, + 160, + 192 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 286, + 286, + 278, + 14, + 96, + 96, + 0, + 14 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 34, + 67, + 3, + 132, + 260, + 4, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 2, + 0 + ], + "matrix_rows": [ + 264, + 14, + 224, + 1, + 274, + 276, + 24, + 160, + 192 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 286, + 286, + 278, + 14, + 96, + 96, + 0, + 14 + ] + } + } + } + }, + { + "new": 760, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 67, + 2, + 1, + 128, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 2, + 3, + 3, + 0, + 1, + 2 + ], + "matrix_rows": [ + 57, + 58, + 388, + 33, + 18, + 260, + 56, + 64, + 384 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 25, + 42, + 132, + 51, + 57, + 58, + 0, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 67, + 2, + 1, + 128, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 1, + 1, + 0, + 3, + 2 + ], + "matrix_rows": [ + 57, + 58, + 388, + 33, + 18, + 260, + 56, + 64, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 25, + 42, + 132, + 51, + 57, + 58, + 0, + 132, + 0 + ] + } + } + } + }, + { + "new": 773, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 32, + 64, + 135, + 3, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 0, + 1, + 2, + 0, + 1, + 0 + ], + "matrix_rows": [ + 403, + 19, + 145, + 417, + 34, + 4, + 8, + 432, + 64 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 177, + 416, + 0, + 0, + 177, + 19, + 0, + 403, + 130 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 19, + 32, + 64, + 135, + 3, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 3, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 403, + 19, + 145, + 417, + 34, + 4, + 8, + 432, + 64 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 177, + 416, + 0, + 0, + 177, + 19, + 0, + 403, + 130 + ] + } + } + } + }, + { + "new": 774, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 64, + 129, + 1, + 260, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 1, + 2, + 1, + 3, + 2 + ], + "matrix_rows": [ + 19, + 384, + 196, + 33, + 34, + 388, + 8, + 48, + 448 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 324, + 0, + 51, + 19, + 324, + 384, + 196 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 64, + 129, + 1, + 260, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 0, + 1, + 2, + 3, + 3, + 0 + ], + "matrix_rows": [ + 19, + 384, + 196, + 33, + 34, + 388, + 8, + 48, + 448 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 324, + 0, + 51, + 19, + 324, + 384, + 196 + ] + } + } + } + }, + { + "new": 788, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 35, + 65, + 6, + 133, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 1, + 2, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 237, + 324, + 227, + 257, + 82, + 276, + 344, + 288, + 384 + ], + "offset": 6, + "phase": 3, + "quadratic_rows": [ + 270, + 179, + 185, + 445, + 14, + 270, + 0, + 270, + 425 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 35, + 65, + 6, + 133, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 1, + 2, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 237, + 324, + 227, + 257, + 82, + 276, + 344, + 288, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 270, + 179, + 185, + 445, + 14, + 270, + 0, + 270, + 425 + ] + } + } + } + }, + { + "new": 792, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 66, + 2, + 128, + 260, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 1, + 2, + 0, + 1, + 3, + 2 + ], + "matrix_rows": [ + 384, + 14, + 193, + 385, + 18, + 20, + 24, + 32, + 448 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 321, + 30, + 30, + 30, + 14, + 0, + 321, + 384, + 193 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 66, + 2, + 128, + 260, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 1, + 2, + 0, + 3, + 3, + 0 + ], + "matrix_rows": [ + 384, + 14, + 193, + 385, + 18, + 20, + 24, + 32, + 448 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 321, + 30, + 30, + 30, + 14, + 0, + 321, + 384, + 193 + ] + } + } + } + }, + { + "new": 793, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 35, + 71, + 3, + 128, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 1, + 2, + 0, + 0, + 1, + 0 + ], + "matrix_rows": [ + 398, + 14, + 138, + 1, + 402, + 20, + 408, + 32, + 64 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 154, + 400, + 154, + 14, + 0, + 0, + 398, + 132 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 35, + 71, + 3, + 128, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 3, + 2, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 398, + 14, + 138, + 1, + 402, + 20, + 408, + 32, + 64 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 0, + 154, + 400, + 154, + 14, + 0, + 0, + 398, + 132 + ] + } + } + } + }, + { + "new": 797, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 33, + 67, + 6, + 133, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 1, + 0, + 2, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 237, + 328, + 227, + 257, + 82, + 340, + 280, + 288, + 384 + ], + "offset": 6, + "phase": 3, + "quadratic_rows": [ + 270, + 179, + 445, + 181, + 14, + 270, + 0, + 270, + 421 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 20, + 33, + 67, + 6, + 133, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 1, + 2, + 2, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 237, + 328, + 227, + 257, + 82, + 340, + 280, + 288, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 270, + 179, + 445, + 181, + 14, + 270, + 0, + 270, + 421 + ] + } + } + } + }, + { + "new": 798, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 1, + 3, + 68, + 128, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 3, + 2, + 2, + 1, + 0, + 1, + 2 + ], + "matrix_rows": [ + 6, + 27, + 416, + 25, + 18, + 12, + 288, + 64, + 384 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 3, + 13, + 14, + 6, + 0, + 160, + 0, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 19, + 33, + 1, + 3, + 68, + 128, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 2, + 2, + 3, + 0, + 3, + 2 + ], + "matrix_rows": [ + 6, + 27, + 416, + 25, + 18, + 12, + 288, + 64, + 384 + ], + "offset": 7, + "phase": 3, + "quadratic_rows": [ + 3, + 13, + 14, + 6, + 0, + 160, + 0, + 160, + 0 + ] + } + } + } + }, + { + "new": 809, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 39, + 67, + 3, + 128, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 1, + 0 + ], + "matrix_rows": [ + 398, + 14, + 134, + 1, + 402, + 404, + 24, + 32, + 64 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 0, + 150, + 150, + 400, + 14, + 0, + 0, + 398, + 136 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 23, + 39, + 67, + 3, + 128, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 0, + 2, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 398, + 14, + 134, + 1, + 402, + 404, + 24, + 32, + 64 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 0, + 150, + 150, + 400, + 14, + 0, + 0, + 398, + 136 + ] + } + } + } + }, + { + "new": 810, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 65, + 1, + 132, + 260, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 1, + 1, + 3, + 2 + ], + "matrix_rows": [ + 14, + 384, + 224, + 1, + 18, + 20, + 24, + 416, + 448 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 352, + 352, + 384, + 224 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 65, + 1, + 132, + 260, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 1, + 2, + 3, + 3, + 3, + 0 + ], + "matrix_rows": [ + 14, + 384, + 224, + 1, + 18, + 20, + 24, + 416, + 448 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 0, + 30, + 30, + 30, + 14, + 352, + 352, + 384, + 224 + ] + } + } + } + }, + { + "new": 822, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 38, + 70, + 129, + 7, + 3, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 3, + 2, + 0 + ], + "matrix_rows": [ + 336, + 398, + 205, + 97, + 354, + 260, + 264, + 304, + 384 + ], + "offset": 7, + "phase": 0, + "quadratic_rows": [ + 173, + 238, + 67, + 67, + 112, + 19, + 222, + 67, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 38, + 70, + 129, + 7, + 3, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 0, + 0, + 1, + 2, + 3, + 0, + 0 + ], + "matrix_rows": [ + 336, + 398, + 205, + 97, + 354, + 260, + 264, + 304, + 384 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 173, + 238, + 67, + 67, + 112, + 19, + 222, + 67, + 0 + ] + } + } + } + }, + { + "new": 825, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 68, + 129, + 1, + 260, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 1, + 1, + 2, + 1, + 3, + 2 + ], + "matrix_rows": [ + 19, + 384, + 200, + 33, + 34, + 4, + 392, + 48, + 448 + ], + "offset": 0, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 0, + 328, + 51, + 19, + 328, + 384, + 200 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 68, + 129, + 1, + 260, + 6, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 3, + 1, + 2, + 3, + 3, + 0 + ], + "matrix_rows": [ + 19, + 384, + 200, + 33, + 34, + 4, + 392, + 48, + 448 + ], + "offset": 4, + "phase": 1, + "quadratic_rows": [ + 51, + 51, + 0, + 328, + 51, + 19, + 328, + 384, + 200 + ] + } + } + } + }, + { + "new": 826, + "old": 0, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 32, + 64, + 131, + 3, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 1, + 0 + ], + "matrix_rows": [ + 403, + 19, + 131, + 417, + 418, + 4, + 8, + 48, + 64 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 163, + 163, + 0, + 0, + 416, + 19, + 0, + 403, + 144 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 32, + 64, + 131, + 3, + 256, + 5, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 0, + 0, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 403, + 19, + 131, + 417, + 418, + 4, + 8, + 48, + 64 + ], + "offset": 5, + "phase": 2, + "quadratic_rows": [ + 163, + 163, + 0, + 0, + 416, + 19, + 0, + 403, + 144 + ] + } + } + } + }, + { + "new": 1, + "old": 114, + "rank": 8, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 257, + 2, + 4, + 8, + 16, + 19, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 19, + 19, + 0, + 0, + 19, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 2, + 2, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 34, + 4, + 8, + 48, + 64, + 128, + 256, + 32 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 32, + 32, + 0, + 0, + 32, + 19, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 257, + 2, + 4, + 8, + 16, + 19, + 32, + 64, + 128 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 19, + 19, + 0, + 0, + 19, + 0, + 0, + 0, + 0 + ] + }, + "rank": 8, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 2, + 0, + 0, + 2, + 2, + 2 + ], + "matrix_rows": [ + 1, + 34, + 4, + 8, + 48, + 64, + 128, + 256, + 32 + ], + "offset": 236, + "phase": 1, + "quadratic_rows": [ + 32, + 32, + 0, + 0, + 32, + 19, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 285, + "old": 114, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 128, + 259, + 4, + 8, + 1, + 2, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 3, + 3, + 2, + 2, + 2 + ], + "matrix_rows": [ + 50, + 2, + 4, + 8, + 64, + 128, + 256, + 19, + 32 + ], + "offset": 387, + "phase": 1, + "quadratic_rows": [ + 18, + 1, + 0, + 0, + 49, + 48, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 128, + 259, + 4, + 8, + 1, + 2, + 16, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 3, + 3, + 2, + 2, + 2 + ], + "matrix_rows": [ + 50, + 2, + 4, + 8, + 64, + 128, + 256, + 19, + 32 + ], + "offset": 511, + "phase": 1, + "quadratic_rows": [ + 18, + 1, + 0, + 0, + 49, + 48, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 821, + "old": 114, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 16, + 34, + 65, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 1, + 1, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 3, + 392, + 33, + 50, + 20, + 264, + 32, + 64, + 384 + ], + "offset": 1, + "phase": 3, + "quadratic_rows": [ + 35, + 51, + 16, + 136, + 22, + 3, + 0, + 136, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 9, + 16, + 34, + 65, + 1, + 128, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 3, + 3, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 3, + 392, + 33, + 50, + 20, + 264, + 32, + 64, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 35, + 51, + 16, + 136, + 22, + 3, + 0, + 136, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 139, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 129, + 2, + 260, + 8, + 16, + 13, + 12, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 13, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2 + ], + "matrix_rows": [ + 65, + 2, + 36, + 104, + 16, + 128, + 256, + 96, + 64 + ], + "offset": 393, + "phase": 1, + "quadratic_rows": [ + 32, + 0, + 96, + 96, + 0, + 13, + 76, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 129, + 2, + 260, + 8, + 16, + 13, + 12, + 32, + 64 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 13, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 2, + 2 + ], + "matrix_rows": [ + 65, + 2, + 36, + 104, + 16, + 128, + 256, + 96, + 64 + ], + "offset": 503, + "phase": 0, + "quadratic_rows": [ + 32, + 0, + 96, + 96, + 0, + 13, + 76, + 0, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 140, + "rank": 7, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 3, + 0, + 0 + ], + "matrix_rows": [ + 129, + 258, + 4, + 8, + 14, + 16, + 32, + 64, + 93 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 93, + 14, + 83, + 83, + 93, + 0, + 93, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 1, + 2, + 276, + 280, + 288, + 64, + 384, + 256, + 16 + ], + "offset": 141, + "phase": 1, + "quadratic_rows": [ + 256, + 16, + 272, + 272, + 14, + 256, + 0, + 256, + 173 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 2, + 3, + 2, + 3, + 0, + 0 + ], + "matrix_rows": [ + 129, + 258, + 4, + 8, + 14, + 16, + 32, + 64, + 93 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 93, + 14, + 83, + 83, + 93, + 0, + 93, + 0, + 0 + ] + }, + "rank": 7, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + "matrix_rows": [ + 1, + 2, + 276, + 280, + 288, + 64, + 384, + 256, + 16 + ], + "offset": 161, + "phase": 1, + "quadratic_rows": [ + 256, + 16, + 272, + 272, + 14, + 256, + 0, + 256, + 173 + ] + } + } + } + }, + { + "new": 1, + "old": 141, + "rank": 5, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 33, + 66, + 4, + 136, + 16, + 19, + 21, + 264, + 8 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 19, + 21, + 0, + 6, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 33, + 66, + 68, + 264, + 112, + 64, + 96, + 256, + 384 + ], + "offset": 145, + "phase": 2, + "quadratic_rows": [ + 96, + 32, + 64, + 0, + 96, + 19, + 21, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 33, + 66, + 4, + 136, + 16, + 19, + 21, + 264, + 8 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 19, + 21, + 0, + 6, + 0, + 0, + 0, + 0 + ] + }, + "rank": 5, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 33, + 66, + 68, + 264, + 112, + 64, + 96, + 256, + 384 + ], + "offset": 136, + "phase": 0, + "quadratic_rows": [ + 96, + 32, + 64, + 0, + 96, + 19, + 21, + 0, + 0 + ] + } + } + } + }, + { + "new": 280, + "old": 292, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 22, + 3, + 37, + 73, + 129, + 12, + 4, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 15, + 7, + 15, + 13, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 2, + 3, + 2, + 2, + 0, + 3 + ], + "matrix_rows": [ + 382, + 285, + 123, + 264, + 287, + 256, + 288, + 320, + 384 + ], + "offset": 200, + "phase": 3, + "quadratic_rows": [ + 120, + 24, + 120, + 295, + 87, + 13, + 21, + 0, + 264 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 22, + 3, + 37, + 73, + 129, + 12, + 4, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 15, + 7, + 15, + 13, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 2, + 3, + 2, + 2, + 0, + 3 + ], + "matrix_rows": [ + 382, + 285, + 123, + 264, + 287, + 256, + 288, + 320, + 384 + ], + "offset": 200, + "phase": 3, + "quadratic_rows": [ + 120, + 24, + 120, + 295, + 87, + 13, + 21, + 0, + 264 + ] + } + } + } + }, + { + "new": 621, + "old": 292, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 37, + 4, + 72, + 130, + 13, + 7, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 15, + 7, + 15, + 13, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 2, + 1, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 115, + 272, + 374, + 264, + 256, + 274, + 288, + 320, + 384 + ], + "offset": 254, + "phase": 3, + "quadratic_rows": [ + 370, + 21, + 370, + 32, + 87, + 13, + 21, + 0, + 261 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 37, + 4, + 72, + 130, + 13, + 7, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 15, + 7, + 15, + 13, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 115, + 272, + 374, + 264, + 256, + 274, + 288, + 320, + 384 + ], + "offset": 254, + "phase": 3, + "quadratic_rows": [ + 370, + 21, + 370, + 32, + 87, + 13, + 21, + 0, + 261 + ] + } + } + } + }, + { + "new": 621, + "old": 303, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 34, + 66, + 132, + 262, + 6, + 4, + 8, + 9 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 9, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 2, + 1 + ], + "matrix_rows": [ + 1, + 6, + 8, + 384, + 256, + 98, + 96, + 64, + 48 + ], + "offset": 85, + "phase": 0, + "quadratic_rows": [ + 256, + 102, + 98, + 64, + 0, + 6, + 14, + 256, + 385 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 17, + 34, + 66, + 132, + 262, + 6, + 4, + 8, + 9 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 9, + 2, + 4, + 9, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 0, + 1, + 2, + 2, + 0, + 2, + 2, + 0, + 1 + ], + "matrix_rows": [ + 1, + 6, + 8, + 384, + 256, + 98, + 96, + 64, + 48 + ], + "offset": 85, + "phase": 0, + "quadratic_rows": [ + 256, + 102, + 98, + 64, + 0, + 6, + 14, + 256, + 385 + ] + } + } + } + }, + { + "new": 280, + "old": 304, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 27, + 35, + 69, + 9, + 15, + 1, + 138, + 266, + 10 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 11, + 15, + 14, + 15, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 1, + 0, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 257, + 317, + 260, + 55, + 303, + 256, + 272, + 320, + 384 + ], + "offset": 102, + "phase": 0, + "quadratic_rows": [ + 293, + 26, + 53, + 26, + 14, + 5, + 0, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 27, + 35, + 69, + 9, + 15, + 1, + 138, + 266, + 10 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 11, + 15, + 14, + 15, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 1, + 0, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 257, + 317, + 260, + 55, + 303, + 256, + 272, + 320, + 384 + ], + "offset": 102, + "phase": 0, + "quadratic_rows": [ + 293, + 26, + 53, + 26, + 14, + 5, + 0, + 0, + 257 + ] + } + } + } + }, + { + "new": 732, + "old": 360, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 16, + 32, + 67, + 128, + 3, + 256, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "matrix_rows": [ + 272, + 338, + 1, + 322, + 4, + 8, + 80, + 32, + 128 + ], + "offset": 0, + "phase": 2, + "quadratic_rows": [ + 0, + 18, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 4, + 10, + 16, + 32, + 67, + 128, + 3, + 256, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 0, + 2, + 0, + 2, + 0, + 0 + ], + "matrix_rows": [ + 272, + 338, + 1, + 322, + 4, + 8, + 80, + 32, + 128 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 0, + 18, + 0, + 0, + 2, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 738, + "old": 360, + "rank": 4, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 1, + 34, + 66, + 136, + 2, + 12, + 256, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 2, + 1, + 0, + 3, + 0, + 0 + ], + "matrix_rows": [ + 2, + 5, + 320, + 272, + 33, + 44, + 32, + 336, + 128 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 37, + 0, + 45, + 4, + 80, + 5, + 80, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 18, + 1, + 34, + 66, + 136, + 2, + 12, + 256, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 4, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 2, + 1, + 0, + 3, + 0, + 0 + ], + "matrix_rows": [ + 2, + 5, + 320, + 272, + 33, + 44, + 32, + 336, + 128 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 37, + 0, + 45, + 4, + 80, + 5, + 80, + 0, + 0 + ] + } + } + } + }, + { + "new": 901, + "old": 371, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 32, + 64, + 132, + 6, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 2, + 1, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 257, + 96, + 18, + 256, + 98, + 4, + 56, + 64, + 384 + ], + "offset": 197, + "phase": 1, + "quadratic_rows": [ + 0, + 114, + 0, + 48, + 122, + 26, + 18, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 32, + 64, + 132, + 6, + 2, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 2, + 3, + 2, + 2, + 0, + 2 + ], + "matrix_rows": [ + 257, + 96, + 18, + 256, + 98, + 4, + 56, + 64, + 384 + ], + "offset": 192, + "phase": 2, + "quadratic_rows": [ + 0, + 114, + 0, + 48, + 122, + 26, + 18, + 0, + 0 + ] + } + } + } + }, + { + "new": 917, + "old": 371, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 34, + 64, + 133, + 1, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 0, + 2, + 2, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 112, + 260, + 98, + 1, + 114, + 256, + 56, + 64, + 384 + ], + "offset": 211, + "phase": 0, + "quadratic_rows": [ + 0, + 18, + 0, + 48, + 106, + 120, + 112, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 20, + 34, + 64, + 133, + 1, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 2, + 0, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 112, + 260, + 98, + 1, + 114, + 256, + 56, + 64, + 384 + ], + "offset": 213, + "phase": 1, + "quadratic_rows": [ + 0, + 18, + 0, + 48, + 106, + 120, + 112, + 0, + 0 + ] + } + } + } + }, + { + "new": 902, + "old": 372, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 23, + 6, + 32, + 65, + 130, + 3, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 0, + 1, + 3, + 1, + 0, + 2 + ], + "matrix_rows": [ + 118, + 275, + 354, + 273, + 358, + 56, + 320, + 256, + 384 + ], + "offset": 221, + "phase": 3, + "quadratic_rows": [ + 3, + 355, + 276, + 48, + 284, + 362, + 354, + 0, + 118 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 23, + 6, + 32, + 65, + 130, + 3, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 3, + 3, + 1, + 0, + 0 + ], + "matrix_rows": [ + 118, + 275, + 354, + 273, + 358, + 56, + 320, + 256, + 384 + ], + "offset": 222, + "phase": 2, + "quadratic_rows": [ + 3, + 355, + 276, + 48, + 284, + 362, + 354, + 0, + 118 + ] + } + } + } + }, + { + "new": 918, + "old": 372, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 3, + 17, + 32, + 69, + 129, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 1, + 3, + 0, + 1 + ], + "matrix_rows": [ + 277, + 113, + 355, + 115, + 276, + 56, + 320, + 256, + 384 + ], + "offset": 208, + "phase": 0, + "quadratic_rows": [ + 117, + 274, + 5, + 48, + 363, + 121, + 113, + 0, + 274 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 3, + 17, + 32, + 69, + 129, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 0, + 2, + 1, + 3, + 0, + 3 + ], + "matrix_rows": [ + 277, + 113, + 355, + 115, + 276, + 56, + 320, + 256, + 384 + ], + "offset": 213, + "phase": 3, + "quadratic_rows": [ + 117, + 274, + 5, + 48, + 363, + 121, + 113, + 0, + 274 + ] + } + } + } + }, + { + "new": 909, + "old": 373, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 68, + 129, + 2, + 1, + 6, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 0, + 2, + 0, + 0, + 3, + 0 + ], + "matrix_rows": [ + 5, + 160, + 170, + 81, + 162, + 68, + 128, + 64, + 256 + ], + "offset": 65, + "phase": 3, + "quadratic_rows": [ + 85, + 10, + 69, + 34, + 1, + 136, + 5, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 68, + 129, + 2, + 1, + 6, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 2, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 5, + 160, + 170, + 81, + 162, + 68, + 128, + 64, + 256 + ], + "offset": 69, + "phase": 1, + "quadratic_rows": [ + 85, + 10, + 69, + 34, + 1, + 136, + 5, + 160, + 0 + ] + } + } + } + }, + { + "new": 925, + "old": 373, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 20, + 34, + 65, + 130, + 4, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 2, + 2, + 0, + 1, + 0 + ], + "matrix_rows": [ + 8, + 5, + 170, + 65, + 10, + 84, + 128, + 64, + 256 + ], + "offset": 83, + "phase": 1, + "quadratic_rows": [ + 69, + 162, + 85, + 32, + 4, + 138, + 5, + 162, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 20, + 34, + 65, + 130, + 4, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 0, + 2, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 8, + 5, + 170, + 65, + 10, + 84, + 128, + 64, + 256 + ], + "offset": 87, + "phase": 1, + "quadratic_rows": [ + 69, + 162, + 85, + 32, + 4, + 138, + 5, + 162, + 0 + ] + } + } + } + }, + { + "new": 910, + "old": 374, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 68, + 129, + 2, + 1, + 256, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 5, + 288, + 298, + 81, + 290, + 68, + 256, + 64, + 128 + ], + "offset": 65, + "phase": 3, + "quadratic_rows": [ + 85, + 10, + 69, + 34, + 1, + 264, + 5, + 0, + 288 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 33, + 68, + 129, + 2, + 1, + 256, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 2, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 5, + 288, + 298, + 81, + 290, + 68, + 256, + 64, + 128 + ], + "offset": 69, + "phase": 1, + "quadratic_rows": [ + 85, + 10, + 69, + 34, + 1, + 264, + 5, + 0, + 288 + ] + } + } + } + }, + { + "new": 926, + "old": 374, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 20, + 34, + 65, + 130, + 4, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 2, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 8, + 5, + 298, + 65, + 10, + 84, + 256, + 64, + 128 + ], + "offset": 83, + "phase": 1, + "quadratic_rows": [ + 69, + 290, + 85, + 32, + 4, + 266, + 5, + 0, + 290 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 20, + 34, + 65, + 130, + 4, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 0, + 2, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 8, + 5, + 298, + 65, + 10, + 84, + 256, + 64, + 128 + ], + "offset": 87, + "phase": 1, + "quadratic_rows": [ + 69, + 290, + 85, + 32, + 4, + 266, + 5, + 0, + 290 + ] + } + } + } + }, + { + "new": 933, + "old": 375, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 35, + 68, + 1, + 128, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 1, + 0, + 1, + 0, + 2 + ], + "matrix_rows": [ + 82, + 4, + 264, + 21, + 6, + 64, + 256, + 32, + 384 + ], + "offset": 62, + "phase": 0, + "quadratic_rows": [ + 20, + 86, + 83, + 0, + 87, + 0, + 86, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 35, + 68, + 1, + 128, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 0, + 3, + 0, + 3, + 0, + 2 + ], + "matrix_rows": [ + 82, + 4, + 264, + 21, + 6, + 64, + 256, + 32, + 384 + ], + "offset": 59, + "phase": 1, + "quadratic_rows": [ + 20, + 86, + 83, + 0, + 87, + 0, + 86, + 0, + 0 + ] + } + } + } + }, + { + "new": 949, + "old": 375, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 35, + 64, + 1, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 1, + 0, + 1, + 0, + 2 + ], + "matrix_rows": [ + 84, + 82, + 288, + 21, + 86, + 64, + 8, + 256, + 384 + ], + "offset": 61, + "phase": 0, + "quadratic_rows": [ + 20, + 6, + 83, + 0, + 85, + 0, + 84, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 35, + 64, + 1, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 2 + ], + "matrix_rows": [ + 84, + 82, + 288, + 21, + 86, + 64, + 8, + 256, + 384 + ], + "offset": 59, + "phase": 1, + "quadratic_rows": [ + 20, + 6, + 83, + 0, + 85, + 0, + 84, + 0, + 0 + ] + } + } + } + }, + { + "new": 934, + "old": 376, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 39, + 71, + 129, + 2, + 6, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 1, + 3, + 1, + 0, + 0, + 3 + ], + "matrix_rows": [ + 42, + 282, + 92, + 21, + 358, + 256, + 280, + 320, + 384 + ], + "offset": 240, + "phase": 1, + "quadratic_rows": [ + 20, + 84, + 43, + 124, + 283, + 364, + 42, + 0, + 304 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 39, + 71, + 129, + 2, + 6, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 5, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 1, + 1, + 1, + 0, + 0, + 1 + ], + "matrix_rows": [ + 42, + 282, + 92, + 21, + 358, + 256, + 280, + 320, + 384 + ], + "offset": 246, + "phase": 2, + "quadratic_rows": [ + 20, + 84, + 43, + 124, + 283, + 364, + 42, + 0, + 304 + ] + } + } + } + }, + { + "new": 950, + "old": 376, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 17, + 39, + 2, + 68, + 3, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 0, + 0, + 3, + 1, + 0, + 0, + 2 + ], + "matrix_rows": [ + 10, + 44, + 17, + 293, + 46, + 256, + 304, + 320, + 384 + ], + "offset": 235, + "phase": 3, + "quadratic_rows": [ + 309, + 38, + 35, + 0, + 305, + 55, + 0, + 0, + 17 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 17, + 39, + 2, + 68, + 3, + 135, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 3, + 1, + 0, + 0, + 2 + ], + "matrix_rows": [ + 10, + 44, + 17, + 293, + 46, + 256, + 304, + 320, + 384 + ], + "offset": 235, + "phase": 2, + "quadratic_rows": [ + 309, + 38, + 35, + 0, + 305, + 55, + 0, + 0, + 17 + ] + } + } + } + }, + { + "new": 941, + "old": 377, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 2, + 36, + 68, + 132, + 4, + 3, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 3, + 2, + 3, + 0, + 3, + 0 + ], + "matrix_rows": [ + 135, + 132, + 40, + 128, + 134, + 88, + 64, + 96, + 256 + ], + "offset": 12, + "phase": 3, + "quadratic_rows": [ + 6, + 3, + 129, + 120, + 8, + 104, + 40, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 2, + 36, + 68, + 132, + 4, + 3, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 3, + 2, + 3, + 0, + 3, + 0 + ], + "matrix_rows": [ + 135, + 132, + 40, + 128, + 134, + 88, + 64, + 96, + 256 + ], + "offset": 13, + "phase": 1, + "quadratic_rows": [ + 6, + 3, + 129, + 120, + 8, + 104, + 40, + 132, + 0 + ] + } + } + } + }, + { + "new": 957, + "old": 377, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 1, + 18, + 32, + 64, + 132, + 260, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 2, + 2, + 3, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 135, + 288, + 131, + 128, + 8, + 48, + 256, + 320 + ], + "offset": 482, + "phase": 2, + "quadratic_rows": [ + 132, + 6, + 3, + 0, + 32, + 48, + 0, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 1, + 18, + 32, + 64, + 132, + 260, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 0, + 2, + 2, + 1, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 135, + 288, + 131, + 128, + 8, + 48, + 256, + 320 + ], + "offset": 484, + "phase": 1, + "quadratic_rows": [ + 132, + 6, + 3, + 0, + 32, + 48, + 0, + 129, + 0 + ] + } + } + } + }, + { + "new": 942, + "old": 378, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 2, + 36, + 68, + 132, + 4, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 3, + 2, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 263, + 260, + 40, + 256, + 262, + 88, + 64, + 96, + 128 + ], + "offset": 12, + "phase": 3, + "quadratic_rows": [ + 6, + 3, + 257, + 120, + 8, + 104, + 40, + 0, + 260 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 2, + 36, + 68, + 132, + 4, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 3, + 2, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 263, + 260, + 40, + 256, + 262, + 88, + 64, + 96, + 128 + ], + "offset": 13, + "phase": 1, + "quadratic_rows": [ + 6, + 3, + 257, + 120, + 8, + 104, + 40, + 0, + 260 + ] + } + } + } + }, + { + "new": 958, + "old": 378, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 1, + 18, + 32, + 64, + 132, + 260, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 0, + 2, + 2, + 3, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 263, + 160, + 259, + 256, + 8, + 48, + 128, + 192 + ], + "offset": 482, + "phase": 2, + "quadratic_rows": [ + 260, + 6, + 3, + 0, + 32, + 48, + 0, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 1, + 18, + 32, + 64, + 132, + 260, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 0, + 2, + 2, + 1, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 263, + 160, + 259, + 256, + 8, + 48, + 128, + 192 + ], + "offset": 484, + "phase": 1, + "quadratic_rows": [ + 260, + 6, + 3, + 0, + 32, + 48, + 0, + 0, + 257 + ] + } + } + } + }, + { + "new": 903, + "old": 391, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 19, + 32, + 64, + 131, + 6, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 3 + ], + "matrix_rows": [ + 19, + 179, + 288, + 273, + 274, + 180, + 8, + 256, + 64 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 432, + 432, + 176, + 0, + 263, + 263, + 0, + 135, + 307 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 19, + 32, + 64, + 131, + 6, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 3 + ], + "matrix_rows": [ + 19, + 179, + 288, + 273, + 274, + 180, + 8, + 256, + 64 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 432, + 432, + 176, + 0, + 263, + 263, + 0, + 135, + 307 + ] + } + } + } + }, + { + "new": 927, + "old": 391, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 33, + 65, + 130, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 403, + 163, + 321, + 322, + 64, + 72, + 256, + 384 + ], + "offset": 132, + "phase": 3, + "quadratic_rows": [ + 55, + 55, + 3, + 0, + 131, + 131, + 0, + 48, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 33, + 65, + 130, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 403, + 163, + 321, + 322, + 64, + 72, + 256, + 384 + ], + "offset": 131, + "phase": 1, + "quadratic_rows": [ + 55, + 55, + 3, + 0, + 131, + 131, + 0, + 48, + 0 + ] + } + } + } + }, + { + "new": 904, + "old": 392, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 65, + 132, + 256, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 1, + 2, + 0, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 3, + 384, + 404, + 73, + 66, + 388, + 64, + 256, + 32 + ], + "offset": 129, + "phase": 3, + "quadratic_rows": [ + 75, + 67, + 20, + 1, + 132, + 0, + 3, + 272, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 65, + 132, + 256, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 3, + 384, + 404, + 73, + 66, + 388, + 64, + 256, + 32 + ], + "offset": 133, + "phase": 1, + "quadratic_rows": [ + 75, + 67, + 20, + 1, + 132, + 0, + 3, + 272, + 384 + ] + } + } + } + }, + { + "new": 928, + "old": 392, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 32, + 65, + 132, + 3, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 3, + 1, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 106, + 66, + 400, + 11, + 32, + 20, + 96, + 256, + 384 + ], + "offset": 238, + "phase": 3, + "quadratic_rows": [ + 10, + 1, + 16, + 9, + 148, + 0, + 0, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 32, + 65, + 132, + 3, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 1, + 3, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 106, + 66, + 400, + 11, + 32, + 20, + 96, + 256, + 384 + ], + "offset": 233, + "phase": 1, + "quadratic_rows": [ + 10, + 1, + 16, + 9, + 148, + 0, + 0, + 144, + 0 + ] + } + } + } + }, + { + "new": 911, + "old": 393, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 23, + 39, + 66, + 4, + 129, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 398, + 150, + 64, + 322, + 324, + 256, + 96, + 384 + ], + "offset": 68, + "phase": 3, + "quadratic_rows": [ + 6, + 31, + 31, + 134, + 134, + 0, + 0, + 24, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 23, + 39, + 66, + 4, + 129, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 398, + 150, + 64, + 322, + 324, + 256, + 96, + 384 + ], + "offset": 67, + "phase": 1, + "quadratic_rows": [ + 6, + 31, + 31, + 134, + 134, + 0, + 0, + 24, + 0 + ] + } + } + } + }, + { + "new": 919, + "old": 393, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 35, + 69, + 3, + 128, + 256, + 1, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 3 + ], + "matrix_rows": [ + 158, + 278, + 8, + 153, + 18, + 20, + 256, + 32, + 64 + ], + "offset": 1, + "phase": 2, + "quadratic_rows": [ + 152, + 408, + 408, + 263, + 263, + 0, + 0, + 135, + 286 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 35, + 69, + 3, + 128, + 256, + 1, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 2, + 0, + 0, + 1, + 3 + ], + "matrix_rows": [ + 158, + 278, + 8, + 153, + 18, + 20, + 256, + 32, + 64 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 152, + 408, + 408, + 263, + 263, + 0, + 0, + 135, + 286 + ] + } + } + } + }, + { + "new": 912, + "old": 394, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 38, + 70, + 129, + 2, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 1, + 3, + 2, + 3, + 2 + ], + "matrix_rows": [ + 400, + 36, + 68, + 17, + 38, + 64, + 72, + 256, + 384 + ], + "offset": 255, + "phase": 1, + "quadratic_rows": [ + 16, + 36, + 2, + 0, + 145, + 34, + 0, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 38, + 70, + 129, + 2, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 3, + 1, + 2, + 1, + 2 + ], + "matrix_rows": [ + 400, + 36, + 68, + 17, + 38, + 64, + 72, + 256, + 384 + ], + "offset": 248, + "phase": 3, + "quadratic_rows": [ + 16, + 36, + 2, + 0, + 145, + 34, + 0, + 144, + 0 + ] + } + } + } + }, + { + "new": 920, + "old": 394, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 64, + 132, + 258, + 2, + 1, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 0, + 0, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 384, + 6, + 401, + 385, + 66, + 100, + 8, + 256, + 64 + ], + "offset": 130, + "phase": 3, + "quadratic_rows": [ + 17, + 70, + 102, + 0, + 129, + 4, + 6, + 272, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 64, + 132, + 258, + 2, + 1, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 2, + 0, + 2, + 3 + ], + "matrix_rows": [ + 384, + 6, + 401, + 385, + 66, + 100, + 8, + 256, + 64 + ], + "offset": 134, + "phase": 1, + "quadratic_rows": [ + 17, + 70, + 102, + 0, + 129, + 4, + 6, + 272, + 384 + ] + } + } + } + }, + { + "new": 943, + "old": 395, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 23, + 34, + 66, + 4, + 135, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 2, + 0, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 423, + 98, + 182, + 256, + 326, + 64, + 72, + 352, + 384 + ], + "offset": 12, + "phase": 3, + "quadratic_rows": [ + 166, + 55, + 19, + 0, + 166, + 51, + 0, + 17, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 23, + 34, + 66, + 4, + 135, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 0, + 0, + 3, + 2, + 0, + 2 + ], + "matrix_rows": [ + 423, + 98, + 182, + 256, + 326, + 64, + 72, + 352, + 384 + ], + "offset": 11, + "phase": 1, + "quadratic_rows": [ + 166, + 55, + 19, + 0, + 166, + 51, + 0, + 17, + 0 + ] + } + } + } + }, + { + "new": 951, + "old": 395, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 39, + 71, + 135, + 259, + 4, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 3, + 1, + 2, + 1, + 1 + ], + "matrix_rows": [ + 212, + 340, + 308, + 165, + 38, + 320, + 328, + 368, + 256 + ], + "offset": 423, + "phase": 3, + "quadratic_rows": [ + 164, + 36, + 371, + 0, + 468, + 487, + 180, + 241, + 308 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 39, + 71, + 135, + 259, + 4, + 1, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 0, + 3, + 1, + 2, + 3, + 1 + ], + "matrix_rows": [ + 212, + 340, + 308, + 165, + 38, + 320, + 328, + 368, + 256 + ], + "offset": 420, + "phase": 2, + "quadratic_rows": [ + 164, + 36, + 371, + 0, + 468, + 487, + 180, + 241, + 308 + ] + } + } + } + }, + { + "new": 944, + "old": 396, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 34, + 64, + 132, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 1, + 2, + 1, + 0, + 3, + 3, + 2 + ], + "matrix_rows": [ + 65, + 36, + 400, + 32, + 6, + 96, + 24, + 256, + 384 + ], + "offset": 247, + "phase": 0, + "quadratic_rows": [ + 96, + 4, + 70, + 16, + 152, + 65, + 101, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 34, + 64, + 132, + 1, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 1, + 2, + 3, + 2, + 1, + 1, + 2 + ], + "matrix_rows": [ + 65, + 36, + 400, + 32, + 6, + 96, + 24, + 256, + 384 + ], + "offset": 242, + "phase": 1, + "quadratic_rows": [ + 96, + 4, + 70, + 16, + 152, + 65, + 101, + 144, + 0 + ] + } + } + } + }, + { + "new": 952, + "old": 396, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 132, + 256, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 1, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 65, + 384, + 408, + 69, + 6, + 64, + 392, + 256, + 32 + ], + "offset": 184, + "phase": 3, + "quadratic_rows": [ + 5, + 4, + 7, + 24, + 136, + 0, + 0, + 272, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 132, + 256, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 1, + 3, + 0, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 65, + 384, + 408, + 69, + 6, + 64, + 392, + 256, + 32 + ], + "offset": 189, + "phase": 0, + "quadratic_rows": [ + 5, + 4, + 7, + 24, + 136, + 0, + 0, + 272, + 384 + ] + } + } + } + }, + { + "new": 935, + "old": 397, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 39, + 65, + 1, + 128, + 256, + 3, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 1, + 1, + 3, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 10, + 388, + 4, + 149, + 134, + 256, + 24, + 32, + 64 + ], + "offset": 62, + "phase": 0, + "quadratic_rows": [ + 148, + 142, + 151, + 26, + 157, + 0, + 0, + 279, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 39, + 65, + 1, + 128, + 256, + 3, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 1, + 1, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 10, + 388, + 4, + 149, + 134, + 256, + 24, + 32, + 64 + ], + "offset": 62, + "phase": 1, + "quadratic_rows": [ + 148, + 142, + 151, + 26, + 157, + 0, + 0, + 279, + 384 + ] + } + } + } + }, + { + "new": 959, + "old": 397, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 34, + 70, + 4, + 129, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 0, + 2, + 0, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 194, + 463, + 155, + 323, + 64, + 320, + 328, + 96, + 384 + ], + "offset": 7, + "phase": 0, + "quadratic_rows": [ + 22, + 151, + 139, + 20, + 139, + 0, + 0, + 150, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 17, + 34, + 70, + 4, + 129, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 2, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 194, + 463, + 155, + 323, + 64, + 320, + 328, + 96, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 22, + 151, + 139, + 20, + 139, + 0, + 0, + 150, + 0 + ] + } + } + } + }, + { + "new": 936, + "old": 398, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 33, + 65, + 130, + 258, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 3 + ], + "matrix_rows": [ + 68, + 432, + 384, + 5, + 6, + 64, + 72, + 256, + 416 + ], + "offset": 185, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 3, + 0, + 160, + 48, + 0, + 272, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 33, + 65, + 130, + 258, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 3, + 2, + 2, + 3 + ], + "matrix_rows": [ + 68, + 432, + 384, + 5, + 6, + 64, + 72, + 256, + 416 + ], + "offset": 186, + "phase": 3, + "quadratic_rows": [ + 4, + 4, + 3, + 0, + 160, + 48, + 0, + 272, + 384 + ] + } + } + } + }, + { + "new": 960, + "old": 398, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 3, + 68, + 4, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 3, + 1, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 66, + 12, + 16, + 3, + 72, + 64, + 48, + 128, + 256 + ], + "offset": 27, + "phase": 1, + "quadratic_rows": [ + 2, + 11, + 72, + 78, + 48, + 16, + 12, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 3, + 68, + 4, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0 + ], + "matrix_rows": [ + 66, + 12, + 16, + 3, + 72, + 64, + 48, + 128, + 256 + ], + "offset": 25, + "phase": 3, + "quadratic_rows": [ + 2, + 11, + 72, + 78, + 48, + 16, + 12, + 0, + 0 + ] + } + } + } + }, + { + "new": 885, + "old": 411, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 33, + 64, + 130, + 4, + 6, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 2, + 0, + 1, + 3, + 3, + 2 + ], + "matrix_rows": [ + 388, + 66, + 96, + 5, + 64, + 256, + 40, + 80, + 384 + ], + "offset": 251, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 133, + 32, + 0, + 104, + 96, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 33, + 64, + 130, + 4, + 6, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 0, + 1, + 3, + 1, + 2 + ], + "matrix_rows": [ + 388, + 66, + 96, + 5, + 64, + 256, + 40, + 80, + 384 + ], + "offset": 248, + "phase": 3, + "quadratic_rows": [ + 4, + 0, + 133, + 32, + 0, + 104, + 96, + 132, + 0 + ] + } + } + } + }, + { + "new": 917, + "old": 411, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 36, + 64, + 128, + 258, + 2, + 1, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 0, + 2, + 0, + 3, + 2, + 0, + 3 + ], + "matrix_rows": [ + 384, + 66, + 389, + 385, + 98, + 256, + 40, + 16, + 64 + ], + "offset": 368, + "phase": 3, + "quadratic_rows": [ + 5, + 34, + 129, + 32, + 0, + 42, + 0, + 260, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 36, + 64, + 128, + 258, + 2, + 1, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 0, + 2, + 0, + 1, + 2, + 2, + 3 + ], + "matrix_rows": [ + 384, + 66, + 389, + 385, + 98, + 256, + 40, + 16, + 64 + ], + "offset": 374, + "phase": 0, + "quadratic_rows": [ + 5, + 34, + 129, + 32, + 0, + 42, + 0, + 260, + 384 + ] + } + } + } + }, + { + "new": 886, + "old": 412, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 4, + 39, + 71, + 129, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 89, + 410, + 156, + 64, + 256, + 328, + 336, + 96, + 384 + ], + "offset": 20, + "phase": 3, + "quadratic_rows": [ + 24, + 152, + 152, + 31, + 31, + 0, + 0, + 6, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 4, + 39, + 71, + 129, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 3, + 3, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 89, + 410, + 156, + 64, + 256, + 328, + 336, + 96, + 384 + ], + "offset": 19, + "phase": 1, + "quadratic_rows": [ + 24, + 152, + 152, + 31, + 31, + 0, + 0, + 6, + 0 + ] + } + } + } + }, + { + "new": 918, + "old": 412, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 32, + 64, + 133, + 256, + 5, + 1, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 6, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 3, + 1 + ], + "matrix_rows": [ + 210, + 66, + 272, + 147, + 320, + 20, + 24, + 64, + 32 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 146, + 321, + 16, + 16, + 269, + 0, + 450, + 193, + 338 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 32, + 64, + 133, + 256, + 5, + 1, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 6, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 0, + 2, + 0, + 1, + 1, + 3 + ], + "matrix_rows": [ + 210, + 66, + 272, + 147, + 320, + 20, + 24, + 64, + 32 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 146, + 321, + 16, + 16, + 269, + 0, + 450, + 193, + 338 + ] + } + } + } + }, + { + "new": 893, + "old": 413, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 67, + 128, + 6, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 3, + 0, + 2, + 1 + ], + "matrix_rows": [ + 169, + 9, + 288, + 261, + 166, + 256, + 424, + 16, + 64 + ], + "offset": 57, + "phase": 3, + "quadratic_rows": [ + 420, + 164, + 167, + 256, + 0, + 167, + 0, + 295, + 393 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 67, + 128, + 6, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 0, + 0, + 1, + 0, + 0, + 1 + ], + "matrix_rows": [ + 169, + 9, + 288, + 261, + 166, + 256, + 424, + 16, + 64 + ], + "offset": 57, + "phase": 0, + "quadratic_rows": [ + 420, + 164, + 167, + 256, + 0, + 167, + 0, + 295, + 393 + ] + } + } + } + }, + { + "new": 927, + "old": 413, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 22, + 34, + 65, + 129, + 4, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 3, + 0, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 200, + 463, + 171, + 321, + 330, + 320, + 64, + 80, + 384 + ], + "offset": 7, + "phase": 0, + "quadratic_rows": [ + 36, + 44, + 139, + 174, + 0, + 139, + 0, + 172, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 22, + 34, + 65, + 129, + 4, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 200, + 463, + 171, + 321, + 330, + 320, + 64, + 80, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 36, + 44, + 139, + 174, + 0, + 139, + 0, + 172, + 0 + ] + } + } + } + }, + { + "new": 894, + "old": 414, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 34, + 65, + 130, + 256, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 0, + 3, + 1, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 9, + 404, + 384, + 67, + 64, + 256, + 72, + 400, + 32 + ], + "offset": 33, + "phase": 3, + "quadratic_rows": [ + 75, + 1, + 144, + 73, + 20, + 0, + 9, + 260, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 34, + 65, + 130, + 256, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 0, + 3, + 3, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 9, + 404, + 384, + 67, + 64, + 256, + 72, + 400, + 32 + ], + "offset": 35, + "phase": 1, + "quadratic_rows": [ + 75, + 1, + 144, + 73, + 20, + 0, + 9, + 260, + 384 + ] + } + } + } + }, + { + "new": 928, + "old": 414, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 36, + 65, + 4, + 1, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 1, + 2, + 1, + 1, + 0, + 0 + ], + "matrix_rows": [ + 106, + 34, + 4, + 11, + 96, + 20, + 32, + 128, + 256 + ], + "offset": 26, + "phase": 0, + "quadratic_rows": [ + 10, + 33, + 20, + 73, + 4, + 34, + 72, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 36, + 65, + 4, + 1, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 1, + 3, + 2, + 1, + 3, + 0, + 0 + ], + "matrix_rows": [ + 106, + 34, + 4, + 11, + 96, + 20, + 32, + 128, + 256 + ], + "offset": 27, + "phase": 0, + "quadratic_rows": [ + 10, + 33, + 20, + 73, + 4, + 34, + 72, + 0, + 0 + ] + } + } + } + }, + { + "new": 937, + "old": 415, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 64, + 129, + 258, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 0, + 2, + 0, + 1, + 2, + 0, + 3 + ], + "matrix_rows": [ + 66, + 420, + 384, + 3, + 64, + 256, + 8, + 80, + 416 + ], + "offset": 233, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 160, + 0, + 0, + 36, + 0, + 260, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 64, + 129, + 258, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 2, + 0, + 3, + 2, + 2, + 3 + ], + "matrix_rows": [ + 66, + 420, + 384, + 3, + 64, + 256, + 8, + 80, + 416 + ], + "offset": 234, + "phase": 3, + "quadratic_rows": [ + 2, + 3, + 160, + 0, + 0, + 36, + 0, + 260, + 384 + ] + } + } + } + }, + { + "new": 965, + "old": 415, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 36, + 1, + 66, + 4, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 3, + 0, + 2, + 1, + 0, + 0 + ], + "matrix_rows": [ + 74, + 66, + 4, + 11, + 64, + 36, + 80, + 128, + 256 + ], + "offset": 25, + "phase": 0, + "quadratic_rows": [ + 10, + 65, + 36, + 73, + 0, + 4, + 74, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 36, + 1, + 66, + 4, + 2, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 1, + 3, + 0, + 2, + 1, + 0, + 0 + ], + "matrix_rows": [ + 74, + 66, + 4, + 11, + 64, + 36, + 80, + 128, + 256 + ], + "offset": 27, + "phase": 0, + "quadratic_rows": [ + 10, + 65, + 36, + 73, + 0, + 4, + 74, + 0, + 0 + ] + } + } + } + }, + { + "new": 938, + "old": 416, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 35, + 67, + 5, + 128, + 256, + 1, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 3, + 0, + 0, + 2, + 1 + ], + "matrix_rows": [ + 10, + 154, + 272, + 149, + 262, + 256, + 408, + 32, + 64 + ], + "offset": 58, + "phase": 3, + "quadratic_rows": [ + 148, + 404, + 151, + 256, + 151, + 0, + 0, + 279, + 394 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 35, + 67, + 5, + 128, + 256, + 1, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 0, + 1, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 10, + 154, + 272, + 149, + 262, + 256, + 408, + 32, + 64 + ], + "offset": 58, + "phase": 0, + "quadratic_rows": [ + 148, + 404, + 151, + 256, + 151, + 0, + 0, + 279, + 394 + ] + } + } + } + }, + { + "new": 966, + "old": 416, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 22, + 34, + 65, + 4, + 129, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 3, + 0, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 200, + 463, + 155, + 329, + 322, + 320, + 64, + 96, + 384 + ], + "offset": 7, + "phase": 0, + "quadratic_rows": [ + 28, + 20, + 139, + 157, + 139, + 0, + 0, + 156, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 22, + 34, + 65, + 4, + 129, + 1, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 1, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 200, + 463, + 155, + 329, + 322, + 320, + 64, + 96, + 384 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 28, + 20, + 139, + 157, + 139, + 0, + 0, + 156, + 0 + ] + } + } + } + }, + { + "new": 947, + "old": 417, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 4, + 39, + 66, + 135, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 1, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 425, + 106, + 172, + 256, + 64, + 328, + 80, + 352, + 384 + ], + "offset": 12, + "phase": 3, + "quadratic_rows": [ + 168, + 40, + 168, + 47, + 0, + 47, + 0, + 5, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 4, + 39, + 66, + 135, + 2, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 3, + 0, + 3, + 2, + 0, + 2 + ], + "matrix_rows": [ + 425, + 106, + 172, + 256, + 64, + 328, + 80, + 352, + 384 + ], + "offset": 11, + "phase": 1, + "quadratic_rows": [ + 168, + 40, + 168, + 47, + 0, + 47, + 0, + 5, + 0 + ] + } + } + } + }, + { + "new": 969, + "old": 417, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 35, + 64, + 131, + 261, + 6, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 7, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 198, + 294, + 96, + 163, + 320, + 356, + 40, + 336, + 256 + ], + "offset": 419, + "phase": 2, + "quadratic_rows": [ + 162, + 1, + 128, + 32, + 0, + 393, + 384, + 229, + 96 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 35, + 64, + 131, + 261, + 6, + 1, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 7, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 3, + 0 + ], + "matrix_rows": [ + 198, + 294, + 96, + 163, + 320, + 356, + 40, + 336, + 256 + ], + "offset": 422, + "phase": 3, + "quadratic_rows": [ + 162, + 1, + 128, + 32, + 0, + 393, + 384, + 229, + 96 + ] + } + } + } + }, + { + "new": 948, + "old": 418, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 34, + 64, + 132, + 1, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 1, + 2, + 1, + 0, + 3, + 3, + 2 + ], + "matrix_rows": [ + 65, + 388, + 48, + 32, + 6, + 256, + 24, + 96, + 384 + ], + "offset": 247, + "phase": 0, + "quadratic_rows": [ + 96, + 4, + 134, + 16, + 88, + 65, + 113, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 34, + 64, + 132, + 1, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 3, + 2, + 1, + 2, + 1, + 1, + 2 + ], + "matrix_rows": [ + 65, + 388, + 48, + 32, + 6, + 256, + 24, + 96, + 384 + ], + "offset": 244, + "phase": 1, + "quadratic_rows": [ + 96, + 4, + 134, + 16, + 88, + 65, + 113, + 132, + 0 + ] + } + } + } + }, + { + "new": 970, + "old": 418, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 36, + 64, + 129, + 256, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 0, + 2, + 3, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 65, + 384, + 390, + 81, + 386, + 256, + 24, + 64, + 32 + ], + "offset": 232, + "phase": 3, + "quadratic_rows": [ + 17, + 6, + 130, + 16, + 25, + 0, + 0, + 260, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 20, + 36, + 64, + 129, + 256, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 0, + 2, + 1, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 65, + 384, + 390, + 81, + 386, + 256, + 24, + 64, + 32 + ], + "offset": 237, + "phase": 0, + "quadratic_rows": [ + 17, + 6, + 130, + 16, + 25, + 0, + 0, + 260, + 384 + ] + } + } + } + }, + { + "new": 887, + "old": 431, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 66, + 129, + 4, + 1, + 6, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 1, + 3, + 0, + 0, + 3, + 0 + ], + "matrix_rows": [ + 17, + 170, + 160, + 69, + 128, + 64, + 168, + 80, + 256 + ], + "offset": 17, + "phase": 3, + "quadratic_rows": [ + 85, + 40, + 1, + 10, + 81, + 130, + 17, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 66, + 129, + 4, + 1, + 6, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 3, + 3, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 17, + 170, + 160, + 69, + 128, + 64, + 168, + 80, + 256 + ], + "offset": 19, + "phase": 1, + "quadratic_rows": [ + 85, + 40, + 1, + 10, + 81, + 130, + 17, + 160, + 0 + ] + } + } + } + }, + { + "new": 925, + "old": 431, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 21, + 32, + 1, + 66, + 132, + 258, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 1, + 3, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 130, + 272, + 170, + 1, + 138, + 20, + 256, + 128, + 320 + ], + "offset": 364, + "phase": 2, + "quadratic_rows": [ + 0, + 160, + 16, + 40, + 20, + 10, + 0, + 130, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 21, + 32, + 1, + 66, + 132, + 258, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 1, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 130, + 272, + 170, + 1, + 138, + 20, + 256, + 128, + 320 + ], + "offset": 362, + "phase": 1, + "quadratic_rows": [ + 0, + 160, + 16, + 40, + 20, + 10, + 0, + 130, + 0 + ] + } + } + } + }, + { + "new": 888, + "old": 432, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 66, + 129, + 4, + 1, + 256, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 1, + 3, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 17, + 298, + 288, + 69, + 256, + 64, + 296, + 80, + 128 + ], + "offset": 17, + "phase": 3, + "quadratic_rows": [ + 85, + 40, + 1, + 10, + 81, + 258, + 17, + 0, + 288 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 66, + 129, + 4, + 1, + 256, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 3, + 3, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 17, + 298, + 288, + 69, + 256, + 64, + 296, + 80, + 128 + ], + "offset": 19, + "phase": 1, + "quadratic_rows": [ + 85, + 40, + 1, + 10, + 81, + 258, + 17, + 0, + 288 + ] + } + } + } + }, + { + "new": 926, + "old": 432, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 21, + 32, + 1, + 66, + 132, + 258, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 1, + 3, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 258, + 144, + 298, + 1, + 266, + 20, + 128, + 256, + 192 + ], + "offset": 364, + "phase": 2, + "quadratic_rows": [ + 0, + 288, + 16, + 40, + 20, + 10, + 0, + 0, + 258 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 21, + 32, + 1, + 66, + 132, + 258, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 1, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 258, + 144, + 298, + 1, + 266, + 20, + 128, + 256, + 192 + ], + "offset": 362, + "phase": 1, + "quadratic_rows": [ + 0, + 288, + 16, + 40, + 20, + 10, + 0, + 0, + 258 + ] + } + } + } + }, + { + "new": 895, + "old": 433, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 16, + 35, + 71, + 4, + 134, + 5, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 3, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 124, + 25, + 269, + 261, + 38, + 320, + 376, + 256, + 384 + ], + "offset": 233, + "phase": 2, + "quadratic_rows": [ + 16, + 36, + 278, + 24, + 269, + 2, + 0, + 0, + 276 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 16, + 35, + 71, + 4, + 134, + 5, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 3, + 3, + 2, + 0, + 2, + 0, + 1 + ], + "matrix_rows": [ + 124, + 25, + 269, + 261, + 38, + 320, + 376, + 256, + 384 + ], + "offset": 236, + "phase": 1, + "quadratic_rows": [ + 16, + 36, + 278, + 24, + 269, + 2, + 0, + 0, + 276 + ] + } + } + } + }, + { + "new": 919, + "old": 433, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 20, + 36, + 1, + 7, + 67, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 7, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 1, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 56, + 9, + 15, + 57, + 306, + 276, + 256, + 320, + 384 + ], + "offset": 243, + "phase": 3, + "quadratic_rows": [ + 62, + 319, + 287, + 15, + 55, + 19, + 0, + 0, + 6 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 14, + 20, + 36, + 1, + 7, + 67, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 7, + 3, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 1, + 2, + 0, + 0, + 2 + ], + "matrix_rows": [ + 56, + 9, + 15, + 57, + 306, + 276, + 256, + 320, + 384 + ], + "offset": 243, + "phase": 2, + "quadratic_rows": [ + 62, + 319, + 287, + 15, + 55, + 19, + 0, + 0, + 6 + ] + } + } + } + }, + { + "new": 896, + "old": 434, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 38, + 70, + 128, + 2, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2 + ], + "matrix_rows": [ + 257, + 12, + 108, + 256, + 38, + 64, + 104, + 16, + 384 + ], + "offset": 55, + "phase": 2, + "quadratic_rows": [ + 0, + 36, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 38, + 70, + 128, + 2, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 2, + 0, + 2, + 2, + 0, + 2 + ], + "matrix_rows": [ + 257, + 12, + 108, + 256, + 38, + 64, + 104, + 16, + 384 + ], + "offset": 48, + "phase": 2, + "quadratic_rows": [ + 0, + 36, + 2, + 0, + 0, + 2, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 920, + "old": 434, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 3, + 68, + 130, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 3, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 46, + 40, + 272, + 1, + 74, + 108, + 256, + 64, + 384 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 0, + 102, + 70, + 40, + 0, + 10, + 6, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 3, + 68, + 130, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 1, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 46, + 40, + 272, + 1, + 74, + 108, + 256, + 64, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 0, + 102, + 70, + 40, + 0, + 10, + 6, + 0, + 0 + ] + } + } + } + }, + { + "new": 945, + "old": 435, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 34, + 65, + 4, + 130, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 1, + 0, + 3, + 0, + 3, + 0 + ], + "matrix_rows": [ + 153, + 34, + 144, + 128, + 70, + 64, + 152, + 96, + 256 + ], + "offset": 10, + "phase": 3, + "quadratic_rows": [ + 24, + 102, + 2, + 9, + 129, + 98, + 34, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 34, + 65, + 4, + 130, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 3, + 2, + 3, + 0, + 3, + 0 + ], + "matrix_rows": [ + 153, + 34, + 144, + 128, + 70, + 64, + 152, + 96, + 256 + ], + "offset": 11, + "phase": 1, + "quadratic_rows": [ + 24, + 102, + 2, + 9, + 129, + 98, + 34, + 144, + 0 + ] + } + } + } + }, + { + "new": 967, + "old": 435, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 16, + 32, + 1, + 68, + 130, + 258, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 1, + 0, + 3, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 288, + 153, + 137, + 2, + 36, + 128, + 256, + 320 + ], + "offset": 436, + "phase": 2, + "quadratic_rows": [ + 144, + 0, + 32, + 24, + 9, + 36, + 0, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 16, + 32, + 1, + 68, + 130, + 258, + 4, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 1, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 288, + 153, + 137, + 2, + 36, + 128, + 256, + 320 + ], + "offset": 434, + "phase": 1, + "quadratic_rows": [ + 144, + 0, + 32, + 24, + 9, + 36, + 0, + 129, + 0 + ] + } + } + } + }, + { + "new": 946, + "old": 436, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 34, + 65, + 4, + 130, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 1, + 0, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 281, + 34, + 272, + 256, + 70, + 64, + 280, + 96, + 128 + ], + "offset": 10, + "phase": 3, + "quadratic_rows": [ + 24, + 102, + 2, + 9, + 257, + 98, + 34, + 0, + 272 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 34, + 65, + 4, + 130, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 3, + 2, + 3, + 2, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 281, + 34, + 272, + 256, + 70, + 64, + 280, + 96, + 128 + ], + "offset": 11, + "phase": 1, + "quadratic_rows": [ + 24, + 102, + 2, + 9, + 257, + 98, + 34, + 0, + 272 + ] + } + } + } + }, + { + "new": 968, + "old": 436, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 16, + 32, + 1, + 68, + 130, + 258, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 1, + 0, + 3, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 160, + 281, + 265, + 2, + 36, + 256, + 128, + 192 + ], + "offset": 436, + "phase": 2, + "quadratic_rows": [ + 272, + 0, + 32, + 24, + 9, + 36, + 0, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 16, + 32, + 1, + 68, + 130, + 258, + 2, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 3, + 0, + 1, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 160, + 281, + 265, + 2, + 36, + 256, + 128, + 192 + ], + "offset": 434, + "phase": 1, + "quadratic_rows": [ + 272, + 0, + 32, + 24, + 9, + 36, + 0, + 0, + 257 + ] + } + } + } + }, + { + "new": 939, + "old": 437, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 21, + 35, + 71, + 133, + 4, + 6, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 3, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 42, + 124, + 270, + 21, + 262, + 320, + 376, + 256, + 384 + ], + "offset": 242, + "phase": 2, + "quadratic_rows": [ + 20, + 32, + 293, + 40, + 1, + 270, + 0, + 0, + 292 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 21, + 35, + 71, + 133, + 4, + 6, + 261, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 3, + 3, + 0, + 2, + 2, + 0, + 1 + ], + "matrix_rows": [ + 42, + 124, + 270, + 21, + 262, + 320, + 376, + 256, + 384 + ], + "offset": 244, + "phase": 1, + "quadratic_rows": [ + 20, + 32, + 293, + 40, + 1, + 270, + 0, + 0, + 292 + ] + } + } + } + }, + { + "new": 971, + "old": 437, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 21, + 36, + 2, + 67, + 7, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 7, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 0, + 1, + 0, + 0, + 2 + ], + "matrix_rows": [ + 10, + 56, + 15, + 305, + 58, + 292, + 256, + 320, + 384 + ], + "offset": 235, + "phase": 3, + "quadratic_rows": [ + 319, + 61, + 303, + 15, + 35, + 55, + 0, + 0, + 5 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 21, + 36, + 2, + 67, + 7, + 131, + 259, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 7, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 2, + 1, + 0, + 0, + 2 + ], + "matrix_rows": [ + 10, + 56, + 15, + 305, + 58, + 292, + 256, + 320, + 384 + ], + "offset": 235, + "phase": 2, + "quadratic_rows": [ + 319, + 61, + 303, + 15, + 35, + 55, + 0, + 0, + 5 + ] + } + } + } + }, + { + "new": 940, + "old": 438, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 37, + 69, + 1, + 128, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 12, + 258, + 92, + 21, + 256, + 64, + 88, + 32, + 384 + ], + "offset": 47, + "phase": 2, + "quadratic_rows": [ + 20, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 37, + 69, + 1, + 128, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 2, + 2, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 12, + 258, + 92, + 21, + 256, + 64, + 88, + 32, + 384 + ], + "offset": 40, + "phase": 2, + "quadratic_rows": [ + 20, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 972, + "old": 438, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 3, + 66, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 1, + 3, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 29, + 24, + 288, + 73, + 2, + 92, + 64, + 256, + 384 + ], + "offset": 4, + "phase": 2, + "quadratic_rows": [ + 85, + 0, + 69, + 24, + 9, + 0, + 5, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 3, + 66, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 3, + 1, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 29, + 24, + 288, + 73, + 2, + 92, + 64, + 256, + 384 + ], + "offset": 3, + "phase": 2, + "quadratic_rows": [ + 85, + 0, + 69, + 24, + 9, + 0, + 5, + 0, + 0 + ] + } + } + } + }, + { + "new": 889, + "old": 491, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 33, + 64, + 2, + 132, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 1, + 2, + 0, + 1, + 3, + 3, + 2 + ], + "matrix_rows": [ + 20, + 66, + 416, + 5, + 16, + 80, + 40, + 256, + 384 + ], + "offset": 239, + "phase": 0, + "quadratic_rows": [ + 4, + 80, + 69, + 32, + 66, + 168, + 86, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 18, + 33, + 64, + 2, + 132, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 1, + 2, + 2, + 3, + 1, + 1, + 2 + ], + "matrix_rows": [ + 20, + 66, + 416, + 5, + 16, + 80, + 40, + 256, + 384 + ], + "offset": 233, + "phase": 1, + "quadratic_rows": [ + 4, + 80, + 69, + 32, + 66, + 168, + 86, + 160, + 0 + ] + } + } + } + }, + { + "new": 949, + "old": 491, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 128, + 260, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 3, + 3, + 1, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 66, + 384, + 424, + 5, + 70, + 64, + 392, + 16, + 256 + ], + "offset": 312, + "phase": 3, + "quadratic_rows": [ + 4, + 6, + 7, + 40, + 0, + 136, + 0, + 288, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 128, + 260, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 1, + 3, + 0, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 66, + 384, + 424, + 5, + 70, + 64, + 392, + 16, + 256 + ], + "offset": 317, + "phase": 0, + "quadratic_rows": [ + 4, + 6, + 7, + 40, + 0, + 136, + 0, + 288, + 384 + ] + } + } + } + }, + { + "new": 890, + "old": 492, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 18, + 33, + 65, + 135, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 2, + 0, + 1, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 81, + 407, + 181, + 325, + 256, + 64, + 72, + 336, + 384 + ], + "offset": 20, + "phase": 3, + "quadratic_rows": [ + 55, + 149, + 35, + 0, + 51, + 149, + 0, + 34, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 18, + 33, + 65, + 135, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 0, + 3, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 81, + 407, + 181, + 325, + 256, + 64, + 72, + 336, + 384 + ], + "offset": 19, + "phase": 1, + "quadratic_rows": [ + 55, + 149, + 35, + 0, + 51, + 149, + 0, + 34, + 0 + ] + } + } + } + }, + { + "new": 950, + "old": 492, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 23, + 39, + 71, + 132, + 259, + 7, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 0, + 1, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 130, + 258, + 183, + 357, + 230, + 64, + 72, + 368, + 256 + ], + "offset": 463, + "phase": 2, + "quadratic_rows": [ + 467, + 467, + 368, + 0, + 471, + 356, + 183, + 83, + 311 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 23, + 39, + 71, + 132, + 259, + 7, + 2, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 0, + 0, + 1, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 130, + 258, + 183, + 357, + 230, + 64, + 72, + 368, + 256 + ], + "offset": 463, + "phase": 1, + "quadratic_rows": [ + 467, + 467, + 368, + 0, + 471, + 356, + 183, + 83, + 311 + ] + } + } + } + }, + { + "new": 899, + "old": 493, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 39, + 66, + 128, + 2, + 256, + 3, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 1, + 1, + 0, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 388, + 9, + 4, + 133, + 166, + 256, + 40, + 16, + 64 + ], + "offset": 61, + "phase": 0, + "quadratic_rows": [ + 141, + 164, + 167, + 41, + 0, + 174, + 0, + 295, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 39, + 66, + 128, + 2, + 256, + 3, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 1, + 0, + 1, + 0, + 2, + 3 + ], + "matrix_rows": [ + 388, + 9, + 4, + 133, + 166, + 256, + 40, + 16, + 64 + ], + "offset": 61, + "phase": 1, + "quadratic_rows": [ + 141, + 164, + 167, + 41, + 0, + 174, + 0, + 295, + 384 + ] + } + } + } + }, + { + "new": 959, + "old": 493, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 17, + 34, + 71, + 129, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 0, + 1, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 73, + 399, + 171, + 323, + 64, + 256, + 328, + 80, + 384 + ], + "offset": 36, + "phase": 3, + "quadratic_rows": [ + 47, + 37, + 139, + 45, + 0, + 139, + 0, + 36, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 17, + 34, + 71, + 129, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 0, + 3, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 73, + 399, + 171, + 323, + 64, + 256, + 328, + 80, + 384 + ], + "offset": 35, + "phase": 1, + "quadratic_rows": [ + 47, + 37, + 139, + 45, + 0, + 139, + 0, + 36, + 0 + ] + } + } + } + }, + { + "new": 900, + "old": 494, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 33, + 65, + 132, + 260, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 1, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 68, + 384, + 432, + 5, + 6, + 64, + 72, + 400, + 256 + ], + "offset": 313, + "phase": 0, + "quadratic_rows": [ + 4, + 4, + 3, + 0, + 48, + 144, + 0, + 288, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 33, + 65, + 132, + 260, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 3, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 68, + 384, + 432, + 5, + 6, + 64, + 72, + 400, + 256 + ], + "offset": 316, + "phase": 3, + "quadratic_rows": [ + 4, + 4, + 3, + 0, + 48, + 144, + 0, + 288, + 384 + ] + } + } + } + }, + { + "new": 960, + "old": 494, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 2, + 64, + 132, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 0, + 2, + 1, + 3, + 3, + 2 + ], + "matrix_rows": [ + 10, + 68, + 416, + 3, + 72, + 8, + 48, + 256, + 384 + ], + "offset": 223, + "phase": 0, + "quadratic_rows": [ + 2, + 67, + 72, + 68, + 32, + 176, + 78, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 2, + 64, + 132, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 1, + 0, + 2, + 2, + 3, + 1, + 1, + 2 + ], + "matrix_rows": [ + 10, + 68, + 416, + 3, + 72, + 8, + 48, + 256, + 384 + ], + "offset": 217, + "phase": 1, + "quadratic_rows": [ + 2, + 67, + 72, + 68, + 32, + 176, + 78, + 160, + 0 + ] + } + } + } + }, + { + "new": 905, + "old": 495, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 65, + 128, + 260, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 1, + 2, + 0, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 3, + 384, + 420, + 65, + 74, + 388, + 64, + 16, + 256 + ], + "offset": 257, + "phase": 3, + "quadratic_rows": [ + 67, + 75, + 36, + 2, + 0, + 132, + 3, + 288, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 36, + 65, + 128, + 260, + 1, + 2, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 0, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 3, + 384, + 420, + 65, + 74, + 388, + 64, + 16, + 256 + ], + "offset": 261, + "phase": 1, + "quadratic_rows": [ + 67, + 75, + 36, + 2, + 0, + 132, + 3, + 288, + 384 + ] + } + } + } + }, + { + "new": 965, + "old": 495, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 32, + 65, + 3, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 3, + 2, + 1, + 0, + 3, + 2 + ], + "matrix_rows": [ + 90, + 66, + 416, + 11, + 16, + 36, + 80, + 256, + 384 + ], + "offset": 238, + "phase": 3, + "quadratic_rows": [ + 10, + 1, + 32, + 9, + 0, + 164, + 0, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 19, + 32, + 65, + 3, + 132, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 1, + 2, + 3, + 0, + 1, + 2 + ], + "matrix_rows": [ + 90, + 66, + 416, + 11, + 16, + 36, + 80, + 256, + 384 + ], + "offset": 233, + "phase": 1, + "quadratic_rows": [ + 10, + 1, + 32, + 9, + 0, + 164, + 0, + 160, + 0 + ] + } + } + } + }, + { + "new": 906, + "old": 496, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 19, + 32, + 64, + 134, + 3, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 3 + ], + "matrix_rows": [ + 291, + 179, + 16, + 33, + 34, + 180, + 8, + 256, + 64 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 432, + 432, + 176, + 0, + 263, + 263, + 0, + 135, + 307 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 19, + 32, + 64, + 134, + 3, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 2, + 2, + 0, + 1, + 3 + ], + "matrix_rows": [ + 291, + 179, + 16, + 33, + 34, + 180, + 8, + 256, + 64 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 432, + 432, + 176, + 0, + 263, + 263, + 0, + 135, + 307 + ] + } + } + } + }, + { + "new": 966, + "old": 496, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 33, + 65, + 130, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 2, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 403, + 163, + 321, + 322, + 64, + 72, + 256, + 384 + ], + "offset": 132, + "phase": 3, + "quadratic_rows": [ + 55, + 55, + 3, + 0, + 131, + 131, + 0, + 48, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 23, + 33, + 65, + 130, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 403, + 163, + 321, + 322, + 64, + 72, + 256, + 384 + ], + "offset": 131, + "phase": 1, + "quadratic_rows": [ + 55, + 55, + 3, + 0, + 131, + 131, + 0, + 48, + 0 + ] + } + } + } + }, + { + "new": 915, + "old": 497, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 17, + 39, + 66, + 129, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 397, + 165, + 321, + 64, + 324, + 256, + 80, + 384 + ], + "offset": 68, + "phase": 3, + "quadratic_rows": [ + 47, + 5, + 47, + 133, + 0, + 133, + 0, + 40, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 17, + 39, + 66, + 129, + 4, + 1, + 262, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 71, + 397, + 165, + 321, + 64, + 324, + 256, + 80, + 384 + ], + "offset": 67, + "phase": 1, + "quadratic_rows": [ + 47, + 5, + 47, + 133, + 0, + 133, + 0, + 40, + 0 + ] + } + } + } + }, + { + "new": 971, + "old": 497, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 70, + 128, + 3, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 3 + ], + "matrix_rows": [ + 293, + 173, + 8, + 33, + 170, + 36, + 256, + 16, + 64 + ], + "offset": 2, + "phase": 2, + "quadratic_rows": [ + 424, + 168, + 424, + 263, + 0, + 263, + 0, + 135, + 301 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 70, + 128, + 3, + 256, + 2, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 0, + 2, + 0, + 1, + 3 + ], + "matrix_rows": [ + 293, + 173, + 8, + 33, + 170, + 36, + 256, + 16, + 64 + ], + "offset": 2, + "phase": 1, + "quadratic_rows": [ + 424, + 168, + 424, + 263, + 0, + 263, + 0, + 135, + 301 + ] + } + } + } + }, + { + "new": 916, + "old": 498, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 37, + 69, + 1, + 130, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 3, + 1, + 2, + 3, + 2 + ], + "matrix_rows": [ + 20, + 416, + 68, + 21, + 34, + 64, + 72, + 256, + 384 + ], + "offset": 255, + "phase": 1, + "quadratic_rows": [ + 20, + 32, + 1, + 0, + 17, + 162, + 0, + 160, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 37, + 69, + 1, + 130, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 1, + 3, + 2, + 1, + 2 + ], + "matrix_rows": [ + 20, + 416, + 68, + 21, + 34, + 64, + 72, + 256, + 384 + ], + "offset": 248, + "phase": 3, + "quadratic_rows": [ + 20, + 32, + 1, + 0, + 17, + 162, + 0, + 160, + 0 + ] + } + } + } + }, + { + "new": 972, + "old": 498, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 20, + 34, + 64, + 130, + 260, + 2, + 1, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 3, + 0, + 2, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 384, + 5, + 418, + 65, + 386, + 84, + 8, + 64, + 256 + ], + "offset": 258, + "phase": 3, + "quadratic_rows": [ + 69, + 34, + 85, + 0, + 4, + 130, + 5, + 288, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 20, + 34, + 64, + 130, + 260, + 2, + 1, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 2, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 384, + 5, + 418, + 65, + 386, + 84, + 8, + 64, + 256 + ], + "offset": 262, + "phase": 1, + "quadratic_rows": [ + 69, + 34, + 85, + 0, + 4, + 130, + 5, + 288, + 384 + ] + } + } + } + }, + { + "new": 891, + "old": 511, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 1, + 36, + 68, + 132, + 4, + 3, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 3, + 3, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 132, + 135, + 24, + 133, + 128, + 104, + 80, + 64, + 256 + ], + "offset": 20, + "phase": 3, + "quadratic_rows": [ + 3, + 5, + 130, + 120, + 88, + 8, + 24, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 1, + 36, + 68, + 132, + 4, + 3, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 3, + 3, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 132, + 135, + 24, + 133, + 128, + 104, + 80, + 64, + 256 + ], + "offset": 22, + "phase": 1, + "quadratic_rows": [ + 3, + 5, + 130, + 120, + 88, + 8, + 24, + 132, + 0 + ] + } + } + } + }, + { + "new": 957, + "old": 511, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 17, + 2, + 36, + 68, + 132, + 4, + 3, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 2, + 3, + 3, + 2, + 0, + 1, + 0 + ], + "matrix_rows": [ + 2, + 135, + 24, + 3, + 128, + 72, + 112, + 64, + 256 + ], + "offset": 29, + "phase": 1, + "quadratic_rows": [ + 133, + 4, + 131, + 88, + 120, + 16, + 24, + 133, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 17, + 2, + 36, + 68, + 132, + 4, + 3, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 2, + 3, + 3, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 2, + 135, + 24, + 3, + 128, + 72, + 112, + 64, + 256 + ], + "offset": 31, + "phase": 1, + "quadratic_rows": [ + 133, + 4, + 131, + 88, + 120, + 16, + 24, + 133, + 0 + ] + } + } + } + }, + { + "new": 892, + "old": 512, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 1, + 36, + 68, + 132, + 4, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 3, + 3, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 260, + 263, + 24, + 261, + 256, + 104, + 80, + 64, + 128 + ], + "offset": 20, + "phase": 3, + "quadratic_rows": [ + 3, + 5, + 258, + 120, + 88, + 8, + 24, + 0, + 260 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 18, + 1, + 36, + 68, + 132, + 4, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 2, + 3, + 3, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 260, + 263, + 24, + 261, + 256, + 104, + 80, + 64, + 128 + ], + "offset": 22, + "phase": 1, + "quadratic_rows": [ + 3, + 5, + 258, + 120, + 88, + 8, + 24, + 0, + 260 + ] + } + } + } + }, + { + "new": 958, + "old": 512, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 17, + 2, + 36, + 68, + 132, + 4, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 2, + 3, + 3, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 2, + 263, + 24, + 3, + 256, + 72, + 112, + 64, + 128 + ], + "offset": 29, + "phase": 1, + "quadratic_rows": [ + 261, + 4, + 259, + 88, + 120, + 16, + 24, + 0, + 261 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 17, + 2, + 36, + 68, + 132, + 4, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 2, + 3, + 3, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 2, + 263, + 24, + 3, + 256, + 72, + 112, + 64, + 128 + ], + "offset": 31, + "phase": 1, + "quadratic_rows": [ + 261, + 4, + 259, + 88, + 120, + 16, + 24, + 0, + 261 + ] + } + } + } + }, + { + "new": 897, + "old": 513, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 39, + 71, + 1, + 130, + 5, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 1, + 1, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 297, + 25, + 108, + 341, + 38, + 256, + 296, + 320, + 384 + ], + "offset": 232, + "phase": 1, + "quadratic_rows": [ + 100, + 36, + 27, + 124, + 348, + 299, + 25, + 0, + 304 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 39, + 71, + 1, + 130, + 5, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 1 + ], + "matrix_rows": [ + 297, + 25, + 108, + 341, + 38, + 256, + 296, + 320, + 384 + ], + "offset": 237, + "phase": 2, + "quadratic_rows": [ + 100, + 36, + 27, + 124, + 348, + 299, + 25, + 0, + 304 + ] + } + } + } + }, + { + "new": 951, + "old": 513, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 16, + 39, + 1, + 71, + 131, + 4, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 1, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 3, + 3, + 3, + 0, + 0, + 3 + ], + "matrix_rows": [ + 305, + 340, + 25, + 109, + 38, + 256, + 304, + 320, + 384 + ], + "offset": 226, + "phase": 1, + "quadratic_rows": [ + 324, + 36, + 27, + 124, + 348, + 298, + 25, + 0, + 305 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 13, + 16, + 39, + 1, + 71, + 131, + 4, + 263, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 1, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 3, + 1, + 0, + 0, + 1 + ], + "matrix_rows": [ + 305, + 340, + 25, + 109, + 38, + 256, + 304, + 320, + 384 + ], + "offset": 225, + "phase": 2, + "quadratic_rows": [ + 324, + 36, + 27, + 124, + 348, + 298, + 25, + 0, + 305 + ] + } + } + } + }, + { + "new": 898, + "old": 514, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 35, + 68, + 128, + 2, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 4, + 97, + 264, + 5, + 38, + 64, + 256, + 16, + 384 + ], + "offset": 61, + "phase": 0, + "quadratic_rows": [ + 101, + 36, + 99, + 0, + 0, + 103, + 101, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 35, + 68, + 128, + 2, + 1, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 0, + 0, + 0, + 3, + 3, + 0, + 2 + ], + "matrix_rows": [ + 4, + 97, + 264, + 5, + 38, + 64, + 256, + 16, + 384 + ], + "offset": 59, + "phase": 1, + "quadratic_rows": [ + 101, + 36, + 99, + 0, + 0, + 103, + 101, + 0, + 0 + ] + } + } + } + }, + { + "new": 952, + "old": 514, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 35, + 64, + 132, + 1, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 100, + 97, + 272, + 101, + 38, + 64, + 8, + 256, + 384 + ], + "offset": 61, + "phase": 0, + "quadratic_rows": [ + 5, + 36, + 99, + 0, + 0, + 102, + 100, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 10, + 16, + 35, + 64, + 132, + 1, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 100, + 97, + 272, + 101, + 38, + 64, + 8, + 256, + 384 + ], + "offset": 59, + "phase": 1, + "quadratic_rows": [ + 5, + 36, + 99, + 0, + 0, + 102, + 100, + 0, + 0 + ] + } + } + } + }, + { + "new": 913, + "old": 515, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 68, + 1, + 130, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 0, + 0, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 144, + 6, + 153, + 145, + 98, + 68, + 128, + 64, + 256 + ], + "offset": 66, + "phase": 3, + "quadratic_rows": [ + 9, + 102, + 70, + 17, + 136, + 2, + 6, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 68, + 1, + 130, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 2, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 144, + 6, + 153, + 145, + 98, + 68, + 128, + 64, + 256 + ], + "offset": 70, + "phase": 1, + "quadratic_rows": [ + 9, + 102, + 70, + 17, + 136, + 2, + 6, + 144, + 0 + ] + } + } + } + }, + { + "new": 967, + "old": 515, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 65, + 4, + 130, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 2, + 2, + 0, + 1, + 0 + ], + "matrix_rows": [ + 8, + 6, + 153, + 9, + 66, + 100, + 128, + 64, + 256 + ], + "offset": 75, + "phase": 1, + "quadratic_rows": [ + 145, + 70, + 102, + 16, + 137, + 4, + 6, + 145, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 65, + 4, + 130, + 2, + 5, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 0, + 2, + 2, + 0, + 3, + 0 + ], + "matrix_rows": [ + 8, + 6, + 153, + 9, + 66, + 100, + 128, + 64, + 256 + ], + "offset": 79, + "phase": 1, + "quadratic_rows": [ + 145, + 70, + 102, + 16, + 137, + 4, + 6, + 145, + 0 + ] + } + } + } + }, + { + "new": 914, + "old": 516, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 68, + 1, + 130, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 0, + 0, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 272, + 6, + 281, + 273, + 98, + 68, + 256, + 64, + 128 + ], + "offset": 66, + "phase": 3, + "quadratic_rows": [ + 9, + 102, + 70, + 17, + 264, + 2, + 6, + 0, + 272 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 68, + 1, + 130, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 2, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 272, + 6, + 281, + 273, + 98, + 68, + 256, + 64, + 128 + ], + "offset": 70, + "phase": 1, + "quadratic_rows": [ + 9, + 102, + 70, + 17, + 264, + 2, + 6, + 0, + 272 + ] + } + } + } + }, + { + "new": 968, + "old": 516, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 65, + 4, + 130, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 2, + 2, + 2, + 0, + 0, + 1 + ], + "matrix_rows": [ + 8, + 6, + 281, + 9, + 66, + 100, + 256, + 64, + 128 + ], + "offset": 75, + "phase": 1, + "quadratic_rows": [ + 273, + 70, + 102, + 16, + 265, + 4, + 6, + 0, + 273 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 34, + 65, + 4, + 130, + 2, + 256, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 0, + 2, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 8, + 6, + 281, + 9, + 66, + 100, + 256, + 64, + 128 + ], + "offset": 79, + "phase": 1, + "quadratic_rows": [ + 273, + 70, + 102, + 16, + 265, + 4, + 6, + 0, + 273 + ] + } + } + } + }, + { + "new": 907, + "old": 517, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 17, + 5, + 32, + 65, + 130, + 3, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 3, + 3, + 0, + 3, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 291, + 117, + 337, + 341, + 290, + 56, + 256, + 320, + 384 + ], + "offset": 222, + "phase": 3, + "quadratic_rows": [ + 339, + 3, + 292, + 48, + 345, + 300, + 337, + 0, + 117 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 17, + 5, + 32, + 65, + 130, + 3, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 1, + 0, + 3, + 3, + 1, + 0, + 0 + ], + "matrix_rows": [ + 291, + 117, + 337, + 341, + 290, + 56, + 256, + 320, + 384 + ], + "offset": 221, + "phase": 2, + "quadratic_rows": [ + 339, + 3, + 292, + 48, + 345, + 300, + 337, + 0, + 117 + ] + } + } + } + }, + { + "new": 969, + "old": 517, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 3, + 17, + 32, + 65, + 133, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 3, + 0, + 1, + 0, + 3, + 0, + 1 + ], + "matrix_rows": [ + 293, + 113, + 339, + 115, + 292, + 56, + 256, + 320, + 384 + ], + "offset": 208, + "phase": 0, + "quadratic_rows": [ + 117, + 290, + 5, + 48, + 121, + 347, + 113, + 0, + 290 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 15, + 3, + 17, + 32, + 65, + 133, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 6, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 1, + 1, + 0, + 1, + 2, + 3, + 0, + 3 + ], + "matrix_rows": [ + 293, + 113, + 339, + 115, + 292, + 56, + 256, + 320, + 384 + ], + "offset": 213, + "phase": 3, + "quadratic_rows": [ + 117, + 290, + 5, + 48, + 121, + 347, + 113, + 0, + 290 + ] + } + } + } + }, + { + "new": 908, + "old": 518, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 32, + 64, + 133, + 4, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 16, + 258, + 97, + 17, + 256, + 4, + 56, + 64, + 384 + ], + "offset": 203, + "phase": 0, + "quadratic_rows": [ + 113, + 0, + 0, + 48, + 105, + 121, + 113, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 18, + 32, + 64, + 133, + 4, + 1, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 2, + 0, + 3, + 3, + 0, + 2 + ], + "matrix_rows": [ + 16, + 258, + 97, + 17, + 256, + 4, + 56, + 64, + 384 + ], + "offset": 205, + "phase": 1, + "quadratic_rows": [ + 113, + 0, + 0, + 48, + 105, + 121, + 113, + 0, + 0 + ] + } + } + } + }, + { + "new": 970, + "old": 518, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 34, + 64, + 133, + 1, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 2, + 2, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 112, + 260, + 97, + 113, + 2, + 256, + 56, + 64, + 384 + ], + "offset": 203, + "phase": 0, + "quadratic_rows": [ + 17, + 0, + 0, + 48, + 105, + 120, + 112, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 12, + 16, + 34, + 64, + 133, + 1, + 4, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 112, + 260, + 97, + 113, + 2, + 256, + 56, + 64, + 384 + ], + "offset": 205, + "phase": 1, + "quadratic_rows": [ + 17, + 0, + 0, + 48, + 105, + 120, + 112, + 0, + 0 + ] + } + } + } + }, + { + "new": 305, + "old": 626, + "rank": 1, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 2, + 5, + 9, + 16, + 32, + 65, + 129, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 0, + 3, + 2, + 3, + 0 + ], + "matrix_rows": [ + 230, + 1, + 322, + 324, + 8, + 16, + 288, + 256, + 384 + ], + "offset": 141, + "phase": 1, + "quadratic_rows": [ + 0, + 422, + 422, + 0, + 0, + 486, + 416, + 486, + 230 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 2, + 5, + 9, + 16, + 32, + 65, + 129, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 0, + 3, + 0, + 3, + 0 + ], + "matrix_rows": [ + 230, + 1, + 322, + 324, + 8, + 16, + 288, + 256, + 384 + ], + "offset": 141, + "phase": 0, + "quadratic_rows": [ + 0, + 422, + 422, + 0, + 0, + 486, + 416, + 486, + 230 + ] + } + } + } + }, + { + "new": 303, + "old": 629, + "rank": 1, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 2, + 4, + 9, + 17, + 32, + 1, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 1, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 44, + 1, + 2, + 36, + 40, + 16, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 2, + 4, + 9, + 17, + 32, + 1, + 64, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 3, + 0, + 2, + 0, + 0, + 0 + ], + "matrix_rows": [ + 44, + 1, + 2, + 36, + 40, + 16, + 64, + 128, + 256 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 304, + "old": 634, + "rank": 1, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 3, + 4, + 8, + 16, + 32, + 64, + 129, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 3, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0 + ], + "matrix_rows": [ + 129, + 193, + 66, + 4, + 72, + 16, + 32, + 128, + 256 + ], + "offset": 1, + "phase": 0, + "quadratic_rows": [ + 65, + 64, + 0, + 64, + 0, + 0, + 11, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 3, + 4, + 8, + 16, + 32, + 64, + 129, + 1, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 1, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 0 + ], + "matrix_rows": [ + 129, + 193, + 66, + 4, + 72, + 16, + 32, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 65, + 64, + 0, + 64, + 0, + 0, + 11, + 0, + 0 + ] + } + } + } + }, + { + "new": 305, + "old": 798, + "rank": 1, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 2, + 5, + 9, + 16, + 32, + 64, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 0, + 1, + 1, + 0, + 0, + 0, + 2, + 0, + 0 + ], + "matrix_rows": [ + 70, + 1, + 66, + 68, + 8, + 16, + 32, + 128, + 256 + ], + "offset": 0, + "phase": 3, + "quadratic_rows": [ + 0, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 2, + 5, + 9, + 16, + 32, + 64, + 1, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 1, + "right": { + "linear_Z4": [ + 0, + 3, + 3, + 0, + 0, + 0, + 2, + 0, + 0 + ], + "matrix_rows": [ + 70, + 1, + 66, + 68, + 8, + 16, + 32, + 128, + 256 + ], + "offset": 1, + "phase": 1, + "quadratic_rows": [ + 0, + 6, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 885, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 66, + 130, + 258, + 2, + 4, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 257, + 8, + 384, + 256, + 2, + 260, + 64, + 80, + 96 + ], + "offset": 72, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 0, + 64, + 0, + 0, + 8, + 256, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 66, + 130, + 258, + 2, + 4, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 257, + 8, + 384, + 256, + 2, + 260, + 64, + 80, + 96 + ], + "offset": 73, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 0, + 64, + 0, + 0, + 8, + 256, + 384 + ] + } + } + } + }, + { + "new": 1, + "old": 886, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 65, + 130, + 257, + 2, + 4, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0 + ], + "matrix_rows": [ + 264, + 272, + 384, + 1, + 2, + 4, + 320, + 64, + 352 + ], + "offset": 192, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 0, + 64, + 320, + 0, + 24, + 256, + 144 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 65, + 130, + 257, + 2, + 4, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 264, + 272, + 384, + 1, + 2, + 4, + 320, + 64, + 352 + ], + "offset": 195, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 64, + 320, + 0, + 24, + 256, + 144 + ] + } + } + } + }, + { + "new": 1, + "old": 887, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 66, + 132, + 258, + 4, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 136, + 272, + 320, + 2, + 324, + 128, + 64, + 160 + ], + "offset": 224, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 0, + 0, + 320, + 0, + 17, + 0, + 272 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 66, + 132, + 258, + 4, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1 + ], + "matrix_rows": [ + 257, + 136, + 272, + 320, + 2, + 324, + 128, + 64, + 160 + ], + "offset": 231, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 0, + 0, + 320, + 0, + 17, + 0, + 272 + ] + } + } + } + }, + { + "new": 1, + "old": 888, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 66, + 132, + 258, + 4, + 5, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 264, + 144, + 192, + 2, + 196, + 256, + 64, + 288 + ], + "offset": 224, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 0, + 0, + 192, + 0, + 17, + 144, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 66, + 132, + 258, + 4, + 5, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 129, + 264, + 144, + 192, + 2, + 196, + 256, + 64, + 288 + ], + "offset": 231, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 0, + 0, + 192, + 0, + 17, + 144, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 901, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 68, + 4, + 133, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 82, + 260, + 8, + 1, + 80, + 256, + 16, + 96, + 384 + ], + "offset": 97, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 0, + 16, + 8, + 0, + 0, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 34, + 68, + 4, + 133, + 5, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 82, + 260, + 8, + 1, + 80, + 256, + 16, + 96, + 384 + ], + "offset": 98, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 0, + 16, + 8, + 0, + 0, + 0, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 902, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 34, + 68, + 133, + 6, + 7, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 0, + 0, + 1, + 1, + 0, + 1 + ], + "matrix_rows": [ + 353, + 98, + 8, + 96, + 256, + 260, + 288, + 336, + 384 + ], + "offset": 30, + "phase": 1, + "quadratic_rows": [ + 256, + 352, + 0, + 288, + 0, + 106, + 98, + 0, + 267 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 34, + 68, + 133, + 6, + 7, + 258, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 3, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 3 + ], + "matrix_rows": [ + 353, + 98, + 8, + 96, + 256, + 260, + 288, + 336, + 384 + ], + "offset": 31, + "phase": 1, + "quadratic_rows": [ + 256, + 352, + 0, + 288, + 0, + 106, + 98, + 0, + 267 + ] + } + } + } + }, + { + "new": 1, + "old": 909, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 64, + 129, + 258, + 4, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 130, + 260, + 320, + 128, + 64, + 8, + 336, + 160 + ], + "offset": 176, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 320, + 0, + 0, + 0, + 5, + 0, + 260 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 64, + 129, + 258, + 4, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 1 + ], + "matrix_rows": [ + 257, + 130, + 260, + 320, + 128, + 64, + 8, + 336, + 160 + ], + "offset": 183, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 320, + 0, + 0, + 0, + 5, + 0, + 260 + ] + } + } + } + }, + { + "new": 1, + "old": 910, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 64, + 129, + 258, + 4, + 5, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 258, + 132, + 192, + 256, + 64, + 8, + 208, + 288 + ], + "offset": 176, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 192, + 0, + 0, + 0, + 5, + 132, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 64, + 129, + 258, + 4, + 5, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 2 + ], + "matrix_rows": [ + 129, + 258, + 132, + 192, + 256, + 64, + 8, + 208, + 288 + ], + "offset": 183, + "phase": 0, + "quadratic_rows": [ + 64, + 0, + 192, + 0, + 0, + 0, + 5, + 132, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 918, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 34, + 68, + 135, + 5, + 6, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 2 + ], + "matrix_rows": [ + 353, + 100, + 8, + 256, + 258, + 352, + 288, + 336, + 384 + ], + "offset": 45, + "phase": 1, + "quadratic_rows": [ + 96, + 0, + 256, + 288, + 0, + 361, + 353, + 0, + 108 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 34, + 68, + 135, + 5, + 6, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 2, + 0, + 1, + 1, + 0, + 0 + ], + "matrix_rows": [ + 353, + 100, + 8, + 256, + 258, + 352, + 288, + 336, + 384 + ], + "offset": 47, + "phase": 1, + "quadratic_rows": [ + 96, + 0, + 256, + 288, + 0, + 361, + 353, + 0, + 108 + ] + } + } + } + }, + { + "new": 279, + "old": 921, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 39, + 68, + 6, + 129, + 3, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 1, + 2, + 1, + 0, + 3, + 0, + 2 + ], + "matrix_rows": [ + 341, + 6, + 92, + 256, + 320, + 276, + 336, + 288, + 384 + ], + "offset": 237, + "phase": 3, + "quadratic_rows": [ + 84, + 324, + 31, + 260, + 341, + 0, + 339, + 0, + 90 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 39, + 68, + 6, + 129, + 3, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 5, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 2, + 1, + 0, + 3, + 0, + 0 + ], + "matrix_rows": [ + 341, + 6, + 92, + 256, + 320, + 276, + 336, + 288, + 384 + ], + "offset": 233, + "phase": 1, + "quadratic_rows": [ + 84, + 324, + 31, + 260, + 341, + 0, + 339, + 0, + 90 + ] + } + } + } + }, + { + "new": 279, + "old": 922, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 38, + 64, + 130, + 4, + 6, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 257, + 38, + 4, + 256, + 64, + 100, + 8, + 80, + 384 + ], + "offset": 184, + "phase": 1, + "quadratic_rows": [ + 0, + 100, + 66, + 0, + 0, + 98, + 38, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 38, + 64, + 130, + 4, + 6, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 0, + 0, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 257, + 38, + 4, + 256, + 64, + 100, + 8, + 80, + 384 + ], + "offset": 189, + "phase": 2, + "quadratic_rows": [ + 0, + 100, + 66, + 0, + 0, + 98, + 38, + 0, + 0 + ] + } + } + } + }, + { + "new": 281, + "old": 923, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 38, + 66, + 2, + 132, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 1, + 1, + 0, + 1, + 0, + 2 + ], + "matrix_rows": [ + 257, + 84, + 124, + 256, + 2, + 92, + 16, + 64, + 384 + ], + "offset": 14, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 112, + 56, + 124, + 28, + 84, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 38, + 66, + 2, + 132, + 4, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 0, + 4, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 3, + 0, + 3, + 0, + 2 + ], + "matrix_rows": [ + 257, + 84, + 124, + 256, + 2, + 92, + 16, + 64, + 384 + ], + "offset": 9, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 112, + 56, + 124, + 28, + 84, + 0, + 0 + ] + } + } + } + }, + { + "new": 281, + "old": 924, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 68, + 134, + 7, + 5, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 3, + 2, + 0, + 1, + 3, + 0, + 3 + ], + "matrix_rows": [ + 109, + 354, + 8, + 256, + 96, + 268, + 320, + 304, + 384 + ], + "offset": 137, + "phase": 0, + "quadratic_rows": [ + 364, + 256, + 357, + 33, + 0, + 109, + 101, + 0, + 263 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 68, + 134, + 7, + 5, + 257, + 1 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 3, + 1, + 4, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 3, + 2, + 0, + 1, + 3, + 0, + 1 + ], + "matrix_rows": [ + 109, + 354, + 8, + 256, + 96, + 268, + 320, + 304, + 384 + ], + "offset": 139, + "phase": 0, + "quadratic_rows": [ + 364, + 256, + 357, + 33, + 0, + 109, + 101, + 0, + 263 + ] + } + } + } + }, + { + "new": 1, + "old": 925, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 66, + 132, + 256, + 1, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 130, + 260, + 64, + 128, + 320, + 136, + 336, + 32 + ], + "offset": 152, + "phase": 0, + "quadratic_rows": [ + 320, + 0, + 64, + 0, + 0, + 0, + 5, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 66, + 132, + 256, + 1, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1 + ], + "matrix_rows": [ + 257, + 130, + 260, + 64, + 128, + 320, + 136, + 336, + 32 + ], + "offset": 159, + "phase": 0, + "quadratic_rows": [ + 320, + 0, + 64, + 0, + 0, + 0, + 5, + 0, + 257 + ] + } + } + } + }, + { + "new": 280, + "old": 929, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 19, + 37, + 67, + 133, + 1, + 256, + 3, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 1, + 0, + 0, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 129, + 130, + 260, + 39, + 128, + 256, + 136, + 272, + 64 + ], + "offset": 97, + "phase": 0, + "quadratic_rows": [ + 167, + 39, + 39, + 0, + 0, + 7, + 0, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 19, + 37, + 67, + 133, + 1, + 256, + 3, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 0, + 0, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 130, + 260, + 39, + 128, + 256, + 136, + 272, + 64 + ], + "offset": 102, + "phase": 0, + "quadratic_rows": [ + 167, + 39, + 39, + 0, + 0, + 7, + 0, + 129, + 0 + ] + } + } + } + }, + { + "new": 280, + "old": 930, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 19, + 37, + 67, + 133, + 1, + 256, + 4, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 3, + 3, + 1, + 0, + 0, + 2, + 0, + 2, + 1 + ], + "matrix_rows": [ + 257, + 258, + 132, + 39, + 256, + 128, + 264, + 144, + 64 + ], + "offset": 97, + "phase": 0, + "quadratic_rows": [ + 295, + 39, + 39, + 0, + 0, + 7, + 0, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 19, + 37, + 67, + 133, + 1, + 256, + 4, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 1, + 1, + 3, + 0, + 0, + 2, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 258, + 132, + 39, + 256, + 128, + 264, + 144, + 64 + ], + "offset": 102, + "phase": 0, + "quadratic_rows": [ + 295, + 39, + 39, + 0, + 0, + 7, + 0, + 0, + 257 + ] + } + } + } + }, + { + "new": 279, + "old": 931, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 66, + 128, + 257, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 0, + 0, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 5, + 258, + 384, + 64, + 256, + 68, + 264, + 16, + 96 + ], + "offset": 312, + "phase": 1, + "quadratic_rows": [ + 68, + 0, + 69, + 0, + 0, + 0, + 5, + 256, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 33, + 66, + 128, + 257, + 1, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 3, + 0, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 5, + 258, + 384, + 64, + 256, + 68, + 264, + 16, + 96 + ], + "offset": 314, + "phase": 1, + "quadratic_rows": [ + 68, + 0, + 69, + 0, + 0, + 0, + 5, + 256, + 384 + ] + } + } + } + }, + { + "new": 279, + "old": 932, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 34, + 64, + 128, + 258, + 1, + 4, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 0, + 0, + 2, + 2, + 2, + 0 + ], + "matrix_rows": [ + 257, + 260, + 384, + 64, + 2, + 356, + 8, + 16, + 320 + ], + "offset": 10, + "phase": 3, + "quadratic_rows": [ + 320, + 0, + 100, + 0, + 0, + 4, + 5, + 256, + 129 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 34, + 64, + 128, + 258, + 1, + 4, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 0, + 0, + 2, + 2, + 0, + 2 + ], + "matrix_rows": [ + 257, + 260, + 384, + 64, + 2, + 356, + 8, + 16, + 320 + ], + "offset": 9, + "phase": 0, + "quadratic_rows": [ + 320, + 0, + 100, + 0, + 0, + 4, + 5, + 256, + 129 + ] + } + } + } + }, + { + "new": 279, + "old": 953, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 68, + 7, + 132, + 6, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 3, + 0, + 1, + 0, + 1 + ], + "matrix_rows": [ + 341, + 6, + 88, + 80, + 320, + 276, + 256, + 288, + 384 + ], + "offset": 224, + "phase": 0, + "quadratic_rows": [ + 260, + 324, + 67, + 336, + 88, + 0, + 94, + 0, + 267 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 68, + 7, + 132, + 6, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 3, + 0, + 1, + 0, + 3 + ], + "matrix_rows": [ + 341, + 6, + 88, + 80, + 320, + 276, + 256, + 288, + 384 + ], + "offset": 225, + "phase": 2, + "quadratic_rows": [ + 260, + 324, + 67, + 336, + 88, + 0, + 94, + 0, + 267 + ] + } + } + } + }, + { + "new": 279, + "old": 954, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 130, + 3, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 0, + 2, + 1, + 2, + 0, + 2 + ], + "matrix_rows": [ + 54, + 48, + 264, + 1, + 96, + 116, + 256, + 64, + 384 + ], + "offset": 82, + "phase": 0, + "quadratic_rows": [ + 0, + 84, + 70, + 0, + 34, + 48, + 6, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 17, + 33, + 68, + 130, + 3, + 2, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 3, + 0, + 2, + 3, + 2, + 0, + 2 + ], + "matrix_rows": [ + 54, + 48, + 264, + 1, + 96, + 116, + 256, + 64, + 384 + ], + "offset": 85, + "phase": 0, + "quadratic_rows": [ + 0, + 84, + 70, + 0, + 34, + 48, + 6, + 0, + 0 + ] + } + } + } + }, + { + "new": 279, + "old": 955, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 2, + 131, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 1, + 0, + 2, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 21, + 16, + 264, + 64, + 2, + 84, + 256, + 96, + 384 + ], + "offset": 74, + "phase": 0, + "quadratic_rows": [ + 84, + 0, + 69, + 0, + 65, + 0, + 21, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 16, + 33, + 68, + 2, + 131, + 3, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 1, + 0, + 0, + 0, + 2, + 0, + 2 + ], + "matrix_rows": [ + 21, + 16, + 264, + 64, + 2, + 84, + 256, + 96, + 384 + ], + "offset": 76, + "phase": 3, + "quadratic_rows": [ + 84, + 0, + 69, + 0, + 65, + 0, + 21, + 0, + 0 + ] + } + } + } + }, + { + "new": 279, + "old": 956, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 68, + 132, + 7, + 5, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 3, + 1, + 0, + 1 + ], + "matrix_rows": [ + 5, + 358, + 104, + 320, + 96, + 292, + 256, + 272, + 384 + ], + "offset": 224, + "phase": 0, + "quadratic_rows": [ + 324, + 260, + 67, + 352, + 0, + 104, + 109, + 0, + 267 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 35, + 68, + 132, + 7, + 5, + 260, + 4 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 2, + 2, + 0, + 3, + 1, + 0, + 3 + ], + "matrix_rows": [ + 5, + 358, + 104, + 320, + 96, + 292, + 256, + 272, + 384 + ], + "offset": 226, + "phase": 2, + "quadratic_rows": [ + 324, + 260, + 67, + 352, + 0, + 104, + 109, + 0, + 267 + ] + } + } + } + }, + { + "new": 280, + "old": 961, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 69, + 129, + 1, + 261, + 5, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 3, + 2, + 0, + 1, + 2 + ], + "matrix_rows": [ + 129, + 281, + 136, + 317, + 2, + 288, + 128, + 32, + 192 + ], + "offset": 387, + "phase": 1, + "quadratic_rows": [ + 164, + 0, + 25, + 36, + 20, + 9, + 0, + 129, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 69, + 129, + 1, + 261, + 5, + 2 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 3, + 2 + ], + "matrix_rows": [ + 129, + 281, + 136, + 317, + 2, + 288, + 128, + 32, + 192 + ], + "offset": 388, + "phase": 3, + "quadratic_rows": [ + 164, + 0, + 25, + 36, + 20, + 9, + 0, + 129, + 0 + ] + } + } + } + }, + { + "new": 280, + "old": 962, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 69, + 129, + 1, + 261, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 3, + 2, + 0, + 2, + 1 + ], + "matrix_rows": [ + 257, + 153, + 264, + 189, + 2, + 160, + 256, + 32, + 320 + ], + "offset": 387, + "phase": 1, + "quadratic_rows": [ + 292, + 0, + 25, + 36, + 20, + 9, + 0, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 11, + 16, + 35, + 69, + 129, + 1, + 261, + 2, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 2, + 2, + 1, + 2, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 153, + 264, + 189, + 2, + 160, + 256, + 32, + 320 + ], + "offset": 388, + "phase": 3, + "quadratic_rows": [ + 292, + 0, + 25, + 36, + 20, + 9, + 0, + 0, + 257 + ] + } + } + } + }, + { + "new": 281, + "old": 963, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 66, + 130, + 258, + 2, + 4, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 0, + 0, + 2, + 2, + 3 + ], + "matrix_rows": [ + 257, + 8, + 384, + 256, + 258, + 12, + 64, + 80, + 96 + ], + "offset": 488, + "phase": 2, + "quadratic_rows": [ + 0, + 0, + 8, + 76, + 0, + 0, + 8, + 256, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 32, + 66, + 130, + 258, + 2, + 4, + 5 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 4, + 2, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 0, + 0, + 2, + 0, + 3 + ], + "matrix_rows": [ + 257, + 8, + 384, + 256, + 258, + 12, + 64, + 80, + 96 + ], + "offset": 489, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 8, + 76, + 0, + 0, + 8, + 256, + 384 + ] + } + } + } + }, + { + "new": 281, + "old": 964, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 65, + 130, + 258, + 1, + 4, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 3, + 2, + 0, + 0, + 2, + 0 + ], + "matrix_rows": [ + 264, + 272, + 384, + 1, + 2, + 12, + 64, + 320, + 352 + ], + "offset": 352, + "phase": 0, + "quadratic_rows": [ + 0, + 0, + 8, + 332, + 64, + 0, + 24, + 256, + 136 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 8, + 16, + 32, + 65, + 130, + 258, + 1, + 4, + 7 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 6, + 5, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 2, + 1, + 2, + 0, + 0, + 0, + 2 + ], + "matrix_rows": [ + 264, + 272, + 384, + 1, + 2, + 12, + 64, + 320, + 352 + ], + "offset": 355, + "phase": 3, + "quadratic_rows": [ + 0, + 0, + 8, + 332, + 64, + 0, + 24, + 256, + 136 + ] + } + } + } + }, + { + "new": 1, + "old": 973, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 34, + 66, + 129, + 1, + 256, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 2, + 3 + ], + "matrix_rows": [ + 1, + 260, + 384, + 32, + 34, + 256, + 264, + 48, + 64 + ], + "offset": 40, + "phase": 3, + "quadratic_rows": [ + 32, + 0, + 0, + 0, + 0, + 1, + 0, + 256, + 384 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 3, + 2, + 3, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 17, + 34, + 66, + 129, + 1, + 256, + 4, + 6 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 1, + 4, + 6, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 3 + ], + "matrix_rows": [ + 1, + 260, + 384, + 32, + 34, + 256, + 264, + 48, + 64 + ], + "offset": 42, + "phase": 3, + "quadratic_rows": [ + 32, + 0, + 0, + 0, + 0, + 1, + 0, + 256, + 384 + ] + } + } + } + }, + { + "new": 1, + "old": 977, + "rank": 3, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 68, + 130, + 1, + 256, + 4, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 3 + ], + "matrix_rows": [ + 257, + 258, + 132, + 32, + 288, + 128, + 136, + 304, + 64 + ], + "offset": 168, + "phase": 0, + "quadratic_rows": [ + 288, + 32, + 0, + 0, + 0, + 3, + 0, + 0, + 257 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 9, + 18, + 36, + 68, + 130, + 1, + 256, + 4, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 3, + "right": { + "linear_Z4": [ + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2, + 1 + ], + "matrix_rows": [ + 257, + 258, + 132, + 32, + 288, + 128, + 136, + 304, + 64 + ], + "offset": 175, + "phase": 0, + "quadratic_rows": [ + 288, + 32, + 0, + 0, + 0, + 3, + 0, + 0, + 257 + ] + } + } + } + }, + { + "new": 1, + "old": 988, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 16, + 32, + 65, + 2, + 3, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0 + ], + "matrix_rows": [ + 65, + 66, + 96, + 32, + 4, + 8, + 112, + 128, + 256 + ], + "offset": 72, + "phase": 0, + "quadratic_rows": [ + 32, + 96, + 0, + 0, + 0, + 3, + 66, + 0, + 0 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 16, + 32, + 65, + 2, + 3, + 128, + 256 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ], + "matrix_rows": [ + 65, + 66, + 96, + 32, + 4, + 8, + 112, + 128, + 256 + ], + "offset": 75, + "phase": 0, + "quadratic_rows": [ + 32, + 96, + 0, + 0, + 0, + 3, + 66, + 0, + 0 + ] + } + } + } + }, + { + "new": 1, + "old": 996, + "rank": 2, + "recipes": { + "backward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 16, + 32, + 65, + 2, + 128, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3 + ], + "matrix_rows": [ + 257, + 258, + 288, + 32, + 4, + 8, + 304, + 64, + 128 + ], + "offset": 72, + "phase": 0, + "quadratic_rows": [ + 32, + 288, + 0, + 0, + 0, + 3, + 0, + 0, + 258 + ] + } + }, + "forward": { + "left": { + "linear_Z4": [ + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "matrix_rows": [ + 5, + 10, + 16, + 32, + 65, + 2, + 128, + 256, + 3 + ], + "offset": 0, + "phase": 0, + "quadratic_rows": [ + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "rank": 2, + "right": { + "linear_Z4": [ + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "matrix_rows": [ + 257, + 258, + 288, + 32, + 4, + 8, + 304, + 64, + 128 + ], + "offset": 75, + "phase": 0, + "quadratic_rows": [ + 32, + 288, + 0, + 0, + 0, + 3, + 0, + 0, + 258 + ] + } + } + } + } + ], + "paid": { + "1": 2253, + "2": 515, + "3": 445, + "4": 102, + "5": 40, + "8": 8 + }, + "status": "PASS_RETIMED_BOTH_ORIENTATIONS_ALL_632_COLUMNS" + }, + "retimed_source_head": "ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9", + "retimed_source_sha256": { + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7", + "research/kappa-function-composition/complex/prune_native.py": "f2b37c183a10922eabc8e0436b426a08866430e96bd0adc7e178951c7fbb5257", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39", + "research/kappa-rebuild/complex/native_extensions.py": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3", + "research/kappa-rebuild/complex/power_two_balance.py": "76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424", + "research/kappa-rebuild/complex/rebuild_native.py": "f94c527cc02215de49350d477618188c4c0da48bc8fb05b4e37b24c482cad7d5", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962" + }, + "scalar_contact_frames_retimed": 395, + "schema": "source-bound-retimed-arbitrary-native-supplier/1", + "status": "PASS_ALL_632_INPUTS_BOTH_DIRECTIONS_AND_ALL_RETIMED_HELPER_PHASES", + "whole_helper_boundary_recipes": 408 + }, + "local_supplier_source_sha256": "8542575d046c9488574dbf1ca258bbdc6ff7dc66db778cba3b0027b7b4673653", + "main_contact_checks": 8512, + "native_and_boundary_scalar_allowance": 3385896, + "native_mask": 28633115307, + "native_stage_indices": [ + 0, + 1, + 3, + 5, + 7, + 9, + 11, + 13, + 15, + 17, + 19, + 21, + 23, + 25, + 27, + 29, + 31, + 33, + 34 + ], + "native_stages": 19, + "omitted_direct_inverse_translation_rejected": 112, + "omitted_endpoint_translation_rejected": 1904, + "owned_bank_scope": "Each direct copy persists across its own recursive request and is released after the ADD. Each native invocation retains its original owned center. All nested suspended banks are separately charged.", + "p": 17, + "paid": { + "1": 44599, + "16": 448, + "2": 9785, + "24": 448, + "3": 8455, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 760, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_calls": 69273, + "parameters_sha256": "c12bc02374d8aa5947d15098288394beff52fc417ee5e5c72bd6b0c83f4b1d80", + "productive_fields": 11560, + "productive_main_fields": 3808, + "rank_margin": 800, + "raw_owned_bank_episodes": 1811, + "scalar_allowance": 3500584, + "schema": "complete-source-bound-hybrid-p17-native-inventory/1", + "source_sha256": { + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "research/kappa-rebuild/transfer-audit/p3_native_audit.py": "5504a55a50546418d10c522984438cdeedb44993f7c1dab7bd4aa1ae0515d902" + }, + "status": "PASS_RETIMED_SUPPLIER_AND_ALL_HYBRID_CONTROLLER_PHASES", + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 494, + "41": 448, + "49": 448, + "5": 38, + "57": 448, + "65": 448, + "7": 551, + "73": 448, + "8": 798, + "9": 5871 + }, + "whole_idle_profile": { + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + }, + "wrong_direct_orientation_rejected": true + }, + "new_max_target_encoding": "153^17160", + "new_min_target_encoding": "19^17160", + "normalized_moment_upper_rational": "262144250000429/262144449839104", + "paid": { + "1": 44599, + "16": 448, + "2": 9785, + "24": 448, + "3": 8455, + "32": 448, + "4": 1938, + "40": 448, + "48": 448, + "5": 760, + "56": 448, + "64": 448, + "72": 448, + "8": 152 + }, + "paid_rank_one_moment": 259998, + "parameters_sha256": "c12bc02374d8aa5947d15098288394beff52fc417ee5e5c72bd6b0c83f4b1d80", + "productive_fields": 11560, + "rank_one_surplus_encoding": "260798^17160-259998^17160", + "schema": "hybrid-p17-paid-completion-certificate/1", + "scope": "Exact moment bounds for the documented chronological native product, paid target completion and disjoint splitting. Native all-column, precision, storage, analytic and fixed-tape premises remain separate; no full multiplication theorem is formally verified.", + "source_sha256": { + "research/kappa-rebuild/architecture/mixed_target_probe.py": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + "status": "PASS_EXACT_HYBRID_P17_TARGET_COMPLETION_STRICTIFICATION", + "strict_moment_verified": true, + "strictification_gap": { + "lower": "0.00000076232273894280302102501592107", + "upper": "0.00000076232273894280302102501592108" + }, + "strictification_gap_rational": "199838675/262144449839104", + "target_floor_base": 19, + "target_floor_encoding": "19^17160", + "target_rank_one_moment": 260798, + "targets": { + "153": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 494, + "41": 448, + "49": 448, + "5": 38, + "57": 448, + "65": 448, + "7": 551, + "73": 448, + "8": 798, + "9": 5871 + }, + "tested_saving": "1500527/500000000", + "theta_upper": "54/55" + } +} diff --git a/research/kappa-hybrid-controller/SOURCES.json b/research/kappa-hybrid-controller/SOURCES.json new file mode 100644 index 0000000000..9ddacdc0b2 --- /dev/null +++ b/research/kappa-hybrid-controller/SOURCES.json @@ -0,0 +1,332 @@ +{ + "schema_version": 1, + "base_commit": "2a13eb1827784206202db90e5dc8327cf8a250db", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ed33caef5c5827693e9572d252a66f99cbb73d40", + "sha256": "5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "64bfc5af6709ed9811171e0a2108f05e1219cb65", + "sha256": "352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96" + }, + { + "path": "notes/copied-centers-lemma.tex", + "usage": "input", + "git_blob": "8933aaf508aa9d4c75ba1290913e02f6868d351d", + "sha256": "d0ce6d3d504996aadb098227885224e48df46101daec8893523a0a8b7364d8fe" + }, + { + "path": "notes/three-stage-cover-bit.tex", + "usage": "input", + "git_blob": "f05225d21f92cf8cef21b6e12601d5b4d61991f0", + "sha256": "47123a756f823c83a0d48cca2bf5add6472cd88410b13aed345e70c8834fb511" + }, + { + "path": "notes/three-stage-cover-rows.tex", + "usage": "input", + "git_blob": "590da4b892a08b9d5182fb3d8a983c6239dd27db", + "sha256": "6ad97a5cd7d6aecf978a81226e1c2763d37840caca130c61f3bf5c4ac111c5c8" + }, + { + "path": "research/e8-bit-carrier-skeleton/code/nine/geometry.py", + "usage": "input", + "git_blob": "91594e0223e8fac49162b5aef834ffaa8e94a254", + "sha256": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca" + }, + { + "path": "research/fresh-helper-boundary/CHANGES.json", + "usage": "input", + "git_blob": "45744fedd0e28967aa72586048b8bc0c72f419a9", + "sha256": "cde73b8ff5b3c0d06e69e2293b991b24fd14a16dd4ccab7ff6b3439074a94624", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/CHANGES.json" + }, + { + "path": "research/fresh-helper-boundary/NATIVE-RESULT.json.gz", + "usage": "input", + "git_blob": "e6fdb31624e4eb8c7c770bb4422cd07ea99ab152", + "sha256": "37d0848458b289eb50271c47adef6e74014ae30be6363d09394b2337b566b839", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/NATIVE-RESULT.json.gz" + }, + { + "path": "research/fresh-helper-boundary/native.py", + "usage": "input", + "git_blob": "1b36f6cb5f205c33bf48811e0b1b3621c55e8154", + "sha256": "9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29", + "pin": "head:ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9:research/fresh-helper-boundary/native.py" + }, + { + "path": "research/fresh-helper-thinned/PROOF.md", + "git_blob": "bf68dc2b987cb7de6431ff5e3514b60af48720a5", + "sha256": "9883b3329fef7624d3471e27bb55258cd9dc18bb6d37779a3939de99add87347", + "pin": "head:5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39:research/fresh-helper-thinned/PROOF.md", + "usage": "input" + }, + { + "path": "research/fresh-helper-thinned/README.md", + "git_blob": "344616d6654a96085dd45cf2c3189ef283deeac1", + "sha256": "70c1c872c2327c3f71918e218d5f1ecb7a00037771a5dd1b8ae415b84cc90dc2", + "pin": "head:5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39:research/fresh-helper-thinned/README.md", + "usage": "input" + }, + { + "path": "research/fresh-helper-thinned/RESULT.json", + "git_blob": "e223acd07a6b1f4f1c9f2778b8ea64d4b7a2be55", + "sha256": "8e7db2fed5f4be6a7f944bc59e7942ccbcc3e6c36130b5671331540c183ada21", + "pin": "head:5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39:research/fresh-helper-thinned/RESULT.json", + "usage": "input" + }, + { + "path": "research/fresh-helper-thinned/verify.py", + "git_blob": "9ba85a59aa5dcc5cdaec85ee18607cb050530c55", + "sha256": "c841265ccee9b6f79045ad818ce9d27cfd7ee1f60047525a75d491f0dd8b997a", + "pin": "head:5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39:research/fresh-helper-thinned/verify.py", + "usage": "input" + }, + { + "path": "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "usage": "input", + "git_blob": "8b40135a84e7f0f0cd44bed69655801310b916a7", + "sha256": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85" + }, + { + "path": "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "usage": "input", + "git_blob": "5a55034ec9e6185d981e16c28e1e2e455069e2cb", + "sha256": "106b4d5e052427230df452f0c901d5390a0583782960b80a8af94d9a984022c7" + }, + { + "path": "research/kappa-function-composition/complex/prune_native.py", + "usage": "input", + "git_blob": "8c3e11b2408fa96eefa3ebe7952d1b11b90b772b", + "sha256": "f2b37c183a10922eabc8e0436b426a08866430e96bd0adc7e178951c7fbb5257" + }, + { + "path": "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "usage": "input", + "git_blob": "a58774e237c9362869a60a22bda35be09fb85872", + "sha256": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443" + }, + { + "path": "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "usage": "input", + "git_blob": "6a139eedbc1015c13df6f2a4333e1a89b5edd18d", + "sha256": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf" + }, + { + "path": "research/kappa-rebuild/bit/bit_native_binding.py", + "usage": "input", + "git_blob": "f4c4082d89969ea311219d9af8013082d599f6f1", + "sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7" + }, + { + "path": "research/kappa-rebuild/bit/mixed_productive_bit.py", + "usage": "input", + "git_blob": "9c7a8bd5d3ae4c19952648c815031858d6627b96", + "sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + { + "path": "research/kappa-rebuild/bit/sources/pr589-regenerated/WORD.json.gz", + "usage": "input", + "git_blob": "85a4499bf9e4911a705d50567a2c2ef6cf23739a", + "sha256": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f" + }, + { + "path": "research/kappa-rebuild/bit/sources/pr589-regenerated/records/249-records.bin", + "usage": "input", + "git_blob": "bdf9ab4ca0fd74cde6837f95f5f4e88133704e0e", + "sha256": "ea44aa047a2a9cf034de8b56b2166c49cf2dbdf9cd9ed6a20299a4f2b05ef09a" + }, + { + "path": "research/kappa-rebuild/bit/sources/pr589-regenerated/records/frames.json", + "usage": "input", + "git_blob": "a9a932b9268da28af9ba4bccdab205c5bcd50ad3", + "sha256": "d006b3bfe0c04afecfea7aecfa59dfe4298b99501c70da3938e40289bc2f5010" + }, + { + "path": "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "usage": "input", + "git_blob": "4a8c4ed26e53a72362d571c972e65aff546be784", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61" + }, + { + "path": "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "usage": "input", + "git_blob": "b46d44c6ee624968dd57be928b0c15d9d45f3b2c", + "sha256": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39" + }, + { + "path": "research/kappa-rebuild/complex/native_extensions.py", + "usage": "input", + "git_blob": "7f84894efc309546a903d314c7ac1473e7f594a8", + "sha256": "50ad007d9c386393657e86c99a96ae0a63a8fbc52872579b185002cc626e88e3" + }, + { + "path": "research/kappa-rebuild/complex/power_two_balance.py", + "usage": "input", + "git_blob": "a55ae0ce78a1861965f899a82604b276260f636c", + "sha256": "76929bb3887911ccf100c4593574b8a1c82ee64e96f939a8aca196869438b424" + }, + { + "path": "research/kappa-rebuild/complex/rebuild_native.py", + "usage": "input", + "git_blob": "78a7b1b0e6e43a1347fb361f45c6e0eaff8dd27b", + "sha256": "f94c527cc02215de49350d477618188c4c0da48bc8fb05b4e37b24c482cad7d5" + }, + { + "path": "research/pr4359-p7-padding/EXPORTED-SOURCES.json", + "usage": "input", + "git_blob": "439a06e9bcbf44fc7b1e95ae2e005e0c21d0c15b", + "sha256": "0305d4730e2dfede834a241099aa6ceeee29444f305dfeb25ae9a1bb8b2df0b6" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/template_bound.py", + "usage": "input", + "git_blob": "ddc852c4fa2bb0739af01cdac6dd65e0c049f756", + "sha256": "25d409726cd867f7584fbd52e1b846335debdab42d24377e00c5653aaf12c0fb" + }, + { + "path": "research/pr4359-p7-padding/dependencies/tensor-strictification/native_inventory.py", + "usage": "input", + "git_blob": "417fefe5fb13e695bb5c551ac98be422b93b0258", + "sha256": "e1ba009d546981e75f0e6468723b9af4c065f5eb6e08390084fbbf9a579cedf1" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "usage": "input", + "git_blob": "8b40135a84e7f0f0cd44bed69655801310b916a7", + "sha256": "8a0de761642d21919e969475c3f13e5d01a4bae7343c1e1f37c586d94b676a85" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "usage": "input", + "git_blob": "d9a4f84211182ca200c081ea061d724c8a2cfb70", + "sha256": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "usage": "input", + "git_blob": "4badb40f0919c515823cb07e44c6470d4d6469ca", + "sha256": "4cb32f6b8e388ecf6ed41b5bbdeeb4539cb40c8424f194974afea58f7e0921e8" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/identity_mixed_certificate.py", + "usage": "input", + "git_blob": "f4b51b358eff3cc43ea200503d16e7b75f67c7bc", + "sha256": "e1795294fa4d3100352bfda787ecb1efc2468ff11cbcbaca2476eb642b8d2a0a" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/mixed_forest_search.py", + "usage": "input", + "git_blob": "9b5213bf3f164664a36f81592740801f79b3c97d", + "sha256": "2dcec76840b437c67125af5b6d3529577f8c38851c792d0ffd9fa928c473e23b" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "usage": "input", + "git_blob": "fbe6da7241357d89cf5c55b2e7ce2d0d046be32a", + "sha256": "edb273f59a27356ad89f38791590c3c806b228c3510eb508e01e89f2caba95ef" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/complex_controller_factor.py", + "usage": "input", + "git_blob": "cb0cff7c8be5f38f2ee52201d9d0907f9dfd7947", + "sha256": "1de9aaf918e6a4f2f5448754c1f3c3da3b85e6257849ebd097af09859c4e5497" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/mixed_productive_bit.py", + "usage": "input", + "git_blob": "9c7a8bd5d3ae4c19952648c815031858d6627b96", + "sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/fresh-certificates/THREE-base-HELPER-BOUNDARIES.json.gz", + "usage": "input", + "git_blob": "1dae5193bad6e7467eb13434fd1a2e971f2a4cba", + "sha256": "f90517e395bde58c72cacd5d3481c4ea31d459fe4535384ac16547ac40460555" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "usage": "input", + "git_blob": "c6edcbdc43bf36bb11201235027d0ec170d07fc8", + "sha256": "943d5fad2fc529f470df05a35446e07ecaef7344abfce450d2c2eb2c9b3798f6" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "usage": "input", + "git_blob": "4a8c4ed26e53a72362d571c972e65aff546be784", + "sha256": "6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "usage": "input", + "git_blob": "b46d44c6ee624968dd57be928b0c15d9d45f3b2c", + "sha256": "c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full_identity_rebuild.py", + "usage": "input", + "git_blob": "7cff9bff0f61e9b387ade5128dfeab9265efe6d9", + "sha256": "9af2ffbb0038c92e2a7d281081b0daaeadce75b11b566e5427845dc1af91e33d" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/controller/P3-NATIVE-COVER.json.gz", + "usage": "input", + "git_blob": "51a09b3952a491f06780bf6ce5f69b385f026b21", + "sha256": "facfc6d6ecde151afb7e6a167776f3fdaac1c816e785a21a39f7f0bfd9140f3f" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/controller/p3_native_cover.py", + "usage": "input", + "git_blob": "8756693610a8dc8352629d8270cb4c6aed087cb8", + "sha256": "fae71fcbbd20b9ee73b049cf6f43ea1d048217fb15feb6055a007e47da3363fe" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md", + "usage": "input", + "git_blob": "9917ac5543608047fd368e5e75f0851310f53584", + "sha256": "3f8508c63862dd83968bd30df91b08ba5afcee1e10db15ca546cdff0caef95d9" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/OUTER-TRANSFER-AUDIT.md", + "usage": "input", + "git_blob": "e8b7ef8956ece5bd493cbf52113916e5dc288535", + "sha256": "67569961d068633c6ff3ac9dfde47a0c17f0da6d20432799dcc920cff92b5779" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/p3_cover_audit.py", + "usage": "input", + "git_blob": "d9b44b662a3cfdbc634222590acd9098eb92b9df", + "sha256": "a0fe9a26f77556e83b31b0c91fea909d6f3d8209d0f9f7ad4e5bc1375d33615e" + }, + { + "path": "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/p3_native_audit.py", + "usage": "input", + "git_blob": "0f3a4067a4b4e20d0e6ca0f84f41851c5168f76d", + "sha256": "5504a55a50546418d10c522984438cdeedb44993f7c1dab7bd4aa1ae0515d902" + }, + { + "path": "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "usage": "input", + "git_blob": "166841a037f069249f6f7f6dedb89248812f59e2", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "vendored_path": "research/kappa-hybrid-controller/dependencies/clifford_exact.py" + } + ] +} diff --git a/research/kappa-hybrid-controller/TASK.json b/research/kappa-hybrid-controller/TASK.json new file mode 100644 index 0000000000..45272fe19f --- /dev/null +++ b/research/kappa-hybrid-controller/TASK.json @@ -0,0 +1,108 @@ +{ + "schema_version": 1, + "task_id": "supplier-boundary-audit", + "priority_revision": 7, + "base_commit": "2a13eb1827784206202db90e5dc8327cf8a250db", + "original_card": { + "id": "supplier-boundary-audit", + "question": "Can the #4088 four-provider dispatch satisfy the complete ordinary/outer admission contract?", + "starting_points": [ + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "research/staged544-mixed-fourth-entry/README.md", + "research/scatter-boundary-decision/README.md" + ], + "methods": [ + "Trace one hypothesis through the source, checker and complete caller.", + "Construct one semantically invalid but superficially well-formed fixture and test rejection." + ], + "acceptance_gate": "Pin the current sources and one obligation; the historical owner audit is an example, not evidence of a current bug.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #4088 Scope and Open next questions: local words, native receipts and literal fill do not include a rerun of the mixed four-provider ordinary/outer engine. #3801 is the newer scatter-boundary decision; do not restart #2977 as if untouched.", + "scope": "Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately." + }, + "first_experiment": "Pin the provider registry, four native source closures and dispatch. Make a bounded acceptance coverage map or one registry adapter preserving every inherited admission predicate and rejection control (including an omitted fourth provider). Record remaining ordinary/outer obligations and a resource estimate before heavy execution. Stop at unresolved source/caller dependencies; no selected-result promotion from a local pass.", + "bottleneck_link": "Closing a current acceptance gap or proof obligation strengthens reliability even without changing kappa.", + "allowed_variations": [ + "One provider-registry, dispatch, native-closure or admission-predicate obligation; separate branches must name distinct coverage." + ], + "scope_change_triggers": [ + "Reporting the historical timing-only diagnostic as a new current acceptance bug.", + "Calling a malformed mutant a failure of the selected construction, or importing an opt-in repair without testing the exporter boundary.", + "Running another root enclosure instead of validating dispatch or weakening an inherited predicate to make mixed admission pass." + ], + "overlap_terms": [ + "owner boundary", + "bridge omission", + "hosting", + "2977", + "scatter export", + "duplicate index", + "parity semantics", + "4088", + "3801", + "staged544-mixed-fourth-entry", + "scatter-boundary-decision" + ], + "existing_checks": [ + { + "scope": "PR #4088: author-checked local words, native receipts, owner/phase fill and exact moment.", + "evidence": "research/staged544-mixed-fourth-entry/README.md", + "remaining": "Rebind and validate ordinary/outer admission with all four providers; full mixed release not established.", + "status": "author-checked", + "source_commit": "72d7efc181edb21806a878f174847c96dd410ab0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #3801: successor scatter-boundary decision package.", + "evidence": "research/scatter-boundary-decision/README.md", + "remaining": "Consult its exact acceptance scope before any new exporter audit; not proof of a selected failure.", + "status": "author-checked", + "source_commit": "911f8800ba7a4b03603ef62c5ffc6240e53cb5fd", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + } + ] + }, + "scope_status": "changed", + "actual_scope": "Independently audit the retimed p17 native/direct complex profile in updated PR4441, provide the complete source-bound physical, phase and conditional-transfer certificate plus ordinary BIT admission 0.00312, and refine its conditional kappa from 0.00300105 to 0.003001053.", + "scope_change_reason": "The user explicitly requested inventive means to push kappa significantly and a PR, with periodic refreshes of stronger proposals. The20:13 UTC refresh found concurrent PR4440 query thinning and PR4441 helper retiming. We adopted the audited retiming. The20:27 UTC refresh found updated PR4441 already combined the same profile at0.00300105, above our initial0.00300104. We audited that update, built the publication directly on its exact head, and refined our independent certificate to0.003001053. The combined profile is credited as concurrent work.", + "bottleneck_link": "Paid direct stages remove transverse factors from idle jobs while retaining the exact Laurent shear identity. Combining the exact full controller invoice with an improved arbitrary-input helper supplier raises the complete moment and admits the stronger conditional endpoint.", + "budget_minutes": 120, + "stop_rule": "Reject an unbound controller identity, missing direct-query phase, unpaid scratch or completion work, noncontractive strictification, insufficient ordinary BIT saving or failed outer predicate. Do not change the selected frontier; keep search claims within their stated finite scope.", + "outcome": "completed", + "evidence": "README.md and NATIVE.md explain the construction and concurrent-source audit; native_inventory.py, local_supplier.py and controller/ reconstruct the retimed local word, exact factor and complete profile; PROOF.md, strictification.py, endpoint.py, bit/ and verify.py give the source-bound conditional certificate.", + "author": "Cinna Davis (1337isnot1337) with substantial OpenAI assistance", + "ai_assistance": "Substantial OpenAI assistance. Parallel research and review covered helper boundaries, exact controller factorization, dynamic discovery, native phases, ordinary BIT admission, strictification and integration.", + "open_questions": [ + { + "question": "Can an intermediate local supplier improve on the native/direct choice?", + "why_it_matters": "A partial supplier could retain productive helpers while reducing transverse and idle costs.", + "first_step": "Derive an arbitrary-input local operator with a complete paid and productive invoice, then add it as a certified controller choice.", + "blocked_by": "A relaxed tariff or scalar-count improvement alone is not a physical supplier." + }, + { + "question": "Can controllers outside the minimal-cut path family improve the complete moment?", + "why_it_matters": "The search through p120 covers only one explicitly described family.", + "first_step": "Generate another exact Laurent factorization and price every physical idle and boundary route.", + "blocked_by": "No exact factorization, phase certificate or global optimality result is available for the larger family." + }, + { + "question": "Can higher-moment tails reduce the sufficient tensor power of the hybrid unit?", + "why_it_matters": "Updated PR4441 already reduces the tensor power to1024 for this invoice. Our independent first-moment proof retains a larger sufficient power and ambient281.", + "first_step": "Rebind the higher-moment tail and logarithmic compiler argument to this exact native geometry, including all paid completion requests and the retained281-dimensional ambient.", + "blocked_by": "The smaller finite constants cannot simply be copied across a different ambient and compiler certificate; no smaller power is needed for the endpoint claim." + }, + { + "question": "Do the inherited all-column, cover, precision and recovery premises hold for the entire expanded program?", + "why_it_matters": "The finite native and arithmetic certificates do not formally verify the asymptotic multiplication theorem.", + "first_step": "Replay the source-bound finite gates, then audit each inherited premise against the chronological product and new fixed-cost envelopes.", + "blocked_by": "A complete independent theorem review remains separate from these finite checks." + } + ] +} diff --git a/research/kappa-hybrid-controller/VALIDATION.md b/research/kappa-hybrid-controller/VALIDATION.md new file mode 100644 index 0000000000..2b8bed3b73 --- /dev/null +++ b/research/kappa-hybrid-controller/VALIDATION.md @@ -0,0 +1,39 @@ +# Validation of the final conditional certificate + +The final default-path replay passed on CPython 3.12.14 with optimization enabled: + +```sh +python3 -I -O -B research/kappa-hybrid-controller/verify.py +``` + +The separate non-regenerating comparison ran from 2026-10-21T20:45:02.127245UTC to 20:47:08.800859UTC and took 126.674 seconds. It reproduced the entire saved receipt and exited 0 without standard-error output. REPLAY.json records the command, exact interpreter version, elapsed time and output. + +The final result is kappa 3001053/1000000000=0.003001053, tested saving 1500527/500000000=0.003001054, ordinary BIT 39/12500=0.00312, tensor power 17160, and sufficient uniform height 15026650096742881962201. This follows a fresh full regeneration with --write-result, which also passed. + +## Executed coverage + +- Intact retimed local supplier: both original literal interpreters, both orientations, all 632 arbitrary local columns, all 320 changed complete-phase recipes, and the unchanged main/scalar/warp/owned-center interfaces. +- Exact full controller: 1156 Laurent entries, 8512 native contacts, 3808 main endpoints, every whole idle and all 112 direct rank-one kernels, including inverse translations and owned copies. +- Complete rank invoice, chronological product, every paid completion/split tail, explicit compiler integers and expanded nonrecursive/ownership/precision envelopes. +- Native p6 BIT construction: 7039 arbitrary input columns, 117 owned-copy episodes, complete ordinary conversion, and all 54 outer strict predicates plus four functional guards. +- A second rational interval implementation checks the construction's moment and both complete tails independently. + +Executed rejection controls cover the direct orientation, 112 omitted direct inverse translations, 1904 omitted endpoint translations, a wrong reverse sign, a wrong intermediate center frame, 224 omitted idle phases, an unpadded rank-one tail, one insufficient decay block, an undamped completion tail, closed epsilon/uniform gaps, insufficient BIT admission and the unfunded tested endpoint. The sufficient compiler checks reject H0-1 and H1-1; the BIT side rejects its unsupported larger raw saving. + +The final source inventory has 53 pinned rows and 51 live input paths. Every live local byte stream was checked against its SHA256 and its Git blob identity obtained from the exact published sources. The pinned task card matches the original catalogue object. These are source/metadata checks, separate from mathematical replay. + +## Independent audit of the stronger concurrent frontier + +This additional registered command passed after conversion to repository-relative paths: + +```sh +python3 -I -O -B research/kappa-hybrid-controller/frontier/audit.py +``` + +It reproduces the complete audit receipt with a newly written outward integer interval engine. It verifies updated PR4441's raw moment, higher-moment tails, compiler arithmetic, exact BIT conversion, all 54+4 outer checks, and fixed-profile ceiling through 16 derivative cells and 128 further interval cells. The audit reuses the already replayed unchanged native source; it does not perform an additional full native replay. See frontier/REPORT.md for the precise active-ambient and conditional scope. + +## Validation boundary + +The direct default command and independent frontier command were executed locally. The repository's Git-dependent registered-package metadata runner was not executed in the partial local staging tree; hosted registered replay is tracked separately. VERIFY.json registers both commands with timeouts 600 and 120 seconds, using only the Python standard library. + +No huge tensor or uniform word was materialized. No full historical suite or formal proof assistant was run. All-column lifting, permitted physical movement and whole-job matching, precision, analytic estimates, owned erasure, fixed-tape and exact-recovery hypotheses remain the stated inherited premises. A finite replay pass is not independent human acceptance of the full multiplication theorem. diff --git a/research/kappa-hybrid-controller/VERIFY.json b/research/kappa-hybrid-controller/VERIFY.json new file mode 100644 index 0000000000..30e933c43f --- /dev/null +++ b/research/kappa-hybrid-controller/VERIFY.json @@ -0,0 +1,83 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "notes/copied-centers-lemma.tex", + "notes/three-stage-cover-bit.tex", + "notes/three-stage-cover-rows.tex", + "research/e8-bit-carrier-skeleton/code/nine/geometry.py", + "research/fresh-helper-boundary/CHANGES.json", + "research/fresh-helper-boundary/NATIVE-RESULT.json.gz", + "research/fresh-helper-boundary/native.py", + "research/fresh-helper-thinned/PROOF.md", + "research/fresh-helper-thinned/README.md", + "research/fresh-helper-thinned/RESULT.json", + "research/fresh-helper-thinned/verify.py", + "research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py", + "research/kappa-function-composition/complex/prune_native.py", + "research/kappa-rebuild/bit/DELAYED-COVER-BRIDGE.md", + "research/kappa-rebuild/bit/MIXED-PRODUCTIVE-BIT.json", + "research/kappa-rebuild/bit/bit_native_binding.py", + "research/kappa-rebuild/bit/mixed_productive_bit.py", + "research/kappa-rebuild/bit/sources/pr589-regenerated/WORD.json.gz", + "research/kappa-rebuild/bit/sources/pr589-regenerated/records/249-records.bin", + "research/kappa-rebuild/bit/sources/pr589-regenerated/records/frames.json", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "research/kappa-rebuild/complex/native_extensions.py", + "research/kappa-rebuild/complex/power_two_balance.py", + "research/kappa-rebuild/complex/rebuild_native.py", + "research/pr4359-p7-padding/EXPORTED-SOURCES.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/pr4359-p7-padding/dependencies/compiler-refill/template_bound.py", + "research/pr4359-p7-padding/dependencies/tensor-strictification/native_inventory.py", + "research/pr4359-p7-padding/source/research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/bit-compression/carrier-reuse/reference/joint_pair_dag.py", + "research/pr4359-p7-padding/source/research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json", + "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/FINITE-PRECOMPILATION.md", + "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/identity_mixed_certificate.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/mixed_forest_search.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/BIT-ALLSIZE-PARAMETERS.json", + "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/complex_controller_factor.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/bit/mixed_productive_bit.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/fresh-certificates/THREE-base-HELPER-BOUNDARIES.json.gz", + "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/RESULT.json", + "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz", + "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz", + "research/pr4359-p7-padding/source/research/kappa-rebuild/complex/full_identity_rebuild.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/controller/P3-NATIVE-COVER.json.gz", + "research/pr4359-p7-padding/source/research/kappa-rebuild/controller/p3_native_cover.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/FINITE-TEMPLATE-CLOSURE.md", + "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/OUTER-TRANSFER-AUDIT.md", + "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/p3_cover_audit.py", + "research/pr4359-p7-padding/source/research/kappa-rebuild/transfer-audit/p3_native_audit.py", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 600, + "checks": "Authenticate47 live sources; regenerate the intact retimed supplier in both arbitrary-input native interpreters with all320 absolute-phase recipes; reconstruct every p17 Laurent coefficient, main endpoint, whole idle and direct inverse shear; compare the complete invoice and saved receipts; certify paid completion, explicit uniform compilation, native p6 BIT admission,54 strict inequalities and4 functional guards, with rejection controls." + }, + { + "argv": [ + "{python}", + "-I", + "-O", + "-B", + "{package}/frontier/audit.py" + ], + "timeout_seconds": 120, + "checks": "Independently replay the exact updated PR4441 arithmetic, fixed-profile ceiling, both paid tails, finite compiler and full outer ledger using outward integer intervals; authenticate four immutable frontier inputs and compare the complete audit receipt." + } + ] +} diff --git a/research/kappa-hybrid-controller/bit/BIT-P6-TENSOR-RESULT.json b/research/kappa-hybrid-controller/bit/BIT-P6-TENSOR-RESULT.json new file mode 100644 index 0000000000..40f2f66216 --- /dev/null +++ b/research/kappa-hybrid-controller/bit/BIT-P6-TENSOR-RESULT.json @@ -0,0 +1,1915 @@ +{ + "admitted_BIT_saving": "39/12500", + "alpha_upper": "99999/100000", + "arithmetic_dependency_sha256": "7ac72da26df21a0bef1ed15cb500468cf94b328e86efd1ed60a7a0016db415c0", + "compiled_uniform_saving": "627/200000", + "complete_normalized_paid_moment_upper": "1653/1696", + "cover": { + "complete_moment_upper": "800001/800002", + "gap": "1/200000", + "prime_coefficient_times_N5": "51200000" + }, + "covered_saving": "313/100000", + "cutoff_encoding": "7^6000", + "gamma_upper": "999/1000", + "materialized_tensor_or_uniform_word": false, + "native_source": { + "COPY_or_ERASE_records": 234, + "all_arbitrary_columns": 7039, + "ambient_rank": 92, + "common_weight_contract": "All original port charts and every product/compiler matcher are fixed rational right routes in one final cover. No intermediate covered child is lowered.", + "exact_factorization": { + "boundary_unit_ADDs_per_port": 48, + "coefficient_projectors": { + "14337": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1024, + 2048 + ], + "15": [ + 5, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "15873": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 256, + 512, + 0, + 0 + ], + "16383": [ + 64, + 0, + 64, + 0, + 64, + 0, + 64, + 170, + 0, + 0, + 0, + 0 + ], + "255": [ + 80, + 0, + 80, + 0, + 80, + 42, + 0, + 42, + 0, + 0, + 0, + 0 + ], + "63": [ + 20, + 0, + 20, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "diagonal_monomials": [ + 15, + 15, + 63, + 63, + 255, + 255, + 14337, + 14337, + 15873, + 15873, + 16383, + 16383 + ], + "full_coefficient_endpoint_sha256": "bf485e1f07f44b15757bccec1a7c23e2887a8dbef22943b5ff2426fa21fbb0a6", + "left_program": [ + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 7, + 10 + ], + [ + "ADD", + 4, + 6 + ], + [ + "ADD", + 2, + 6 + ], + [ + "ADD", + 0, + 6 + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 10, + 5 + ], + [ + "ADD", + 2, + 4 + ], + [ + "ADD", + 0, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 10, + 3 + ], + [ + "ADD", + 4, + 3 + ], + [ + "ADD", + 0, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 10, + 1 + ], + [ + "ADD", + 4, + 1 + ], + [ + "ADD", + 2, + 1 + ] + ], + "left_rows": [ + 5, + 2, + 10, + 20, + 42, + 80, + 1024, + 2048, + 256, + 512, + 170, + 64 + ], + "right_program": [ + [ + "ADD", + 5, + 11 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 7, + 11 + ], + [ + "SWAP", + 6, + 10 + ], + [ + "ADD", + 3, + 5 + ], + [ + "ADD", + 7, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 0, + 3 + ], + [ + "ADD", + 5, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 1 + ] + ], + "right_rows": [ + 2089, + 2, + 2088, + 6, + 2080, + 20, + 2048, + 1040, + 256, + 512, + 64, + 128 + ] + }, + "expanded_chart_identity": "Gamma=I-EE^t+E rho E^t; Gamma^2=I92, active identity on im(E), identity on its orthogonal complement", + "helper_owners": [ + { + "first": 1332, + "last_exclusive": 1771, + "stage": 0 + }, + { + "first": 1771, + "last_exclusive": 2210, + "stage": 1 + }, + { + "first": 2210, + "last_exclusive": 2649, + "stage": 2 + }, + { + "first": 2649, + "last_exclusive": 3088, + "stage": 3 + }, + { + "first": 3088, + "last_exclusive": 3527, + "stage": 4 + }, + { + "first": 3527, + "last_exclusive": 3966, + "stage": 5 + }, + { + "first": 3966, + "last_exclusive": 4405, + "stage": 6 + }, + { + "first": 4405, + "last_exclusive": 4844, + "stage": 7 + }, + { + "first": 4844, + "last_exclusive": 5283, + "stage": 8 + }, + { + "first": 5283, + "last_exclusive": 5722, + "stage": 9 + }, + { + "first": 5722, + "last_exclusive": 6161, + "stage": 10 + }, + { + "first": 6161, + "last_exclusive": 6600, + "stage": 11 + }, + { + "first": 6600, + "last_exclusive": 7039, + "stage": 12 + } + ], + "independent_dirty_helpers": 5707, + "keep": 25279, + "local_all_f_lift": "Every head projector and chart is tensor-multiplied by I_f; the reversed tail block uses C_(Nf). Polynomial identities remain exact, and routes change only cover coordinates.", + "local_audit": "PASS_FULL_LOCAL_COLUMNS_AND_EXACT_PROJECTORS", + "main_endpoints": [ + { + "central_q": true, + "rank": 22, + "role": 0, + "stages": [ + 0, + 1, + 2 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 1, + "stages": [ + 0, + 1, + 2 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 2, + "stages": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 3, + "stages": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "central_q": true, + "rank": 50, + "role": 4, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + { + "central_q": true, + "rank": 50, + "role": 5, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 6, + "stages": [ + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 7, + "stages": [ + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 8, + "stages": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 9, + "stages": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 92, + "role": 10, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 92, + "role": 11, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + } + ], + "nonidentity_port_routes_including_inverses": 5328, + "original_p3_audit": "PASS_FIXED_RATIONAL_PORTS_AND_PHYSICAL_ENDPOINTS", + "owned_COPY_episodes": 117, + "paid": { + "1": 17199, + "14": 444, + "2": 17446, + "28": 444, + "3": 1027, + "4": 572, + "42": 222, + "5": 1326, + "6": 143, + "7": 1357 + }, + "pairs": 6, + "scalar_ADD_allowance": 326621, + "source_generator_sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "source_port_audit_sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "source_sha256": { + "DELAYED-COVER-BRIDGE.md": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443", + "MIXED-PRODUCTIVE-BIT.json": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf", + "bit_native_binding.py": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "sources/pr589-regenerated/WORD.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "sources/pr589-regenerated/records/249-records.bin": "ea44aa047a2a9cf034de8b56b2166c49cf2dbdf9cd9ed6a20299a4f2b05ef09a", + "sources/pr589-regenerated/records/frames.json": "d006b3bfe0c04afecfea7aecfa59dfe4298b99501c70da3938e40289bc2f5010" + }, + "stage_chart_embeddings": [ + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "spectator_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 1 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 2 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 3 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 4 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 5 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 6 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 7 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 8 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 9 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 10 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 11 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + "stage": 12 + } + ], + "stages": 13, + "status": "PASS_P6_EXACT_NATIVE_PORTS_ARBITRARY_COLUMNS_AND_WHOLE_IDLES", + "targets": { + "22": 444, + "36": 444, + "50": 222, + "8": 5707, + "92": 222 + }, + "whole_idle_windows": [ + { + "index": 0, + "kind": "initial", + "pair": 1, + "rank": 14, + "retained": true, + "stages": [ + 0, + 1 + ] + }, + { + "index": 1, + "kind": "middle", + "pair": 1, + "rank": 7, + "retained": true, + "stages": [ + 2 + ] + }, + { + "index": 2, + "kind": "initial", + "pair": 2, + "rank": 28, + "retained": true, + "stages": [ + 0, + 1, + 2, + 3 + ] + }, + { + "index": 3, + "kind": "middle", + "pair": 2, + "rank": 7, + "retained": true, + "stages": [ + 4 + ] + }, + { + "index": 4, + "kind": "initial", + "pair": 3, + "rank": 42, + "retained": true, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + { + "index": 5, + "kind": "middle", + "pair": 3, + "rank": 7, + "retained": true, + "stages": [ + 6 + ] + }, + { + "index": 7, + "kind": "middle", + "pair": 4, + "rank": 7, + "retained": true, + "stages": [ + 8 + ] + }, + { + "index": 9, + "kind": "middle", + "pair": 5, + "rank": 7, + "retained": true, + "stages": [ + 10 + ] + }, + { + "index": 13, + "kind": "terminal", + "pair": 3, + "rank": 28, + "retained": true, + "stages": [ + 9, + 10, + 11, + 12 + ] + }, + { + "index": 14, + "kind": "terminal", + "pair": 4, + "rank": 14, + "retained": true, + "stages": [ + 11, + 12 + ] + } + ] + }, + "ordinary": { + "admission_gap": "334599/3125000000000", + "atom_power": "2/625", + "linear_adapter_gap": "249665401/3125000000000", + "old_saving": "384599/10000000000", + "stock_absorption_gap": "3105249665401/3125000000000" + }, + "ordinary_saving": "9750334599/3125000000000", + "paid": { + "1": 17199, + "14": 444, + "2": 17446, + "28": 444, + "3": 1027, + "4": 572, + "42": 222, + "5": 1326, + "6": 143, + "7": 1357 + }, + "paid_rank_mass": 102419, + "positive_rank_surplus": 513, + "status": "PASS_EXACT_P6_BIT_TENSOR_AND_ORDINARY_ARITHMETIC", + "strictification_margin": "43/1696", + "target_rank_mass": 102932, + "targets": { + "22": 444, + "36": 444, + "50": 222, + "8": 5707, + "92": 222 + }, + "tensor_power": 6000, + "tested_saving": "157/50000", + "uniform_compiler": { + "H0": 850090000, + "H1": 1066862950001, + "N_encoding": "2^1066862950001", + "delta": "1/400000", + "exit_log2_upper": "20625", + "h": "1/16", + "negative_log2_eta_upper": "5311/40", + "theta_upper": "15/16" + }, + "verifier_sha256": "9993c4b695740d41f56bfac0f4d016e7c62c6fef692fc09b0c01b6d67da7da7c" +} diff --git a/research/kappa-hybrid-controller/bit/BIT-P6-TENSOR.md b/research/kappa-hybrid-controller/bit/BIT-P6-TENSOR.md new file mode 100644 index 0000000000..54a61e2162 --- /dev/null +++ b/research/kappa-hybrid-controller/bit/BIT-P6-TENSOR.md @@ -0,0 +1,240 @@ +# Ordinary BIT saving 0.00312 from the native p6 controller + +This conditional supplier retains DreamingOfClouds's PR589 local word, +eumemic's PR555/543 lineage, zxv's PR4359 controller and delayed-cover +interface, and Jacob Alan Sussman's finite mixed compiler. The finite native +product uses the chronological substitution argument from PR4412/4414. +The source is commit `da637c87c89482bc4c86be36bd0071b3d400dbed`; every local +word, coefficient generator, port binder and input record is authenticated +by exact SHA-256 in the verifier. + +The new supplier uses six main pairs, thirteen native local invocations, +and keep mask 25279. Whole idle operators remain intact until a native +product restores strict rank separation. The result is the ordinary BIT +admission **0.00312**, which supports the stronger hybrid complex compiler. + +## Complete native controller and arbitrary owners + +Run the original `physical_controller(6,25279)` and regenerate every +coefficient projector and both constant boundary programs over the original +BIT coefficient ring. The twelve exact diagonal monomials, in the source's +bit encoding, are + +``` +15,15,63,63,255,255,14337,14337,15873,15873,16383,16383. +``` + +Their productive main ranks are 22, 36, 50 and 92. There are 111 ports per +main role, giving 1332 independent main inputs. Each native invocation +retains all 439 arbitrary helper inputs, for 5707 distinct helpers. Thus +the complete unit has 7039 independent productive input fields. + +The verifier runs the original local forward and reverse audit on all 661 +arbitrary columns. It also runs the original decoded global scalar replay +for all 7039 arbitrary columns, with all 117 source-owned COPY episodes and +234 COPY/ERASE records. No center field contributes productive rank credit. +One owned center bank suffices within a raw invocation; simultaneous or +suspended product invocations use distinct banks. + +The exact scalar allowance is + +``` +13*24305 + 6*(6-1)*111 + 48*111 + 3*6*111 = 326621 +``` + +unit ADDs. This includes the complete raw words, inter-pair bridges, both +new constant boundary programs, and every final swap charged as three ADDs. +The finite template must additionally price every coordinate route and +owned-bank movement from its actual expanded stream. + +## Rational port charts in the larger carrier + +Keep the same original eight-dimensional central block. Add twelve disjoint +seven-dimensional coordinate blocks. The ambient rank is + +\[ +M=8+12\cdot7=92. +\] + +For each of the 111 source roots \(q\), the original binder verifies the +rational rank-one projector \(P_q=qq^t/4\), its orthonormal complement +columns, and the exact 15-dimensional involution \(\rho_q\). It checks +\(\rho_q^2=I\), every entrance and exit frame of the literal local word, +and the exact physical partial-swap identities. These are source byte +authenticated checks, not inferred endpoint ranks. + +For fresh stage \(s=1,\ldots,12\), let \(E_s\) inject the old eight axes +and that stage's seven fresh axes into the 92-dimensional carrier. Extend +the original chart by + +\[ +\Gamma_{s,q}=I-E_sE_s^t+E_s\rho_qE_s^t. +\] + +The verifier lists and checks every coordinate injection and its spectator +axes. Since \(E_s^tE_s=I_{15}\), the original exact chart identity implies +\(\Gamma_{s,q}^2=I_{92}\). The original active projector identity holds +on the image of \(E_s\), and the map is identity on its orthogonal +complement. This proves the larger chart without assuming that the source +six-stage list already covers twelve stages. + +The stage-zero complement \(K_q=I_8-P_q\), the twelve fresh block +projectors, and \(P_q\) are pairwise orthogonal in their stated supports. +Consequently each factored main endpoint has the exact rank + +\[ +1+7\,\#\{\text{selected stage projectors}\}. +\] + +All charts, coefficient identities and projector identities tensor with +\(I_f\) for arbitrary column multiplicity. They are fixed rational right +routes in one eventual cover. The source's common ancestor-dependent +weight contract remains in force. + +## The whole idle inventory + +The ten retained idle events have ranks + +``` +14,7,28,7,42,7,7,7,28,14. +``` + +Each event acts on both sides of its pair at all 111 ports. These are sums +of the exact orthogonal stage projectors; their total stage count is 23. +For orthogonal projectors \(P,Q\), the native identity +\(D_PD_Q=D_{P+Q}\) combines adjacent stages with their original whole-job +matcher. No arithmetic event lies inside an idle interval. The complete +invoice is therefore + +``` +targets = {8:5707,22:444,36:444,50:222,92:222}, +paid = {1:17199,2:17446,3:1027,4:572,5:1326,6:143, + 7:1357,14:444,28:444,42:222}. +``` + +The target rank mass is 102932 and the paid rank mass is 102419. The positive +surplus is 513. All copied-center descendants remain in the paid invoice. +The raw profiles overlap in rank, so this raw mixed inequality is not yet +a strictly decreasing recursive rule. + +## Native product before covering + +Let complete native words \(U,V\) have target ranks \(k_i,h_j\) and +chronological paid ranks \(r_\ell,s_a\). Make distinct \(U\) copies, +one for each \(V\) target role, at the corresponding column multiplicity +\(h_j\). Embed all projectors and fixed rational routes in one common +product ambient. Their independent productive owners are the pairs +\((i,j)\). + +Run those copies in lockstep. At paid position \(\ell\), suspend each +copy and apply one complete \(V\) invocation, at multiplicity \(r_\ell\), +to the distinct current owners. Its target \(j\) returns the required +rank \(r_\ell h_j\) job. Restore its full role matchers and finish its +own separate owned-bank episodes before resuming \(U\). + +The original local correctness holds on arbitrary inputs, including +correlated values occupying distinct owners. This finite acyclic program +has target ranks \(k_i h_j\) and paid ranks \(r_\ell s_a\). It preserves +all source-owned COPY and ERASE operations and every chronological paid +position. Target and paid moments consequently multiply. + +No intermediate cover or weighted ordinary child is formed. All port, +product and uniform-compiler matchers remain fixed rational right routes +until one final cover is chosen. Child-specific weights are introduced +only at its final rank-one leaves, with fresh disjoint row stock. This +ordering is essential to the inherited common-weight condition. + +## Exact finite strictification + +Set \(C=0.00314\), \(\tau=1-C\), and write \(T_\tau,P_\tau\) for +the complete raw moments. Directed rational logarithm and exponential +intervals prove + +\[ +\alpha=\frac{P_\tau}{T_\tau}<1-\frac1{100000},\qquad +\gamma=\frac{102419}{7^C T_\tau}<\frac{999}{1000}. +\] + +Take \(v=6000\) native factors and cutoff \(J=7^v\). A product target +has rank between \(8^v\) and \(92^v\). Split every paid rank above \(J\) +into consecutive orthogonal blocks \(J,\ldots,J,r\), omitting a zero +remainder, inside the original complete-job matcher. For \(R=qJ+r\), + +\[ +qJ^\tau+r^\tau\leq2RJ^{-C}. +\] + +The complete normalized paid moment, including every split tail, is less +than + +\[ +\alpha^v+2\gamma^v +<\frac{1}{1+6000/100000}+\frac2{2^6} +=\frac{1653}{1696}<1. +\] + +The verifier checks \((999/1000)^{1000}<1/2\) with exact arithmetic. +Every final paid rank is at most \(7^v<8^v\), while splitting preserves +the surplus \(102932^v-102419^v>0\). These are the two hypotheses required +by the strict finite mixed compiler. + +## Explicit uniformization and delayed cover + +Use uniform saving 0.003135. Put + +\[ +t=1-0.00314,\quad z=1-0.003135,\quad +z_0=(t+z)/2,\quad \delta=z_0-t=1/400000,\quad h=1/16. +\] + +The inequalities \(7^{16}<8^{15}\), \(7<2^3\), and \(92<2^7\) give +the compiler exit bound with logarithmic coefficient +\((3+7h)v=20625\). Its complement coefficient has negative logarithm +less than \(1+7v(1-z_0)=5311/40\). The sufficient integers are + +\[ +H_0=850090000,\qquad H_1=1066862950001,\qquad N=2^{H_1}. +\] + +The verifier derives these integers from the source inequalities and +checks \(H_0\ge7v\) and +\(H_1(z-z_0)>H_0(1-z_0)\). The original rank-50 numerical coefficient +is not reused for the larger finite template. + +Now choose the final odd-prime cover, excluding all fixed denominator, +determinant and rank-witness primes. With covered saving 0.00313 and +gap \(d=1/200000\), take \(q>51200000N^5\). The complete good-class +and bad-class fallback moment is less than + +\[ +\frac{1+d/4}{1+d/2}<1. +\] + +Retain the source \(4N^2-2N\) generic-normalizer and \(32N^2\) fallback +allowances. Recompute all finite movement, field, owned-bank, matrix-height +and precision constants from the expanded word. The original small-word +stock bound is not reused. The finite template is fixed before the eventual +input size varies, so its borrowed stock remains +\(O_{\text{fixed template}}(w\log e)\). + +## Ordinary conversion + +Use atom power 0.0032 and the source ordinary saving \(384599/10^{10}\). +The ordinary saving before relaxation is exactly + +\[ +(1-0.0032)\,0.00313+0.0032\,\frac{384599}{10^{10}} +=\frac{9750334599}{3125000000000} +=0.00312010707168>0.00312. +\] + +It is below the atom power, and the stock-absorption inequality also has +strict slack. The original fixed two-call ordinary wrapper changes only +the fixed multiplicity, as in PR4359. This proves the conditional ordinary +BIT supplier saving 0.00312 under the inherited native, mixed-compiler, +cover, precision, fixed-tape and recovery premises. + +`bit_p6_tensor_extension.py --source-root SOURCE --out RESULT.json` runs the +complete source replay and exact parameter calculation. Arithmetic-only +execution is explicitly labelled as such. The huge product and uniform +words are finite algorithmic constructions; they have not been materialized. diff --git a/research/kappa-hybrid-controller/bit/BIT-TENSOR-RESULT.json b/research/kappa-hybrid-controller/bit/BIT-TENSOR-RESULT.json new file mode 100644 index 0000000000..163f02fc51 --- /dev/null +++ b/research/kappa-hybrid-controller/bit/BIT-TENSOR-RESULT.json @@ -0,0 +1,117 @@ +{ + "admitted_BIT_saving": "29/10000", + "alpha_upper": "124999/125000", + "compiled_uniform_saving": "583/200000", + "complete_normalized_paid_moment_upper": "64129/66048", + "cover": { + "complete_moment_upper": "800001/800002", + "gap": "1/200000", + "prime_coefficient_times_N5": "51200000" + }, + "covered_saving": "291/100000", + "cutoff_encoding": "7^4000", + "gamma_upper": "399/400", + "materialized_tensor_or_uniform_word": false, + "native_source": { + "complete_idle_windows": [ + { + "index": 0, + "kind": "initial", + "pair": 1, + "rank": 14, + "retained": true, + "stages": [ + 0, + 1 + ] + }, + { + "index": 1, + "kind": "middle", + "pair": 1, + "rank": 7, + "retained": true, + "stages": [ + 2 + ] + }, + { + "index": 3, + "kind": "middle", + "pair": 2, + "rank": 7, + "retained": true, + "stages": [ + 4 + ] + }, + { + "index": 5, + "kind": "terminal", + "pair": 1, + "rank": 14, + "retained": true, + "stages": [ + 5, + 6 + ] + } + ], + "forward_reverse_local_audit": "PASS_FULL_LOCAL_COLUMNS_AND_EXACT_PROJECTORS", + "global_productive_fields": 3739, + "local_arbitrary_columns": 661, + "native_audit": "PASS_FIXED_RATIONAL_PORTS_AND_PHYSICAL_ENDPOINTS", + "raw_owned_COPY_episodes": 63, + "raw_scalar_ADD_allowance": 174908, + "source_sha256": { + "DELAYED-COVER-BRIDGE.md": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443", + "MIXED-PRODUCTIVE-BIT.json": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf", + "bit_native_binding.py": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "sources/pr589-regenerated/WORD.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "sources/pr589-regenerated/records/249-records.bin": "ea44aa047a2a9cf034de8b56b2166c49cf2dbdf9cd9ed6a20299a4f2b05ef09a", + "sources/pr589-regenerated/records/frames.json": "d006b3bfe0c04afecfea7aecfa59dfe4298b99501c70da3938e40289bc2f5010" + }, + "status": "PASS_SOURCE_NATIVE_AND_WHOLE_IDLE_REPLAY" + }, + "ordinary": { + "admission_gap": "13853797/10000000000000", + "atom_power": "3/1000", + "linear_adapter_gap": "986146203/10000000000000", + "old_saving": "384599/10000000000", + "stock_absorption_gap": "9940986146203/10000000000000" + }, + "ordinary_saving": "29013853797/10000000000000", + "paid": { + "1": 9261, + "14": 444, + "2": 9394, + "3": 553, + "4": 308, + "5": 714, + "6": 77, + "7": 577 + }, + "paid_rank_mass": 45227, + "positive_rank_surplus": 225, + "status": "PASS_EXACT_BIT_TENSOR_ARITHMETIC", + "strictification_margin": "1919/66048", + "target_rank_mass": 45452, + "targets": { + "22": 444, + "50": 222, + "8": 3073 + }, + "tensor_power": 4000, + "tested_saving": "73/25000", + "uniform_compiler": { + "H0": 454744000, + "H1": 530686248001, + "N_encoding": "2^530686248001", + "delta": "1/400000", + "exit_log2_upper": "13500", + "h": "1/16", + "negative_log2_eta_upper": "3551/50", + "theta_upper": "15/16" + } +} diff --git a/research/kappa-hybrid-controller/bit/BIT-TENSOR.md b/research/kappa-hybrid-controller/bit/BIT-TENSOR.md new file mode 100644 index 0000000000..58340d88f1 --- /dev/null +++ b/research/kappa-hybrid-controller/bit/BIT-TENSOR.md @@ -0,0 +1,166 @@ +# Ordinary BIT saving 0.0029 from complete idle jobs + +This is a conditional supplier extension of zxv's PR4359 BIT construction. +It retains DreamingOfClouds's PR589 local word, eumemic's PR555/543 lineage, +Jacob Alan Sussman's finite mixed compiler, and the original delayed-cover +interface. The native product follows the chronological substitution argument +in PR4412 and PR4414. The new observation is that the old BIT bill splits +complete rank-fourteen idle jobs solely to enforce local rank separation. +Keeping those jobs whole gives a better moment; a native product restores +strict separation afterward. + +## The complete native p3 word + +Use the same seven-call controller, three main pairs and keep mask 43. Keep +all 666 independent main inputs and all 3073 fresh helper inputs. All 63 +source-owned COPY episodes remain paid, with one reusable owned bank within +each raw invocation. Distinct suspended raw invocations get distinct banks. +The literal scalar allowance is the source's 174908 ADDs, with swaps counted +as three ADDs. The exact source replay checks all 661 local arbitrary input +columns in both orientations, rational port charts, all helper ownership and +the complete physical endpoints. + +The four retained idle events have ranks 14, 7, 7 and 14. Each acts on both +main sides at every one of the 111 ports. At a rank-fourteen event, the two +rank-seven stage projectors P and Q satisfy PQ=QP=0. The source projector +identity D_P D_Q=D_(P+Q) holds by direct multiplication. Replace the adjacent +two rank-seven calls by this single whole rank-fourteen call. Preserve the +event's input owner and its whole-job routes. There is no scalar operation +between the original two calls, so this replacement preserves the actual +chronological operator. + +The new complete inventory is + +``` +targets = {8:3073,22:444,50:222}, +paid = {1:9261,2:9394,3:553,4:308,5:714,6:77,7:577,14:444}. +``` + +Expanding each rank-fourteen call back into two rank-seven calls gives the +source's exact invoice, including all copied-center descendants. The target +rank mass is 45452 and the paid rank mass is 45227, leaving surplus 225. +The raw rule has overlapping target and paid ranks, so it is not admitted +directly into the original strict compiler. + +## Native BIT product before covering + +For native words U and V, let U have independent target roles i of ranks k_i +and chronological paid ranks r_l; let V have target roles j of ranks h_j +and paid ranks s_a. For each V target j, instantiate a distinct U copy at +column multiplicity h_j. Embed its projectors and every fixed rational +right-route symbol into one common product ambient space. Its productive +input fields are labelled (i,j). Each input is an arbitrary complete array. + +Run the U copies in lockstep through their common scalar/COPY/paid-call +sequence. At paid position l, pause each copy. The current paid owners are +distinct across the copies, though their values may be correlated or belong +to owned center banks. Run one V invocation at column multiplicity r_l on +these owners, using the source's whole-job rational equal-rank matchers. +V's target j returns the required job of rank r_l h_j. Undo its complete +role routes and resume U only after V has finished and erased its own +separate owned banks. + +This is a finite acyclic native projector program. It computes independent +endpoints of ranks k_i h_j and pays ranks r_l s_a. Source correctness on +arbitrary inputs permits correlated values inside distinct physical slots. +No field is duplicated to create output credit, and no two paid positions +of one U copy are combined. Every center and source-owned COPY is retained. +Thus the target and paid moments multiply under native composition. + +The cover is still formal at this point. No intermediate job has been +lowered to an ordinary weighted child. All original port routes, tensor +matchers and uniform-compiler routes will belong to one final GL_N cover. +This preserves PR4359's common-weight contract: child-specific weights are +created only when final rank-one leaves are lowered after uniformization. + +## A finite strict rule + +Write C=0.00292 and tau=1-C. Let T_tau and P_tau be the moments of the +complete raw profiles above. The directed rational interval calculation in +`bit_tensor_extension.py` proves + +``` +alpha = P_tau/T_tau < 1 - 1/125000, +gamma = 45227/(7^C T_tau) < 399/400. +``` + +Take v=4000 native copies. The product target minimum is 8^v and its maximum +is 50^v. Set J=7^v. Split each paid rank R>J into consecutive disjoint-axis +jobs J,...,J,r, omitting a zero remainder. Preserve the original complete-job +matcher around the whole replacement. The elementary inequality + +``` +q J^tau+r^tau <= 2 R J^(-C), R=qJ+r, +``` + +gives the complete normalized paid bound + +``` +alpha^v + 2 gamma^v +< 1/(1+4000/125000) + 2/2^10 < 1. +``` + +Here (399/400)^400<1/2 is checked with exact integer arithmetic. The first +term uses (1-u)^v<=1/(1+vu). Both the mixed moment and the separate tail +condition are required. All final paid ranks are at most 7^v<8^v, giving +the strict separation needed by the source compiler. Splitting preserves +the positive rank-one surplus 45452^v-45227^v. + +## Explicit uniformization + +Set the uniform saving to 0.002915. Let t=1-0.00292, z=1-0.002915, +z0=(t+z)/2, delta=z0-t=1/400000, and h=1/16. The exact inequalities +7^16<8^15, 7<2^3 and 50<2^6 give the source exit estimate + +``` +m E(x)/x < 2^((3+6h)v) x^(-h), x>=m=50^v. +``` + +The complement coefficient eta=z0 m^(z0-1) satisfies +-log2(eta)<1+6v(1-z0). Consequently the explicit integers + +``` +H0 = ceil((((3+6h)v)delta+1+6v(1-z0))/(h delta)), +H1 = floor(H0(1-z0)/(z-z0))+1, +N = 2^H1 +``` + +give the source strict uniform moment. The certificate records H0 and H1 +and checks H0>=6v, so the initial threshold covers every finite base rank. +This reuses the source induction with new exit and complement constants; +it does not reuse its old rank-50 coefficient bound for the expanded word. + +## Delayed cover and ordinary conversion + +After compiling this finite native word, apply a single GL_N cover. Preserve +all rational port charts and every product/compiler matcher. Choose an odd +prime q avoiding all fixed denominators, determinants and rank witnesses, +with q>51200000 N^5. This is the original q>256 N^5/d rule with +d=0.002915-0.00291=1/200000. Its complete good-plus-fallback moment is less +than (1+d/4)/(1+d/2)<1. Only its final rank-one leaves become ordinary +weighted children, with each new child using fresh disjoint row stock. + +Use the source's atom power 0.003 and its old ordinary saving +384599/10^10. The new ordinary saving before relaxation is exactly + +``` +(1-0.003)*0.00291 + 0.003*(384599/10^10) += 29013853797/10^13 += 0.0029013853797. +``` + +It is greater than 0.0029 and less than the atom power 0.003. The root linear +adapter and O(w log e) borrowed-stock terms remain lower order. The source +row reserve is still O_(fixed template)(w log e), because the product and +uniform words are fixed before the eventual input size varies. + +All constants must be computed from this new expanded word: ambient N, +productive fields, actual paid leaves, owned banks, scalar/COPY/erase records, +every rational route and inverse, and every matrix height. Retain the source +4N^2-2N generic-normalizer allowance and 32N^2 bad-class fallback allowance. +No original small-word numerical stock or movement constant is reused. + +This proves the conditional ordinary BIT admission 0.0029 under the source +native, finite-compiler, cover and fixed-tape premises. It does not alone +claim an improved multiplication kappa. The huge finite tensor and uniform +words are algorithmically specified and have not been materialized. diff --git a/research/kappa-hybrid-controller/bit/bit_p6_tensor_extension.py b/research/kappa-hybrid-controller/bit/bit_p6_tensor_extension.py new file mode 100644 index 0000000000..6dd73935af --- /dev/null +++ b/research/kappa-hybrid-controller/bit/bit_p6_tensor_extension.py @@ -0,0 +1,176 @@ +#!/usr/bin/env python3 +"""Source-bound p6 native BIT controller with ordinary saving 0.00312. + +Retains the complete PR589/PR4359 local word and its owned copied centers. +Every p6 polynomial coefficient, helper owner and whole idle is regenerated. +The p3 utility is an authenticated dependency for rational arithmetic and +the original local port audit. Apache-2.0; source authors credited in proof. +""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse, json, sys + +sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +sys.path.insert(0,str(HERE)) +import bit_tensor_extension as BASE +if sha256(Path(BASE.__file__).read_bytes()).hexdigest()!='7ac72da26df21a0bef1ed15cb500468cf94b328e86efd1ed60a7a0016db415c0': + raise ValueError('Authenticated p3 arithmetic and original source-replay dependency') + +PAIRS=6 +KEEP=25279 +STAGES=13 +AMBIENT=92 +T={8:5707,22:444,36:444,50:222,92:222} +P={1:17199,2:17446,3:1027,4:572,5:1326,6:143,7:1357,14:444,28:444,42:222} +TESTED=Q('0.00314') +UNIFORM=Q('0.003135') +COVERED=Q('0.00313') +ADMITTED=Q('0.00312') +POWER=6000 +need=BASE.need + +def source_replay(root): + baseline=BASE.source_replay(root) + import mixed_productive_bit as B + import bit_native_binding as N + folder=root/'research/kappa-rebuild/bit' + word,streams,local=B.audit_local(folder/'sources/pr589-regenerated/WORD.json.gz') + ports=N.run() + need(ports['status']=='PASS_FIXED_RATIONAL_PORTS_AND_PHYSICAL_ENDPOINTS', + 'Original exact 15-coordinate rational port charts') + coefficient,events,idle=B.physical_controller(PAIRS,KEEP) + factor=B.simultaneous_monomial_factor(coefficient) + need(factor is not None,'Every p6 coefficient factors over the exact source ring') + expected=[15,15,63,63,255,255,14337,14337,15873,15873,16383,16383] + need(factor['diagonal_monomials']==expected,'All twelve complete p6 physical monomials') + decoded=B.explicit_unbanked_scalar_replay(PAIRS,streams) + need(decoded['all_arbitrary_columns']==7039 and decoded['independent_dirty_helpers']==5707, + 'Every main and native helper input remains arbitrary and distinct') + need(decoded['COPY_episodes']==117 and decoded['private_COPY_closed'], + 'All copied-center episodes remain charged and restored') + scalar=(decoded['unit_ADDs_before_new_boundary_adapters']+ + B.V*factor['boundary_unit_ADDs_per_port']+3*PAIRS*B.V) + need(scalar==326621,'Complete scalar word including both boundaries and final swaps') + need(AMBIENT==8+7*(STAGES-1),'Exact expanded rational carrier') + embeddings=[] + occupied=set(range(8)) + for stage in range(1,STAGES): + fresh=list(range(8+7*(stage-1),8+7*stage)) + axes=list(range(8))+fresh + need(len(axes)==len(set(axes))==15 and max(axes)>(s+1)&1] + need(mon&1==1,'Every p6 main role keeps exactly one central rank') + rank=1+7*len(selected) + targets[rank]+=B.V + endpoints.append(dict(role=role,central_q=True,stages=selected,rank=rank)) + paid=Counter({rank:STAGES*count for rank,count in B.LOCAL.items()}) + windows=[] + for row in idle: + if row['retained']: + need(row['rank']==7*len(row['stages']), 'Whole idle is the sum of its orthogonal stage projectors') + paid[row['rank']]+=2*B.V + windows.append(row) + need(dict(targets)==T and dict(paid)==P,'Complete p6 target and paid histograms') + need(len(windows)==10 and sum(len(w['stages']) for w in windows)==23, + 'All complete idle windows are present once') + need(sum(T.values())==7039,'No scratch endpoint receives target credit') + helper_owners=[dict(stage=s,first=2*PAIRS*B.V+s*B.R, + last_exclusive=2*PAIRS*B.V+(s+1)*B.R) for s in range(STAGES)] + need(helper_owners[0]['first']==1332 and helper_owners[-1]['last_exclusive']==7039, + 'Fresh helper owners partition all helper input columns') + return dict(status='PASS_P6_EXACT_NATIVE_PORTS_ARBITRARY_COLUMNS_AND_WHOLE_IDLES', + pairs=PAIRS,keep=KEEP,stages=STAGES,ambient_rank=AMBIENT, + local_audit=local['status'],original_p3_audit=baseline['native_audit'], + all_arbitrary_columns=7039,independent_dirty_helpers=5707, + owned_COPY_episodes=117,COPY_or_ERASE_records=234, + scalar_ADD_allowance=scalar,helper_owners=helper_owners, + exact_factorization=factor,main_endpoints=endpoints, + whole_idle_windows=windows,stage_chart_embeddings=embeddings, + nonidentity_port_routes_including_inverses=(STAGES-1)*111*2*2, + targets=dict(sorted(targets.items())),paid=dict(sorted(paid.items())), + source_sha256=BASE.SOURCE_HASHES, + source_generator_sha256=sha256(Path(B.__file__).read_bytes()).hexdigest(), + source_port_audit_sha256=sha256(Path(N.__file__).read_bytes()).hexdigest(), + local_all_f_lift=ports['all_f_lift'], + expanded_chart_identity='Gamma=I-EE^t+E rho E^t; Gamma^2=I92, active identity on im(E), identity on its orthogonal complement', + common_weight_contract='All original port charts and every product/compiler matcher are fixed rational right routes in one final cover. No intermediate covered child is lowered.') + +def arithmetic(): + tlo,thi=BASE.moment(T,TESTED);plo,phi=BASE.moment(P,TESTED) + T1=sum(rank*count for rank,count in T.items()) + P1=sum(rank*count for rank,count in P.items()) + need((T1,P1)==(102932,102419),'Exact complete rank masses') + alpha=phi/tlo + gamma=Q(P1)/(BASE.powers(7,TESTED)[0]*tlo) + need(alpha<1-Q(1,100000),'Certified strict tested mixed moment') + need(gamma=7*POWER and H1*(z-z0)>H0*(1-z0),'Uniform compiler strict moment') + gap=UNIFORM-COVERED + cover_bound=(1+gap/4)/(1+gap/2) + need(gap==Q(1,200000) and cover_bound<1,'Complete delayed good and fallback cover') + atom=Q('0.0032');old=Q(384599,10**10) + ordinary=(1-atom)*COVERED+atom*old + need(ordinary==Q(9750334599,3125000000000),'Exact ordinary conversion') + need(atom>ordinary>ADMITTED and atom<1-ordinary,'Ordinary adapter and borrowed stock exponents') + need(BASE.moment(T,Q('.00315'))[1]=1,'Logarithm domain') + while n>2:n/=2;power+=1 + x=(n-1)/(n+1); count=80 + lo=2*sum((x**(2*k+1)/(2*k+1)for k in range(count)),Q(0)) + hi=lo+2*x**(2*count+1)/((2*count+1)*(1-x*x)) + if power: + a,b=log_bounds(2);lo+=power*a;hi+=power*b + return lo,hi + +def exp_bounds(x): + need(0<=x>1).bit_count()]+=111 + paid=Counter({r:7*n for r,n in B.LOCAL.items()}) + windows=[] + for row in idle: + if row['retained']: + paid[row['rank']]+=222 + windows.append(row) + need(dict(targets)==T and dict(paid)==P,'Whole idle invoice from literal controller') + split=Counter(paid);split[7]+=2*split.pop(14) + need(dict(split)==native['paid'],'Disjoint rank-seven splitting reproduces source invoice') + need(sum(n*r for r,n in P.items())==sum(n*r for r,n in native['paid'].items()), + 'Whole idle replacement preserves every rank-one charge') + need(len(windows)==4 and [w['rank']for w in windows]==[14,7,7,14], + 'All four literal complete idle operators') + return {'status':'PASS_SOURCE_NATIVE_AND_WHOLE_IDLE_REPLAY', + 'local_arbitrary_columns':661,'global_productive_fields':3739, + 'complete_idle_windows':windows,'raw_owned_COPY_episodes':63, + 'raw_scalar_ADD_allowance':174908, + 'source_sha256':SOURCE_HASHES, + 'forward_reverse_local_audit':audit['status'], + 'native_audit':native['status']} + +def arithmetic(): + tlo,thi=moment(T,TESTED);plo,phi=moment(P,TESTED) + T1=sum(n*r for r,n in T.items());P1=sum(n*r for r,n in P.items()) + need(T1==45452 and P1==45227,'Complete rank-one masses') + alpha=phi/tlo + gamma=Q(P1)/(powers(7,TESTED)[0]*tlo) + need(alpha<1-Q(1,125000),'Strict tested mixed moment with certified margin') + need(gamma=6*POWER and H1*(z-z0)>H0*(1-z0),'Explicit sufficient uniform rank') + covergap=UNIFORM-COVERED + need(covergap>0,'Delayed-cover slack') + prime=256/covergap + complete_cover=(1+covergap/4)/(1+covergap/2) + need(complete_cover<1,'All bad-class fallback fits before lowering final leaves') + atom=Q(3,1000);old=Q(384599,10**10) + ordinary=(1-atom)*COVERED+atom*old + need(atom>ordinary>ADMITTED>0 and atom<1-ordinary,'Ordinary adapter and stock costs') + need(max(P)>min(T),'Raw rule does need strictification') + need(moment(T,Q('.003'))[1] 259998^n; target padding adds equal paid and target rank, and splitting preserves rank", + "t": "498499473/500000000", + "target_max_encoding": "153^17160", + "target_min_encoding": "19^17160", + "tensor_power": 17160, + "theta_upper": "54/55", + "z": "6978992623/7000000000", + "z0": "2791597049/2800000000" + }, + "gain_over_PR4359": "701053/1000000000", + "gain_over_PR4405": "695963/1000000000", + "gain_over_PR4414": "321183/1000000000", + "gain_over_PR4416": "314583/1000000000", + "gain_over_allfresh_p3": "523503/1000000000", + "kappa": "3001053/1000000000", + "ledger_source_sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15", + "minimum_outer_margin": "10489496313/24500000000000000000", + "negative_controls": { + "closed_epsilon": { + "actual_logarithmic_gamma_guard": "0", + "epsilon_below_one": "0", + "gaussian_above_main": "-31511061/24500000000000000000", + "global_gamma_power_slack": "-1/70000000000", + "new_semantic_guard_with_C1_one": "0", + "source_axis_superpolynomial": "0" + }, + "closed_uniform_gap": { + "new_complex_uniform_saving_above_b": "0" + }, + "insufficient_BIT": { + "actual_bit_above_effective": "-39259/56000000" + }, + "unfunded_outer_point": { + "boundary_algebraic_matrix_above_kappa": "-10510503687/24500000000000000000", + "fused_gaussian_above_kappa": "-10531511061/24500000000000000000", + "global_coordinate_router_above_kappa": "-3/7000000000", + "group_bit_router_above_kappa": "-112504177/392000000000000000", + "main_transform_above_kappa": "-14010503687/24500000000000000000" + } + }, + "ordinary_BIT_certificate": { + "admitted_BIT_saving": "39/12500", + "alpha_upper": "99999/100000", + "arithmetic_dependency_sha256": "7ac72da26df21a0bef1ed15cb500468cf94b328e86efd1ed60a7a0016db415c0", + "compiled_uniform_saving": "627/200000", + "complete_normalized_paid_moment_upper": "1653/1696", + "cover": { + "complete_moment_upper": "800001/800002", + "gap": "1/200000", + "prime_coefficient_times_N5": "51200000" + }, + "covered_saving": "313/100000", + "cutoff_encoding": "7^6000", + "gamma_upper": "999/1000", + "materialized_tensor_or_uniform_word": false, + "native_source": { + "COPY_or_ERASE_records": 234, + "all_arbitrary_columns": 7039, + "ambient_rank": 92, + "common_weight_contract": "All original port charts and every product/compiler matcher are fixed rational right routes in one final cover. No intermediate covered child is lowered.", + "exact_factorization": { + "boundary_unit_ADDs_per_port": 48, + "coefficient_projectors": { + "14337": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1024, + 2048 + ], + "15": [ + 5, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "15873": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 256, + 512, + 0, + 0 + ], + "16383": [ + 64, + 0, + 64, + 0, + 64, + 0, + 64, + 170, + 0, + 0, + 0, + 0 + ], + "255": [ + 80, + 0, + 80, + 0, + 80, + 42, + 0, + 42, + 0, + 0, + 0, + 0 + ], + "63": [ + 20, + 0, + 20, + 10, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "diagonal_monomials": [ + 15, + 15, + 63, + 63, + 255, + 255, + 14337, + 14337, + 15873, + 15873, + 16383, + 16383 + ], + "full_coefficient_endpoint_sha256": "bf485e1f07f44b15757bccec1a7c23e2887a8dbef22943b5ff2426fa21fbb0a6", + "left_program": [ + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 7, + 10 + ], + [ + "ADD", + 4, + 6 + ], + [ + "ADD", + 2, + 6 + ], + [ + "ADD", + 0, + 6 + ], + [ + "SWAP", + 6, + 11 + ], + [ + "ADD", + 10, + 5 + ], + [ + "ADD", + 2, + 4 + ], + [ + "ADD", + 0, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 10, + 3 + ], + [ + "ADD", + 4, + 3 + ], + [ + "ADD", + 0, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 10, + 1 + ], + [ + "ADD", + 4, + 1 + ], + [ + "ADD", + 2, + 1 + ] + ], + "left_rows": [ + 5, + 2, + 10, + 20, + 42, + 80, + 1024, + 2048, + 256, + 512, + 170, + 64 + ], + "right_program": [ + [ + "ADD", + 5, + 11 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "SWAP", + 7, + 11 + ], + [ + "SWAP", + 6, + 10 + ], + [ + "ADD", + 3, + 5 + ], + [ + "ADD", + 7, + 4 + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 0, + 3 + ], + [ + "ADD", + 5, + 2 + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 1 + ] + ], + "right_rows": [ + 2089, + 2, + 2088, + 6, + 2080, + 20, + 2048, + 1040, + 256, + 512, + 64, + 128 + ] + }, + "expanded_chart_identity": "Gamma=I-EE^t+E rho E^t; Gamma^2=I92, active identity on im(E), identity on its orthogonal complement", + "helper_owners": [ + { + "first": 1332, + "last_exclusive": 1771, + "stage": 0 + }, + { + "first": 1771, + "last_exclusive": 2210, + "stage": 1 + }, + { + "first": 2210, + "last_exclusive": 2649, + "stage": 2 + }, + { + "first": 2649, + "last_exclusive": 3088, + "stage": 3 + }, + { + "first": 3088, + "last_exclusive": 3527, + "stage": 4 + }, + { + "first": 3527, + "last_exclusive": 3966, + "stage": 5 + }, + { + "first": 3966, + "last_exclusive": 4405, + "stage": 6 + }, + { + "first": 4405, + "last_exclusive": 4844, + "stage": 7 + }, + { + "first": 4844, + "last_exclusive": 5283, + "stage": 8 + }, + { + "first": 5283, + "last_exclusive": 5722, + "stage": 9 + }, + { + "first": 5722, + "last_exclusive": 6161, + "stage": 10 + }, + { + "first": 6161, + "last_exclusive": 6600, + "stage": 11 + }, + { + "first": 6600, + "last_exclusive": 7039, + "stage": 12 + } + ], + "independent_dirty_helpers": 5707, + "keep": 25279, + "local_all_f_lift": "Every head projector and chart is tensor-multiplied by I_f; the reversed tail block uses C_(Nf). Polynomial identities remain exact, and routes change only cover coordinates.", + "local_audit": "PASS_FULL_LOCAL_COLUMNS_AND_EXACT_PROJECTORS", + "main_endpoints": [ + { + "central_q": true, + "rank": 22, + "role": 0, + "stages": [ + 0, + 1, + 2 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 1, + "stages": [ + 0, + 1, + 2 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 2, + "stages": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 3, + "stages": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "central_q": true, + "rank": 50, + "role": 4, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + { + "central_q": true, + "rank": 50, + "role": 5, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 6, + "stages": [ + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 22, + "role": 7, + "stages": [ + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 8, + "stages": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 36, + "role": 9, + "stages": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 92, + "role": 10, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "central_q": true, + "rank": 92, + "role": 11, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + } + ], + "nonidentity_port_routes_including_inverses": 5328, + "original_p3_audit": "PASS_FIXED_RATIONAL_PORTS_AND_PHYSICAL_ENDPOINTS", + "owned_COPY_episodes": 117, + "paid": { + "1": 17199, + "14": 444, + "2": 17446, + "28": 444, + "3": 1027, + "4": 572, + "42": 222, + "5": 1326, + "6": 143, + "7": 1357 + }, + "pairs": 6, + "scalar_ADD_allowance": 326621, + "source_generator_sha256": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "source_port_audit_sha256": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "source_sha256": { + "DELAYED-COVER-BRIDGE.md": "9731b93026717f5fa15851e3633cbb4bdc76eba2bffb9d6b4a3b69f7dd502443", + "MIXED-PRODUCTIVE-BIT.json": "2f69a19f417c0e0d141c180f9b2fae3d358391b9a230f5848ee07c45450e70bf", + "bit_native_binding.py": "bf6374225f388e7531fa6475cc255bd430100ff62c38d582c41601f0739de7b7", + "mixed_productive_bit.py": "b32291b0db7fc0d332ec444c70746ab0fb03351d2e50546f8bcb64060e3ff95e", + "sources/pr589-regenerated/WORD.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "sources/pr589-regenerated/records/249-records.bin": "ea44aa047a2a9cf034de8b56b2166c49cf2dbdf9cd9ed6a20299a4f2b05ef09a", + "sources/pr589-regenerated/records/frames.json": "d006b3bfe0c04afecfea7aecfa59dfe4298b99501c70da3938e40289bc2f5010" + }, + "stage_chart_embeddings": [ + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "spectator_axes": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 1 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 2 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 3 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 4 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 5 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 6 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 7 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 8 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 9 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 10 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "stage": 11 + }, + { + "chart_axes": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + "spectator_axes": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + "stage": 12 + } + ], + "stages": 13, + "status": "PASS_P6_EXACT_NATIVE_PORTS_ARBITRARY_COLUMNS_AND_WHOLE_IDLES", + "targets": { + "22": 444, + "36": 444, + "50": 222, + "8": 5707, + "92": 222 + }, + "whole_idle_windows": [ + { + "index": 0, + "kind": "initial", + "pair": 1, + "rank": 14, + "retained": true, + "stages": [ + 0, + 1 + ] + }, + { + "index": 1, + "kind": "middle", + "pair": 1, + "rank": 7, + "retained": true, + "stages": [ + 2 + ] + }, + { + "index": 2, + "kind": "initial", + "pair": 2, + "rank": 28, + "retained": true, + "stages": [ + 0, + 1, + 2, + 3 + ] + }, + { + "index": 3, + "kind": "middle", + "pair": 2, + "rank": 7, + "retained": true, + "stages": [ + 4 + ] + }, + { + "index": 4, + "kind": "initial", + "pair": 3, + "rank": 42, + "retained": true, + "stages": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + }, + { + "index": 5, + "kind": "middle", + "pair": 3, + "rank": 7, + "retained": true, + "stages": [ + 6 + ] + }, + { + "index": 7, + "kind": "middle", + "pair": 4, + "rank": 7, + "retained": true, + "stages": [ + 8 + ] + }, + { + "index": 9, + "kind": "middle", + "pair": 5, + "rank": 7, + "retained": true, + "stages": [ + 10 + ] + }, + { + "index": 13, + "kind": "terminal", + "pair": 3, + "rank": 28, + "retained": true, + "stages": [ + 9, + 10, + 11, + 12 + ] + }, + { + "index": 14, + "kind": "terminal", + "pair": 4, + "rank": 14, + "retained": true, + "stages": [ + 11, + 12 + ] + } + ] + }, + "ordinary": { + "admission_gap": "334599/3125000000000", + "atom_power": "2/625", + "linear_adapter_gap": "249665401/3125000000000", + "old_saving": "384599/10000000000", + "stock_absorption_gap": "3105249665401/3125000000000" + }, + "ordinary_saving": "9750334599/3125000000000", + "paid": { + "1": 17199, + "14": 444, + "2": 17446, + "28": 444, + "3": 1027, + "4": 572, + "42": 222, + "5": 1326, + "6": 143, + "7": 1357 + }, + "paid_rank_mass": 102419, + "positive_rank_surplus": 513, + "status": "PASS_EXACT_P6_BIT_TENSOR_AND_ORDINARY_ARITHMETIC", + "strictification_margin": "43/1696", + "target_rank_mass": 102932, + "targets": { + "22": 444, + "36": 444, + "50": 222, + "8": 5707, + "92": 222 + }, + "tensor_power": 6000, + "tested_saving": "157/50000", + "uniform_compiler": { + "H0": 850090000, + "H1": 1066862950001, + "N_encoding": "2^1066862950001", + "delta": "1/400000", + "exit_log2_upper": "20625", + "h": "1/16", + "negative_log2_eta_upper": "5311/40", + "theta_upper": "15/16" + }, + "verifier_sha256": "9993c4b695740d41f56bfac0f4d016e7c62c6fef692fc09b0c01b6d67da7da7c" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "622999999733/625000000000", + "fixed_halo_explicit_metadata_branch": "134750000001/1750000000", + "new_BIT_row_stock_sublinear_in_active_group": "6978999997009/7000000000000", + "new_semantic_group_guard": "3/7000000000" + }, + "margins": { + "boundary_algebraic_matrix": "73525812489496313/24500000000000000000", + "fused_gaussian": "73525812468488939/24500000000000000000", + "global_coordinate_router": "168059/56000000", + "group_bit_router": "1176413055495823/392000000000000000", + "group_scans": "3499999999/3500000000", + "main_transform": "73525808989496313/24500000000000000000", + "microbox_face_corrections": "134750000001/1750000000", + "polynomial_products": "6999999999/7000000000", + "sparse_union_movement": "10026650812489496313/24500000000000000000" + }, + "parameters": { + "a": "168059/56000000", + "b": "1312961/437500000", + "beta": "6999999997/7000000000", + "bit_saving": "39/12500", + "cap_xi": "22276650808989496313/24500000000000000000", + "complex_uniform_saving": "21007377/7000000000", + "d": "1/7000000000", + "epsilon": "6999999999/7000000000", + "kappa": "3001053/1000000000", + "lambda_": "1993997893/2000000000", + "lambda_prime": "3489496313/3500000000", + "layout": "1/7000000000", + "q": "10503687/3500000000", + "r0": "1/70000000000", + "stop": "1/7000000000", + "tested_saving": "1500527/500000000" + }, + "strict_checks": { + "actual_bit_above_effective": "6661/56000000", + "actual_logarithmic_gamma_guard": "1/7000000000", + "actual_logarithmic_group_guard": "2223349196260503687/12250000000000000000", + "alpha_logarithm_absorption": "1/70000000000", + "boundary_algebraic_matrix_above_kappa": "13989496313/24500000000000000000", + "cap_above_band": "10026650808989496313/24500000000000000000", + "cap_below_cell": "2223349187510503687/24500000000000000000", + "cap_below_phase_cell_power": "26723349191010503687/24500000000000000000", + "complex_above_effective": "1/7000000000", + "complex_below_one_over_32": "6179457/218750000", + "complex_endpoint": "1/3500000000", + "epsilon_below_one": "1/7000000000", + "epsilon_positive": "6999999999/7000000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "13968488939/24500000000000000000", + "gaussian_above_main": "1739496313/12250000000000000000", + "global_coordinate_router_above_kappa": "1/1750000000", + "global_gamma_power_slack": "9/70000000000", + "group_below_dimension": "1/3500000000", + "group_bit_router_above_kappa": "279495823/392000000000000000", + "group_gauge_power_slack": "2223349196085503687/12250000000000000000", + "group_key_fits_record": "1/3500000000", + "group_positive": "6999999997/7000000000", + "group_scans_above_kappa": "6978992627/7000000000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "635041290400418148631/500000000000000000000000", + "lambda_above_internal": "1/14000000000", + "lambda_above_sigma": "3/14000000000", + "lambda_above_tau": "1/14000000000", + "lambda_prime_above_lambda": "1/14000000000", + "lambda_prime_above_leaf": "873687039/3062500000000000000", + "leaf_saving_above_effective": "436187039/3062500000000000000", + "main_transform_above_kappa": "10489496313/24500000000000000000", + "membership_arithmetic_fits_record": "1/7000000000", + "microbox_face_corrections_above_kappa": "538978992633/7000000000", + "microbox_halo_volume": "553000000003/7000000000", + "new_complex_uniform_saving_above_b": "1/7000000000", + "new_semantic_guard_with_C1_one": "1/7000000000", + "polynomial_products_above_kappa": "1744748157/1750000000", + "positive_layout_slack": "1/7000000000", + "q_below_effective": "1/7000000000", + "q_below_internal": "1/7000000000", + "q_below_leaf": "873687039/3062500000000000000", + "q_positive": "10503687/3500000000", + "short_record_fallback": "436187039/437500000", + "source_axis_superpolynomial": "1/7000000000", + "sparse_union_movement_above_kappa": "9953125013989496313/24500000000000000000", + "stop_below_one": "6999999999/7000000000", + "stop_positive": "1/7000000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/7000000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/7000000000", + "union_tag_work_per_visit_fits_record": "3/7000000000" + } + }, + "parameters_sha256": "c12bc02374d8aa5947d15098288394beff52fc417ee5e5c72bd6b0c83f4b1d80", + "schema": "hybrid-p17-padding-outer-endpoint/1", + "scope": "Source-bound PR4441 retimed arbitrary-input local word, p17 native/direct geometry, a finite tensor recipe with target padding, exact moment and outer inequalities, and a specified finite uniform rank. Native tensor closure and the PR4359 inherited precision, storage, analytic, fixed-tape and recovery hypotheses are written premises, not a full formal theorem certificate.", + "status": "PASS_CONDITIONAL_HYBRID_P17_OUTER_POINT", + "strictification_source_sha256": "8028ebd0f83e59bbba1c5f0dd760adb3050c4dce660d675f48eb227ff4649904", + "tested_saving": "1500527/500000000" +} diff --git a/research/kappa-hybrid-controller/certificates/HYBRID-GEOMETRY.json.gz b/research/kappa-hybrid-controller/certificates/HYBRID-GEOMETRY.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..8579335be07b5c0e3749dbe8f72bba08658fa261 GIT binary patch literal 724051 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⋙|n=~!k|jm-PGp)NAyg?u7R3W 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%0Aa&F886+5m)_p5+V@#4_MD?Ab1& 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

    &=MeJ&Zu)u=hOM91FZCjM2kC@|PvP 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

    b^pVZ|oAmf2pG_~tZ zmY&J{E8MwI?{N-P_Gukb?DX~p~+nXK^u+wxJe0iS=@JI^e%fr)|=>^W%+ z2O)@vWu%0MM$4e!xC+rr@JKX@9xj;(H6$a7Y9?W4u+f*+;w#c(C+hkaNemQmi~11l zAJ}KwF2VF+7AoehWZ1h#U6Er7Xc?4jB>G}hxV+sFz!pgXrFq1<0K9&9CZ852o&JSI zji2QDC&}dS7EzX5R>K6pV?zb8j1n?N;Rl2@8^o$w>L-J#Z#W=|YC-P;aHu!b2N`txox7oc zU{S)zXdCobZgLCiZiBeFA76=e*Y!J1&?U+0(a@%u4LlMH#Ysu3R>!NDmFmBuh(u%e z-=2}g4TwlCYNwXY;pgQj>di#^m0s-@uc6>`mIi&u0Y`aHj-40upsLr@xw+3ZVU402 z6zPOJOI8Ckv;LD0c*$yFvd*TSBFAkQQYJZK;+eV&yb8_|S8^J%n~YAMJf0~S(5=DK zj*dxn8AMvD)j#XVw2@h26tI%y2<-Si@x6}=P1wy4d%T^)`Z)>{phmvo=#4dvKbKt319`^3V26PqIo4xs{w<{MDm(0o zqf)Lz=OHJtvYjk(IN=H+Hwv1zkktSdjGj9-bwoCT93S5s?1cNZPZB3(Vdoaa7JsgG zEI>Wo`~(Tk4dZRXb=-C4cS|>CEpwpYP#@v%b>PyNwgqK(^1p9mZ+WJbiJ(&rX}HWg zI%wQ)z6n(c2M9TN$N`2y9pT2srC)l_`JCT%OHfGH>O3oKlXFOUfFdsoxT8}eIum2r z4Q{g-)9C#&D-kQqsTh&C>1DCmA-RNhXYZPye-s6v{mORmg#nzs&%ceG7$WYKj)<6TP{L zv^$BgAN@q2{&9UWs}IOg1k!%#&{PD1iPDQ@DQPe-RF8%zY%dGv9Ni0zHv-w7p8zfpoSJ(LbXqos zmZPPwa z|EkZYq4O}2Ij?S*U#m@f-D-d6PZrqY3!GVv;qo=iz84>yzSOCUzTbr6S$^Ku5Cc_2 zT)h}T8VWYw3$pnpyeK=}@3AUzKxt$GsJZe+gx3`j-r?|_V%`Mn$Kg(S=Tj~bPTNnK zAqp|P>RRes(pJyNLdyl;Z8Ayne3TafN&{_}CAAz29Akc?6Hh@E;_#9BEExu7k+!k!UUc*G7mQ4bKj2|fEVe4b{Sx$i_YFk~d!(w^B_41mTb9MR~5w%B|2NXBLbmR3Jl^TIt??|C;`Y66IknZPq z^~B_)!Jx(_oVjH^n!E;lq3tD>vKV&kkV~_kNM9qrBT@T`by$jK6YQ66+nyBOK2Y+c z*I2Xu9|W%Cnzs+45-!&66EWtj#P`x=>{+fVSG)|*Z4#(8K`+AX-jqmhJGEou)NM%S z{f@6^ZfZGaQb%LRiZR>MdKH4%Rnk0{bXRgy=fk-Ql9kv4#&SV7L>!*Zrd_D$`ci^m z6zoc6IUjPl7=1Q}K4m2zaSGZ-#xizgl4B~A$H|In6jIAj{ZTv=<4s5GEp%+$=^5y% z9S20N7=o5akNlHdAh)XHjj}UFccP5Xcqgju(^Z<+`W=Bu=}}~M92-Yu^C(@~xbmwf zsyi~9_7kpb3WpW)eCM$iT@>&K?ZaDaqEc@=i`zWOTzSz)1r=95?}C5#_~%5E2_hk9x}88rZ7( zK8!j~SpLZh`|l9{R~>&#RkU$OF_y1~lni{DKyEc{W;q*SUBhh6G(;~~6yGuO zd4O*|o%c345Ly04)m8r0cX3E>|6|taIk`JNMY-n}hHSyn1^RNN5h!Wqanap%{x@)( z;EMNh`y;_Ds$}w#rCcuY=jeTiSiFNd8!$MDW&3fxmDKTf-uMtkPUN{rDlu$AoA-@& z6OvMW=O@wXvY)MPrqs0wg~Q&F^x7Y~)t{A2`f+oYi1r#vm&!sO`;@FHNamZM3_c9+ zY3|X+`?Qq03Js=z4Ma)cz;+>@$D)?Sfk0BBgH(>=0%42Olk;AYT5_%Pz@1f!6N>+d z2>ERPk3>l5FCuh}AVLj)CqmHwB0?r&!J>c_ogn+!%^}+@;#!t(v~LEf zTwE>yO*Lz-g3CHp@xFXMS=MHZYp>arwdEkib1JWZIHEc-kZAh>-;Dnt4H}vGXz`wf zCs82bsr=D$y7-JuZJG7{v%6^H->QlfMOf933moa{DU-8}g1t`BBlc`oq3&)-B5Uc{ zS3NzlENweni~6y$jN!LAe-AdgZv5Y(ji5r;Kr_IRoMLE;V<IAOlRbKhuu_U0z&_ zO7z(P9EQyf7UL1WeTABaIQyf=qI5kl2y$(Bv)<^-bIy&ik6ne8q zdZyp>zH58|mrc5huL>ub6ur97Gg3PFuv8Aq-&7^@(6wOllM&z+3tWOxaX$vgh_3>) zT=j%Lp>a17K9GQ~2i)9XIAZ`>Zw^GsinOwvSM@(3|4O5@94L6C_lPPISuC@*P+-!= zJaS>KgZg0aO0USWNbJ^BWy`iKz~xU9pntHcw^=n=VG%gC#bWbb$MdF@EGBgu?8IR?=J6mXoy9D8T zM&a|tM^XGK^+tmL z#KRHXs`$eenVrm&3@SR*1~?VOd&gXsy)H-!`C6YhVo!dRlRBTrm9AGc){JvXw}xSF z(PZ4-Y4=`z%pTl|-pp6k==pJ=HW>rVkU(ox(WGNl*sKyBQdfYLlE+?_+M1&XyESv-#yBkZe@G5+fP! zAdA>%P+wC&ZmBD1pM%JU6Eo4xY>3;_uzO#}0L&BPX7O5U#Bju6Sm*M)&fgF+<=efR zUG)vJhm){!MDJ-5R-ZW2=#b_bsPYOalu|XU!(am4W1up@ZhKVS+dVr5ZdXq=cogmv0M~^{bN&wp4O8d(2NZa5}dm5kh$g`(o7zczW+R{HT` zV!D_dgry0*5JB2bsz(x;s&Qd=spZv@UqMGvSmd+kavG*?#YR`)?teCV@X&*aOeY+n zJh0fBmQ}6ySrKG^DhQ!6jKy7*Aj>H=*WTdHlZe;|eTX+wnx{}#xv3;3DBg@GxRNR5 zp)>bjG)MWq}TMXe{>tI0VIocTs3Z^ zc}|HF$W_66QP=Xc8Db)Zr_49AXnvh&K2*ot@BE-j$Zo1qmV0DY9$yE2U+p)eY5P2W zkyIYaj@y^@-{~;d(I)XU-f*Xb03(?CU7pn?s_|P;|M0M8&u|S^E$-Pk+)u?ZOwQwPog6=uNI7z9GP`1s*{=2^pHCxxM*qmfU5fVk z7y5qa5LvwxZI+l0PVZ+FK?jS_Jao%c?aKpU`#joON{t7rjP88SA0tStVPWjPV95x6 zBoDj!MP6g1a*L#0s6cMF4ciihHs+nQU^qfWp*X+q3P36P(zc0t1-(&z`5}0jduvVf zo2B)bWP!vY(~*?2>hV5fYP@c0Gbe6gBTgDr^d{oPPUEV?3bld(BvZwsk#D!7feeln zdXj@0W>0VQN&?%qbt%!FqW*z+>a+gzZ3v@x%k$T*}Sy1GY z=CaM^hsY0}BW~ik#CrT`4m-ROoyE@H1^uJWMwlG`9Fd*T)M{dUx3?gG?O0oWrWw-) zPouw|pzwK?X@9c$o`=QzwZ+8t$7Bi4d)Z@b0^5gtw(Io4 zj*)!jTP7tXYw!fo&r5vCiZx|AE(IMj&l0c#%fKvxjs~k_3cnh}hN%VKixeq%B zqR^1hPrEOHMK#8ujG!aP%6~A{e!Z@m(tJ!EWUl|0 z5Sf7UZxDIvb--DvTRd-+Q{KfL;q6OWqwv1n^@x7OATHl)9PHqbZKbexT9j+D!0&+# z3si#-UVc*nL{W&|<_cnNj*#jKpkP1tX*dEgY-fvFqmvckiIjrGGMu}$>4v&oMZwIg z?gP4I!3Hb_FZ*^-XtIVGT?kEpXYT5u*2s|+eYk?J*_v%XvU#F%L$g)EEFKk-i zqEUYS3qPoPgCghce-(qWyGOqVuFrs|63ZwZGl&Sb58UIOm@tL5c2x(QNla1Nd-N&T z=mZo5ZAeD`q%!cYZ2jMIg9R@_DtOf1Dzf;0rxjGZFbH>QTg$$AaYuY3*l7MC3hh}p zZ{La#acMPVh+)8!MM7o#N<>f7xb?;2UwNNtx`&oobA;FDLcJ;By_!sU z%(foVEJI}1Ie@hiRWi7vV~?*&Vzbs|iLtEr+JTE;4xc4&YT1KNP>y%Lqx=QhPgdcM zWLe%49uZtLPcC{a)&*4`KZsL(g&s{T2?p?35opxm3u{Ftbp4#&w<)5R9ra~Q z2gNay?{^iaF*9)7A0A&!a#lR!fDcDx*QTbeX+-P0nDNuYnVaO?H8jgp?exha35id# z6!w@YWi%|)Zyn3X&~tbQn!i(zMrFnVnWd+=t?;02R;bJ`FRTqdGze+~D(qZ?y8H#w zy6vsfK1T}WV+Q=nq!D^@h=$dvIb5rywYP=_l^G&kRq1Xm{V40pny9hN9gQpd1!Qb~ zpkv@lciq?XZ1nbF8k3PuiTJNCED@9qn;IZX!tAz!2&y0q`VK!nG4<}e8Pg?AwSH$~ z!Mc}|%NGZ#Ozl4Q>?=<%{u6r8zhXVgS>_Z<%;TI(i1F#Z3F%JxN~RytqAJ@$w5Y5< zEx$XQE2T1ZA3?8m^k9(`R<~@UaS!IVH2g_B|8vxv@W(NgNYXVaU-LBLpe|?o)0=r5 zc29Ns-NiZ9brgOl>W$W8&*ECY=O>%AXEWrZ12})+E6ZS33&fufPi={;{-k?r6GZ$K zDhuNNH6f&qJYvA*@4S0$J4jxA!-@+i{z39FGiSViu|Z#R_;FwIkE*RMXB+mflkjYxjU!FW_o9tTy}6v!~XZI>R|o1%AODRA_m#SHI8{-<{ts}>mzPY=0fPnTaf$O|%%RgyfPOm{F~l*|BD@?VZnEX8{n>Dbxn=rm3lKuN^Wmu zY=V7fT+jtsvwq+SS&*fKR5)(Jho!BEORapA20U6Hs(L=k`6nihG1b)p?6 zO&KIR-+geNZyH+(lX=OtC4G0UDVzwm&wsZEom4M5{E$C_xT&Fpk~Vw!`>y{)5_Dl0 z3EC9BS!uHxhqx?Lmz|Gf9wN@o|Qs}0$D*M{8tpW2YXNT%k((R1pCb?esvN9RK4UC?pD*+zj$8FQUqR>6X%>|<3!qM}lD09`$*I4Onty-zx5&Md6 za_L)gGFC~Rp5jiK&y|;q$9RY#YslEWt0-;nPby_km~h&oAFXWr$xhARfY@fhiv5#> zGPj!?YPb&5NbLR&F}WNYyAW}xt6sa?44@xbwR2MGJgvuqOFGOL$(0`jO@$224`({^n~Es>i<^rmkGr6_J1E7_g}iVZu{|mhqRVm zLu+LDF<#n{7j9B5$q6Ur2V2=jQh(|4B$rLwe(g}n0*ncv;p_pA5 zgnFabr)|$>Ly+-$y@&8;y$zV&#i>C2qQ#aDWJ<-zheKIPO*4fPsf)RahdqRC6RiVA z+oul~q7&_D`U$V)uD~Xi^+Vvn+qT}Y^cMr*Hee3(o$D_r)iA34elhpE(F!I`c z5MOGGb5(i}DHb=7-n-MPqF@7y(gdJM3SmpcTUyI2;{{ zw6Olz=bLa$u>ty%4^Cek!!B7W3Ho_yesy^weWEP_9lzXIUI!I=OT{Sbknt?PJDw}0 zF?An9Z!B6>Xu?fVG9(mTv3f;6ySH#X8c2wCvNXZqVzz3j`SIR3)qiK4>I46Uk&o|; zQ?HH@#wiPVX0MP;m42HCOswq_SsL$bOdU$F7Qoq9;o*EGnSj-3m3>&Xk#{YqnId@w zpH1^@GgaT{O52Df@*BG!w`gI~2Ublue-_XtqAi&rTULu}X`(CuD|86YI8%L)Lsi)$ zXoRRaCt6Ms7(OCF{VQXFRKxru<%h0%^aR0O`GRmY)MAYzVR$*}QJ?b;U)hvSy_E_Z zNq<*`Nv1>g9K*RDKY!W}Wwnlw7MyoW1&f(^uCHuUaw2%MuBA0wfsJ#O%Cg$iF7nz5 z(UwId4V!l&Bn(k@Of#jcz>;Lkx+y|OuW0tVp za16@0?S>^ZWX{cUOO3?ZE;wY6iE_tWhrsJSj)pS&U!F zf=w2hQA`fc2*QXgk$mG@R9oMjnagSF2y=;~ydPySw7Lm7z9i%qJRmc+!_Q4ne=)=l zcp>5c-2Z@E6He~X_kiXg9Z784H*(d=F|%+Qi`51#0;;{|aa6tL&OTX3kIP6Fe>D+< z$5ldy^~DyOS?kTe>o1x57#mm&y_v2m-P3=LA>um(I>2D0Um>hxRnXjrDQyh|Fo4uu zHHaoApbq9<&Us$H%Li+JEQj%-=%{YQ#So;k{JTyM-17acP7}8M|J7+7**bv$P5HPL zO3JnP>0F0X??#HKkMeW=F1FXu0Pl6l|157Z)R;Y!zu|~S65vXngrzWC$l>fFa`J>g zehK5Qi3NEM>GvG#Wh4<#-Is01Ke2F+Sv&Eby+4FLq}9*WvBt5Le;f0>WCssh@a^BS za@@{~f7IW|q&fo+PlGsrZe8rcs|F2E2FP#dww@7>8Be1^TZza!5{|9u}C z=86}RfFUue;kD!^552^KqlEI&Tk;$cY;hC>X@Pg6MsVo3lM%Gn z^%wg=g?_R(>+|?`Hl+9>Y0idFSXeLCu-=L(>Hn(+>r+(F2`CEMv<>|SZB~&^7QANv zWr@6P8J2Y7H~z~KX?|ykr2gNxM23c|E4JR}@Nz^BpIa^8zVqm`<<$7CsDH?=A(t+5 zGErmF?_*-~w|krPb+)JWtbWrbz+XN@4zn(^bC9bysROAZ`~5SOapKVT8)^WJCXF?D$%ScHNt(HOPw93Pm;IU{7RgmQ>P@r03v(ber%grtN z1W|{>AALmB;l1DL-bd_Dk$$V<>)0IO)ZyUEqfu+mO~CBy`Q+W4S4Y1){M0M9EJ28Y z_6RXB$mKs#fB!pAzkP%_bg4i2P=bzwh_Db_bSGh#7soEgFyG$0Lj0oq-2+eNcwpFM zVf70ZLRd~%8UFZ31q0Or-q)Hc>!CWv?j9I4uG%roxaNxgU5SH?Uf|y4=ckFY5{ISB z@v|DV8=xamy*YqsG%Fw0Z8h*P zhfuG1&AoDROGsdZ6>SF|i^o^OfVK8cB)U15`TOO-k&E)Tut)`e@f%^Y{s-hX*{PWX z^!TAl@irOkRr(`hz3f1n7MmyuvhZ^%kVqfquKmbajoc42HSY-Mc*h)l^xkVB_9*BC z#NfeVuLerOe1XaC!;lUcj%ThECiHN&fqDQTWtYS%bzzIzPFxB>2@9CUF{d)2+optI z-9@M0t}%dt05zjnuDe*U(Pe{x?=lwLMFmH0|D7n(Nll=F+?yuwpMhI{g&X!Lem4Aj z($ff_Wjq-QN>*LFi)BM2qOld8cf~|4J9{#OaK7(QeZ%i4j9WN;IH7GBEsf=3-w@DW zeF^;r>ogEUUK2JMmDPNAhi zY9Yz=U+5kXu{~4~=HnJC1MfK5tUyBw2}w1}p0SlrD47ntAJt&fSs5LgjfUCn#?xCu zh47W0dveT2J+jo*|H_OVWzT7Wf}WEXeI`OFv`_$zLxj(zTWpU z8czOAzw8%TvvqKo0`3mT+ai_kZR`)-kH*t@Lf*v`W_Llk4^nNw_c^YZX}WwsDP2l5 zrf*_>qvWe}zl*Wy@Vs@S=p(M;xL`dq=gZd{pGLEvHoF*roT~dR?(ZmW_AcV3vvb`g z$-DFZPxiJ&{^#*y{pY9?Z;zeho*qee{q5>7aLoUl<%u^+pX08R2JOi%|K!uTFnxPr zZOF3rN$R!S|L2p`5EvWydhXo+_JW%J1Hfsl zdz65X5rfTo1qE#QCu7-M=#Rd@n9WU`oekw z<+Y1lVCiRD!plFyOtp#x4r5E*lU7IXnyVk_^saN8VwY|B(ZNf9ipQxb=tsn!m;M)l zZ}S-i#F1Z28Ph~ZvLH0~a=y4?yoYY6X^8Pw(TkDucHK>qKbV0Ja0f>vaW2w1Pu>3n zW&sQq^NThqQbw<-G*0En?Hg)zLerw90ou-~1dwfA2eXky&c_7zWBF&!G+#d9 zzu)|eS!1@qZWmi7IhA93yRM{s{9ezKe%LvH2nd*d^58I? zE2>Hu@1s0i+3$1ZZBjXy;Q{jfp6jz?=N$dX|1g{pA^3Oh40!h>jL-U!>P4Nm?kReQ3;b4$rJr#;HR?o#HKDm9Xx4L|Z5!P8gM2hyDst101 zW)AqE?fSaj3euEp)J;`X&UorrQB^5f^NOll zW27XdqP`sx|4Y?vdD>(lS7C9GsIWk}{%PSRGeF4!+&<)}1*ifE2jljh zTZH1r_S#z%k+H=OT^9e;s*`6)!U|;mfOAp54kbB12>#F5{F-kLnlOd+A)~ob%HmPj z#p!T`g*n(ln$Kbsw>Q3)$!BhayN~QUlz(NxCkpF5_bZ${1%~n};#$ZA7`$P0o&jtm zl{xqMSuA84>a05+&|-;E<8Q$DED~zDeHJS5AguRdTH+$1(#U&p5DcA=Uzp`44<>pq z`1da?20%T@c2)91<91{w@(j@@#D{=h5cR3%{(0v|t(9gJG&skTT!|(BF*%+S)Z&_$ zfOG4U&Hht@p3@Rzn$Aox@3BASLpZxQ7@*)uzHk;F+wY0*C(mLRu~?)qsU;CY93PbE zC)N89n6QiEe-J*zu;hgyFqt4hhWC?6KJ&5UT#Od*v6Q0|VQnDe1 z@P^>2lUl6(-2#pYgMRY-&O*j$EfaISp!nMTV~l5yeJlu(u#n#2Xj}xrMa}-wBQ9ip z->ZKk(MVTjZ+x0-lKS3w(}U8`W71&hVS!3?BRf=!P85xay~s%?Efru#OsOEY%gba+ zz6O=NKoNzr9WSFX3XOdJ4WL7mT`HW8VJ(zh5<*cKbCbNPFkiKH>G?<_U2m&IB3R$v zqO>4I$IE(}aR*?DoHtt8b(i zf0XAc-V2|SP1N)WjyDR8H_2WoPmv!fDjugjHZhmN`B|a1Op9Wnn0U|C5&`9sNxOk? zt1LAFkB|SE-H&%M>ZT>;XE{HtB*`*O>u^jsheEid(LbLPLvxx6dkmi!+m-k%G>5e( zhKk16lq914ypIbSMoMrTY}MH z7v{QOXq4(q0Y)R`P$w8EpK0Ryc$bQVxO1=i^!3ETNh#gAUcYw{Iy};t#18rX!XAqX zs8?xxLP# zKMnI}9j@WmPtYHH`e_p)f`DIT^9t{ey-o_lDo1wD9vyHiuxDotYuY<(!8OvNsb~Yi zDmISRH92O|N#|9~4C>O8hWmQ1_zu4tHO0LOtvKD-BHNrM=vVge`+W1tI{EUa4R5AN{G5>Uln;B~?Wf*^z5{96$gwgv&8Lt>7B9{H(mnFseo2LM$#d=hCE{Wce;(|# zeK;($U-!9$QsZLTMFK6Wie|8k*l>tKQyPL_jSWhF3EYi9+NKPkBzjVepsL>+M?%Gh zXFO!y8$Vb$eHVIcx-fA#Kj%JrG|}T=fk?nz+ida=yGUD-_~400%I1rq%#ICgB;S4x z)38!DMI$^g+TIP$NS6U~)4gXWCiXA9=ogqGj0ovkXU~M9(cs$0-)*>%FOK2IB|GT7 zy8q?g-)n|< zEB|Wip|?ihe%+Dj)-}hC;B670j|}q#H3nk~?qhM5UPQqj?+3&%iGHvNDTDLeC|f_k zlqFAP&IUZr-g3^Gso|+ZHQi42ruqjyxxvyByZvgigl#N(%TW)*r!As#@<&VQ6{EUS zFt!nL4yZ7D-+CEa&&Lex_P@Z1h-D+KoP5IE%u(H#?g)(SJ%z54r~765Jf{xGm*}7S z^D_JSt+N#s$@#L4Y1QhK67$`$$$G==!VRaR7%h5=ZMit@a|5!XO5I@5T*LWC6lbt9 zU-CtqFCso+aUOT1z726EdRr;;Qw&O%`40v7e_M|>-tL~FPKm8FU?Bl1xzbh(B&`o5 zEm+Rw%@8K)JIVg>)kFyV$4W9-4on69Bx!Q=_jU?TeUd$cjV1%s=m*~>@{ z5->HU?quH3=--|uc<+*IE_ru339RG~z+t^iTtYu>V&R?-dM#56yd19OBuZt)m2MP^ zT7cDfNT>X~`;Kv|DdpPGMP}%aU0ilhH`tJeOuHtNRW)*m6Bs{ruv@?koO5?~yKNtc zenmX`O|TH^UR>!dMr_VsY#M$$|-JzIlJogIRaNw1>k~n3hkHI(S#Q z=uMf)eCMfTxAMZhkIFAiJr1mwaX&IHh5V0&GcyAG{JR_1aEtAI0Z(r^&-S74A-x{9 zsdM{FcYC?@h$;1XS;6#j%S}rEKtQzf00H=R!uv+i2PU&#aL-5tC*nMCk;Pe;6G`|h zzUZdra|S{sm}95R-9MK4mMR{X_~qZHoMkVg^wU%C)w`w<($0Tw?j$c!{UKAx+6I<=(%#OUl~4jsO0(ge-nmVq+Kb!&r&@(Q>;ll z&YYNaN+d172QOY2px6lXzvG}3rT=0|arc2{a9ZBE-jaP<5hVfEzxq&(9(qo*(9S<8 zK+oYl@e?-NDll%qO+ItcdhEowBD{OYZHLUKt&<6YSZ9%%N_9J%f$-vCB|NA@FN#^J z8t`hWl;tx))0pGT{z{KotuJ2x`fr5Dsgc5;j=Oir#UUKnU**d-r5RkS+KoQ2L$I(m zu(!MB?assYCtqQDE_%Op5o+N$HT?BRy!P26s~!dXCKMYX6p#Cwgx@IYT>p&{Iki)i zTy$*uQHYx7T>&8;`(S|cwSmJ(mlMOcz%Q=*Sg|wf%kB&E)V}txyqyRe3}v3ao~dRH zk%(e;n*lVYHc+yrfL;LxBs`>78+g8^>hdX!sgiHwpItoD9ieu$xF;=gr544%WMNaD z?KYByOH=K8vG*~y($(wrk#CcT$7}eHl_l<) z2R9@Tn(pSP_;Arng^P_e8+F8-_jLS^Z$8T_`D+6a=+J)d{l!I!$I380txTnX--*Q| z2Y0(C30+Ctr+QRg8km^wK?Tl4GSDQz<5afb%b}rpaeo@qov)li$=L^|eIGoF{A}QeK$LSst7bADYG`*MRf+OuK zIf4!c5Z(8>PL9dVs&LI;$#E9$EDPm1B_8FeHn#ZtOp7zz=zQmwx_J%^&YEW7$cet; z6NLz{OOTkN-tFslU4G=r49;vL4+Q4xt_5~LoZqKe!LgU%KNmDStj6b@kM%=uIt~!6 zxn^ol4ouzh|BSiDr^Y{w<;Qn7zzVY2m zGNE1WK63z(;$4W>jF=Md*bvf73qc@Js84ic9TY8YKhBW}r!TTluogAzCk=8B=YNF1 zcLVe>VkEf)EYWK2X4hv?9);nuzct+px!}o_^)I+Dr74xjuK=eAO$JOwho8mT2@MINB>XwFacnbV zx|M`nnOOP7-;>RajJS|ajnZk{)V%z_Mdh~;skj5&QTz(s0TOkYJ8S)0rexdF{O_oe z4oJpZ{hDs)wa3N!p2a1f_TKqH4QJ<7`X(p}LYjSCmWASHAWr7=^zBVUyMI*QmnQz! z`OC=deQ5|m$??9C=F@%Y-Um#jtDzC62OLWrNz=TKrEOx$fIXTRTyPqnTNYeb!r-{; zyt`sNfBp@Si(RW~)S~4djZ}vTd{a0sH>KhYsLavSjUV{(J?37Pe8s(nt4eZTO}sRf z;suf>6kC51ZYv;0m8$K`ejH8=m*f2d6X=g=;^Me6pzl6x3TL# zHhMrQyZ+)#@vdZ~goUDpSoJ86n%^D63~`8GikFF!T=N-xs5+dPlrP(19^aZM_+jEp z>(8V+(RQk%a0Bt_k;@v=)nh#BEVq8NI<>?;9esfGw+Uhrl(@yNkfml}JuLvA(P>G3 zTHVT-qzfKwe#|c?{pq2gj6mV^`}71PUL&1mv{?OBBva4L77LyxYP#Tj}6F>KQ&`k(L(hJ3r$q-KM4AN0Q?&lcgS?(%FCzRoEoTfi_9e?aTTCi-D zIziJ`jHzvW@{-Z+kbn7Ps2Cr>ete^JXncS5y+Txscgmwl)TPQA3C{SE>r*_b* zmV9u05g!6^3Ls5d;}fxY@`6d0L>C&%jGe8sN0K0V%n^~~lij3D(~Cruw|fy0KBJvj zgs^k4WOzSYIKHS?pJ6=(wVUI9hams>Ry74ukn16#-LlksCW?d0=rycdUX9v?erO)@ z>Hnjk1SZ$q#-f&N%-wR}-4lrdOHJ=R%t?axkP7A$3Kp1}CdgwbnOk~qO~u@MNNJuq z6kl)4=slYhx65;poBG+L)erqQ34nE1!)HnD*D_Zbe z_ib#)RGO;O%Oh=KRt}v%d%y*utZgiSr6A3V1L+f&+PV+7xmsP0h-`I#+G-(xS#`$5 z7bHIkGuN0=0-BxqaW(@8YxDABujO5hs|MItH%w>7Ge7p+CAbcR!#|H&aE;}+-&5wN z@wi_oqI&hm^i8573T%Yx}8m&&6u@ z3H}UB{Oyb!uH?`2wyC&JW;n#%Li_nlBlm~hlMoY6ZJntc(=0=|>Ze|s72Ue}2)|65@rk?R z*@GXu2OTP;^`mm#Ju2Ku3kL+O9@$Qw{-_0?yq|bjOHYg3@1GfQGIO^54|!q8+`SN- zbARSiZjD8bcemXl-bG=dCwwldr}mTM)cNUJN#QG^bt)ZG?T{dXDBjl>qk4?%2z?{$I_U<6`qXE6(O zzLcA28(rfZs32X16(gMwQ|%~LwV3xlhIAP5fP{(^dUXg*U93~pLN1iqj;7sCJ-fJg znC;ec0&B;YLV+t<-GpS2rbB*JTKi*Wlgb(Y^dSC+_pp#y;^(TwW3k@Bc6s4?jo~eg zuzv2L2XRR87oh$6wawEeaS!6!&KEiCe*ZjVxVr>WLa+!{@Yb0p^iLgz1=0(7ok>m6 z8A@RU?N#aZFM7;zL;s4tN)QVM$slgh<81nZWq+--i&qdPB!nCJ7Q~G{z1V)S>JswN z)bX?FHx`o-%F$U_0W!P7 zp&UdMQw7#!4+uph5jWs_UrjR*dIQpK? zj!}nP#KMmI_J|wwe!b9_Ain4jS9yqu*RV!tVrOw)P_e?qB0ZBck|$di24LrYf1EiN7QxOAaL5Dt~3uyMN-LC*2$#r7UshxUiaK zV6kUhsgHx=<=)f+M1B|LX-06ASep0X4+t0PzSmP3WzBI;T{r*xMV%~ zVM%_&X%TyR*t?)B5+(uM176%|gh|xB5Q$TURj!Rwl2!db0uJMSUgSzmn3kKd_;632 z!O>OgRLk6>6GR@^#aTnfb_>aWS^UPq{r$CYPh76CXE;tA*8l5lb*#u6-*+X^Ub3+S zBI+AUh}M}!t@3*&3w|X}aok8Uj03vE)!!k!|0o(mjI`tFe|Vf{@pi97UqlHUmxeN` zZJsPanitciJH%N;-vul8+Qa?@ZkL`S_LL6RzLZhJ ze7l_YmVYR?)HvrYn9YG0{PVJomILbHPJ>HYjjWD45%Ebfp6rgOY4ICcb*v86`WLk7 z5J9CTp^XL@eXD(cgL<5F`S`LF(|kG4pBKmhcnW5-M+ay4JMFV6cuPrZ`B4<`$VRXO zh_w`QVnS9)byv3a&(h=>eGRQvR;Q~7M7kdHm3?sr?`(yK_m(}$N#Y-#*o6o_p$o0) z{qg6?-;K6)+1KBzn%-$~a=b)I)8LYe#IWYorc_nc4pUntgC%D!$+oITZ1ja4TVzCd zmz{w*9QnUJBDtGc7XiOIzg#tk1Ap_QDYLFWeWOo+Xh6^j+s5qg$<@TNoDpfriP7M) z_c`fcZYTaz76@nWua3{s`6jpVI!yI zE?9d-f!ZqcA*HMt1vx!;*{Ud=02Mz3-1zGr=unv0 z$pKKl$FuB@5#NM-WN3SdU-ns0qEO!&Pwa&JGXs&VcdQb#ebH#t#VyXy| z)V##X<=it0yz@U!{H|L`!LXIn^0q~byP1HY%`y-GO@v1QXECZrTnn<6=mk)Y!wDSY zWGC*CCv4{TmpMR@89MmXo-7X&gQbC4BG{}Lrtd|plU>&NKnhoZ-d;nzGegAITbks* zHd%TSTn5%~$8z$rJk|!(`6#FCZ)ba!_=|_f{eU>#ZjCUQ08^m6lw3yk~ zl~HI&QAyiY14~}m^ZMU!ot9aLPRp*v9WQ{~C&s&=v&BCk*+ciXtSIfMUfrR0Xb(sMOA)D+r+GUtMe{iQG zzJ49vG1lGXKT=gKSCRz|q}Qsk;=0A!t1yO?;ofV0vDFbDzo-m*X7E6(lhqktX{*f6aU!6b40MKuIGQ4Qz_0 zW4XnTiPZJ9UfM@7v+c~jo?eYE%o&&dabnpa5$lTx4%97n8TU>wk0UG-Lkl_Xep7UXFV~3t=&#G#ZG#A{^sJt zFsAvTwYwg22q)qDhHxM0jdkU3Q&}kIooJ|fO-GM32})y2ydgVYTHm3NWcv{%D-T&I(g%&i;Sn+;1_^FemE5yM$?XBaVM+nw+=K zr1?PmC)QN}_l==(*WqfIZ1p=7do}E+PgEkaFj0hVKQ6SsoJ&RV>-nAcFP0aBY(#JE z!0k+Nq)&7!SEs#%5@r=y zcKOMHc*3s~4yoDiM!z{;a36B9qS;69JJ(3pLvR1kmEG`p)Gt#)JR|w5rcPvAMF`!)VPg^|jrtZR+uNcsOt501I-`;<}j0EyTMI`Xyr1Bn|mivQxn-r{PPD-M!@uCAvK~8sEMk z2OY2I@%)E~0KUYDG!cdqtV+jFs84FfV{b^TE6DXZ*0TL`PnILg?^DY)E}J*8L(BxhZuwj!=t`x+sl`okNrcU1knD@?3;mYcrRdt%dEh4BS&M%UO;EBd7_EW2h>pH!(2 z%Zoj*@Mzz<#KRjVQ!=_P6!n~6M=F&`Wj;bo%2}uS7quu z>Ase?g6!9*7_No#j7Gipt8FtSREl~U-Fa`+G0fnwxo5ttu;R!KFO-mnHCn66gYt2Mr%SUl@>oqHl|kHE%OX492@ zahS2c12DH98ao1}&~=5iuFrF|>x9CJ`YyB!uFwr&-6Da}C@;=n?xDJCzWoMsVX@e6 zcAxFln*UB8a9Q}Z2Vy1#p83bij>T|gTBG`z;8@nou9;X)b9eOc$~?I4S)ANqR2XBB z-vz2URI!qWa3y!bFDuP_jt;T;u45JJhC5+^Uo$_pSZp&?fH6h_{7rr6_l7DJTC>a~ zvK{PkmTOc4hSTwRu1Pld%8q0t3;8(cK8d*^7k2+1dkRjSXf0=7)Xyi|k7^JbBK z@~eZpJTO2>5+1enRLo^#XFe7_^;*|J1=&iiEDN?cNOTJK28g9AnZ)v^E1&<;Tg!2& z+a~)fi(?D)*Ql|iBMNOF27mGjN~~4CG+&8U&Gs$4g67=ox&fS9Dyq7+ogW6rHiGMI zVcBdyzSY_Wux<%3IzaEu4(`G& zQ5EP!B`oB`nz6_NaFkKnJRPg!PF!s!P>$>KL`$;~2`@sI*!UV&6j{hmMU?Bb*fy{C z0-R)Ks$dJ$uaFIRO9Rn#FX2qPUUaiZy+)?Eo;3`PLZ%QPf8wgB6TYV;SYwXTbc1LE3%Ps}*I>ua;xWDf#=)`5uI z#w@3}oK!#>A-HWEDV}ZMX(hZ=(sE8r>NuO~QRhpe{K4VqrIOZH<^*;{S_Rt)+d#_w z=KT(e8fkhy1I=F1f7l!38cQefB$&>G-gMsc4)1W0BD?6o(Z@_0pgCN)KT|w>&w;Rz zz>ZuakWa0pZt0ts(}M^E zeS*lL{-?UUeO)CjxF&{5fpRTcNl+>dc)#C=tzkqlJZHMEU+ExR&iMV^9&M&b#;`#A z#dO{Y%kL2cQTTPtd6l?*N*qw;L~H#^ zo}9GoplQMtzY&loeciF)9Vc*pFi!mw39gv0k0-k7h)4NE8UCwgdQ0~Ml`23}O?R^D ztN=*YChkG`!JS8APQ(*fK;z}3v`+A=wnrsR*=_Ks9S#jowzI!jp+27 zcX`jTLfyMwq)?ykN@wJaZMGj!Pl-Q~?*07>LC+l}JtJ62dC^t|v_P)k4z^f(r z-N@?nGd1MXMh@QFxa}@41OjY)db+P;#`?X6`MPL8@G8;as$d)KGMo0UnZixUs3)<2 zW4yG*F;)zv)HAIVv72==9Fxi1SVw{)pQd%yq1%=zEGW9xjTN>9<>s>R7a0fLF~n4L zmFKUcCgr70=Tob?bVygU#jD{Wn{HZnzr;tnkn5wVlu0OPH4rShG(9VuB7*o{2C;g4VvJ=4xo0j<)`m5cdQC5k zrLlS7)m1H6a*Jb>&NJqSw0&)?!U?pU>z6KHLrzHY#*|#?;T2vEP%$ZpiKcEo^;4+)>x<$5l5r$6LSlu$V&5 zqul9RlAUof2D~ENQd_L{763(cc%j?pHfPJSlr8dAj+3!npUx&xpDvSl zN1si3(;`K26e8bsjVckT%$!50+Hnc#rsE+S(*ceIdF!evU9DHhG804G!GRfD}eCp>5H5BNu z!KfvZVrCHcAYUkKOZ~t>8?kAS+f}ps@{SbaC8Iz{IR?Gv-J}Jp%=-w?w&b!m^FCs zRsZ*wHQu@Ide_*r*lKq)+eX4*dr&&iUJHkaX{~^Y~Rf4KeIj@4)}&v9dYsU@$B2 z)s@&*hx9W`39c*vcE~-?jH@96?_%4t&GFbf>&pOg^#^i&n_?|K84{bilH*FsONB(A zwrweU-zlBE&gI{HIyJ}Y4mCeMeHb;zzlP1So%)Hx{LW@Ue2^o-<0&Zd8jnNxcstQa z=9xoSW!ZdJ36zzh*3A>cbm6-qAJ5`?IE76s=?7A)RXEiB>@Jk-L5MhA`iY}QiUq2K zYMnZ9njmX?{d+k<^4POSBFe>77WO! z@f;L^Se-w;=oaX4)JNX%*f{-86i1m%Ow+z(Pf zL#q&6?!K~+7m{sKgQg6}Yd8bbj=}{FiZy%)hhq=1)ip`EdZy6ket${$2WjLxk%Tb& z?XmaRz%`RS$e=n`-&a_=ogYIRuRY=^VD8>+^Gy6Q$GcEhHxAsp?%raos?uDmlC^Br z`+&wP!zZT?y6={I#&wzL-O{ZZA~=2WV69p9j&%=LZ9ryBOst74OuTI&`{B&UvJxH$`W+6UTFig%SfY(m{~bA z8FF*2m2%hDv{GWj_^ES6SrZ++#`f?3-3-jTAj#sO^v-%4u#R^6BK<64iLk4#m-#DM7@FP*k^a#7^IFx;?K}kU z&qBTF5I1&C;r&bdbzYFY;_rruLEZ6G%T z@JnSIex>lTU9j5~6Zfc@YX9bAf>LL$w+!6QU7FQ(?AmQmRcfGA-OyHPmeJ8?xMi$? zIwBHcgy@GRWgUywbAMxL8f@g8mAq0DXQi^z;}Dlc>Dk)om-zlGkL;YY`d z975(SsdTnlQSsaqy^~JqH?T+2~EwcD``k`f538EJG#_P?pxQt(+ z&y0ISD#5mpS_K(4O7)9vDEAK*&L6f3-wAc^3%l60jW$`%=1z1}1iH3wo$Y7h$U1T3 z^e(8ouJFvU+@h`RdlyO>&n{@04ntN?(<5r^wFMgN_SJ0W;TMXD=UE8%Ovz?|U-_j1wPSQzlgu$4*%~f8uJ-ytq@qVkcbJRo>D6#E8JIRc}DtQ|OfaNJ*Im&|ijDB?fWSHA>7_I`G_^b3@X-8Z) zQ2u>R^+)+n3$JV+9`la3PkHMQ0SaWsp^^V|=Ck3XSdQv;0jwWzY5`O7n%QcrizNkS z!4Rf^5csY60jHQP&pGEjp;#}TvYJ3@GGWPap>50Tia!c!9(dfqsDD~JHc1;oUS zS@I0^C+}@-5-_K4`JMB^;N~_wyxWeMQ2WV8;{0OKTiq|6eUO-KDvXTTX%qnLr`loQRV5`uXR;6>K(M6hzc};};2-gj zCvv;|TE~nl1c1NJc#BGcAV4ZDt*gwwcKo0^1GXGZ9a*gxtu-x0s8-)|jZutWEIXeW zcWNE;SM`AMrbQuWlil_XZUPQ$J~QWowXL>N960L4z}oOwgDgJqHY!yw)ZUWHp;5QZ z00Ezw34x!jMcQ)+AHy4!hk2%%=XZNOlfTUU4!Di$RW1-aiJAE?7w0#+acRji(192j z9GZoCtq&IqwdJI2+3KNn?4ewws{FUNg@3)SGXdFiYve~b>7cX7KC=_Hs+zsshlcl! z@AKYq8A~>#Ad`Eu367M|(da+kv!*IkeZxl=eH z%v(b=nrE!zgYq!5`!lY0YZp5#b5N9ya1<#9DRg7Q&LuyAF8IKzo-7n(q&&xB%5%fk zB}e7u%KsReb1M7>*7J;BuXnw=-e=AkFtXrPH8!_7yUXFOF5z!ku=!zn&3D2Br*hX4 zTS>DD?4gA8Y6sQ8<%}0uxQ)l33i7H~eQ&}lnZ&`ewO%AFstA$-uI`TXPGm*TkVP!8 z_zDpGI3JWL^X=CQI;i{Av@d$lC6|UJ$fq0bK#x_+{R=Jao_Ct(^FikJ&LixZ7Q6?8 zE^)AkhTT}e7phluV~Kj)3>WSpbCUaStCIeZUWBYZ@NHoWQ7uIQSN>19=TMOfjub9Pt<&= z?8HpDwbM*v@@%@CWq9|-3yRon@^6-&fp9KekL+x^{KxRoR>F@Sir zauq6%Yj|wF7!QNZSgvgSds|DZng74GPiXA#bwVGU6t{_e=cT-r$9=&q-^_Z`AfbeZml8?)?7p^XUWJbg5 zE_a*qrVGx01~jM7U0W)r8KOnK*iNnv_;_AUlsUHz_#;)szRhckz~$R(^TT5|^nNW5 z$YP0Uf>&>;WrNhFt}XXa*gAa1!9%t|23<99Z)+u# z^7^&7!>jVc2g{wE@@76#%LTc?w}o4f{cTa^_9c`PvWgwQ5MJ)^z+MwV_C!B|v7iMOC!a z$Me*vLf;L{4GLE(*FLh)iyHm9nM6y>g0Z#3B3&mz6|!?B9@85!{d-4&HvUk!{6uYv z0+q?55CNMR?vN^Yn9i!`k4(qq)=$3z6r$lRP z{I;kq5~2mq)RM59xJ8Xgo)5fwGe}=-4J=<0*m*-v>2ldjoPDrL2re;x_B~wcn zjJ_C)PTwjt>GF_I@?41+6B%qgOXW>!wP<*G8hKd)X)eA)K#~72S>)SpeYPM9N=Bz9pR!O8@l~E@*Udczc0gLSvFruoY0ROWR zF(_xliqTqX2Vfygq6mg^@F@4hciOpAWkMUQqYW0>DPt~!tvHtVf!croHRmWy+(9BZ zVUCN7pwIYiD~cm5f}{aIXs!PrzDMbGwl`tHX!W?^+a!%Py`%h91{87LaFl*}5FlTQcWlwQximprobTE&179K53%Ij88-o^>; z`ZUbFPr-aQp$Yp24i7c;5WBs>=G@m?WvYB4hw?=rmkU6ayBNS;DFoCJ!^AvMi!d!X{P zaN|{c3Vgz-bs4pfXi_^3t6h|;-)4XSSqMLiTQHG2orN{siHOyFdG%w<>LgN zhHXC{y`m%#q#SBOl_*PEXf;IQ#0-)+slGP>G%)g!6~SWDqwp@Si>vy${uK+DjXcx7 z{yc-e{$F#{X$`<84wzgp+TH|sBa)h03EQW$?obyO{d+wG`Bugy$q>vN6 z=<4R9T(~_6evCoO3}%gH7FORJ)^`A)2?f&`KrI+|Y&+*5^)aY!k16>cd>aM)q|jcs zm>GrU4yXFAveaHK;9O9y7)wMEsbdBJ64|AI{zF2IZjb8G^dP#@qS{^3h6C>u&%NCH zfi7diWv+%!%G|k83i_3YH+|FEU(2~~bfy0kHJ*)9KH-wM63Uv z>BZKeW>byQ@!lLQ=8hP_QS|dtEq|_H92vi`z>@#LCtauPtx&#ob%4+0bIc z-nEFNyGJp z-j#-FfL3R&K5__(|oteev#-OQKpdfWUo6CT)2SMJWfxneuH4KQGOYl_-^z6Gfsg z*Iz?yBYX(@8)jr*_b!F|^we|l{W5Uklj$r|X9JPJwg1FM^jCbHFJl-BBGESpAD6Y} z3#8IYp#B#Pv@@a%$I;_EOeX(OYbB+s$4rukhzxJ0P;?<|j5M?>>|6oHmj>W%)W1{cdW=OuU71+mh>+*H1nn`N`i1@) z-Z!#S_I||}*QXwNn%y+CRJw8W_>T6od0t;2`ii~`+i>-%$Co&q@6;k~0^6nmU#aOD z+V^yxk7DT<_rMIDELBHehPghO%`!;}h3|7U+%6f;9XE#D{HEyXW7!UDL$PF!FSA|r zMYa1FLS|^U55>oI^bC52HiUDhABA#T$m93xQW7uM(Gu&konvRd({EO#rMY-9K?^fy zdW7D;)8s9VhKhDA6aG;U!>-xEg)fTv$tS3VqCEld^vzk^7ez278kHt2 z27BTl!#?WGqM>{G^vfUi9mvVJO9PY5m#DkC?|4v~<-}usL+N2o`fU-qbx3b_T>phz z)+c=Fw<x3E5?4S7sbX_AcYd4B3a@>kifD^UcNYpU?YV@7HrYo{#5v zz4E!Tjl68f9i&{o_4nYK6Xcwh^xH`Pr^`q{{t0K{nd{<3HxAYCZe(i5&O2bVE;>=% zp|AL(6~HWhRFy!;MsdD(M0JS>$&r%BPO*{>_xR!6{~;xyL0Y8l$rvm!kcT$!C;hWj z^u6~H+wR!Ajb7)?-_RKoxrrY9!#pWzW9;2O3%wsabnA#rRD=l4h(pq!ML=XsH(8M4b~V&SCo2FQe(ms^2sVbtABdIO{9aOiNepW5$(fB3 z0+B(4v5ka4)}A^VT$d=a=TqV%BE$_Wxwf8-a;*AOe{2JNM5ydz1KE4c zbR>3>{~>4FcI~Agofh0>R!>7NN#uZr?I54|XIIOW1AlI7dKPkx9ppS=drqaYkdyu~ zA0Q}wxsk)Qpv}D7nf{y%fCfx!Qt}}yr>fh~KjYnYr|$IiPx*#lzyt~BB4TG4ap19y z4e6bCb{ilfOi)m;9Vd0V1m2L4{Mi<`GPMX;GPLj<;v*v>B6x^TS4ZOA233#0c)bp3 z-k%cGykGUteh9I{u$lL!C)-ZD{F&x$q|x_es`Bk`<>lMgvi_N8d{niuXw#hoRi-;f zi40F0;4279u0ia6YjBFjjPAhqijC_liQ&MzeET};GPP+1BMI# zfj`#hHo}oG;*q_#!Jc?!L>YAn+-g1h<@FzHaCO@Gf@udUFgtGiVB@ed(6M)eXh;(` zEW!_`5A85HL*8WHdbQSNr^hzRL!{?!?>a!jE<^r!eR1dO`Rg@iCmh`-t}9&nedBj2 zZyr*4J>3u1t+Lm3|7?bYoiBG+l1JQ*ndvmtZJ+IbmIBVA3}z@r$4}Bf^Z5^upZ=n~ z-Uqh8u1iY`zj16{hxv1NH2}WCT_YYya-MO<$9czypcbBJc<<`gEQ7m1LoLJX{AmqxGbxGAkqUW;^dS7q%kP6+<`njOm1oSzXt$n+&r% z;nKPMeGB^xB7^0Nc&16(FzOvyGgGd(9~E=e`nJ=U_q>Ex6 zt*w~e<$Bg$HIzK8=wz9(m%)%>|6GnZi@OFdAM){ZUd_$x>!AxWnk`@mHsoPKgNiUKFp=hC_*5wLn|w%b=2lhsanmO&9hFlhmXa~ zl#3neZaU71R3UP?5IOOz!R-HL^f#_^E?P8Utl`a7IwCr}5B^LnFl$5I>5tYC znNDl2F8f0btryhT+c56*=4$({;j*d^b$?0{0iwmrFzDOn>iN+xkF-5M{ZGQz;aNNl zTTr*~o#H9wcih-mZ8g-^=EzJg*T6swZECRIzpHy48L0c5Dhmz0)UaWRSbLPhTPFJr z81B#)sq(+(kRBNs;_3BI-haB~cYEa)*pl3^-h8-K2l)H98`*mk<}zY*F)8on03x=B zY=b7mo5jm5nTddJX^djOM{sRyFKi_C$OyKDXM7jzf12P|3Cz}32RfafbBgPEuu*5> zy8$BNq8HuMKbe2y$`U~)Ql}_yW}B{K zpWA9~w?P&FPd2E|B)DE;7&512!%6~!Am@<Ww~?X9OQUdWMOR6wY&D~B>iDtt)~iz z&6H5X`}2p4-m36#Sa8+a_Hb%t1#SD|7N?GHOfRtJi?OY*Sv*+Ica}&JW@{DYCHXUX zK@g!no~`>f@(Ws8fFmNOUME>m>{($!L0q|CEl1 z&4e$P?FI)(R9M)ck@5&!t7bgd)2WI`upo#~$Ll82()@OgdPK`fOsc-x3aM9_z(mYz ztYJj3cxtYPO*Ijx7H`AMJ#seB zV_0&d{No2_xkXcnAlzImHSgvOF}Y758J&s};||nE{W~|FbYQ}^Bl0}pj#**F5+64% zJy2568zSZNEMLQ5v41@B*H4p$5R0rSYB+7@23H9DpyLn$!zm{z=bK2u;D2ro>zxSh z6j<8an;uBd>?w&@_Q3zWEd6A&n%h2I*<2x-f0z=!Yv!O(%bgI-Mp@7I#0jY)D5Sh+bvntXz6xo=( z>=rPk1cd{tTw+JAqBm>~a8xvKO-004>69iSVmD6P>X0&mN(<853m{HP6(HrSlbeyr z+wT8K=})}XiiBin)GT(E@FR%Cflr2{VCM5~O4g&n#2st)gv8IMbt_H~zXIU1Ay$Mi zA)2(jkyy8^F!S6tpTDpI(HB`PwIE9Iv(60fPOX{a7G0Dz#1g>_*DDIMcY`^0bZtBW z2$vnD7DXt}cu3k`2sY>vv;$RKbCB5R0V4`yPd$J&5V0Dr*bpA!_?c|A=rNj@jEML7 zOCqpPczdaZ5wU7Vb&fFPh47B=(k0%qa6upf#8Q8j&i@t_7{_7)KqScFe)~AM4{mUy z#B%1{3~{(``8P4vyqj<=%h#!Xmal&q+E}#2N8ZKGjKAFMInvdv@>>2@Ny7Rf0GXN# zP5K7-A9i*ah;V>r9i5EeTHG*9f|w>q!N8J*-l2`iSi3eW=OYrb@H4`J$aV5rX9L{~_LX~I?`Xc<7s2$U@s*Fl?sP8XD(vo4M0%vYyI zDUJ>sVwe_bivQzmU1~>H#{&_L^nq%p;+|kL;^tbZT)IXE%42CQ!|whm0D{e&eU>vN z5h6j^ily2I{~YM5+-^&gp11MyxUBd&KjMDHs8EXL15nGJs1F-P@jfi3|lSirdrMHd>b*I(`0HN{yYO&lQ><4BFbd5hTGH~3aC5!W~iX-efs&ixSY zF4yv&p5usflYWEKdg5F*ty$}K_U+PRSvH1(5)4wZ6fxY4W83{LD4hOv0ppBUeN&t+ z?!49K>@J5M|LMGEpLvHnWpXuf9+V7IH-`(5WAGEp3R;12IxX@mOFiF9U5{%^H@P(q z^3%KP4P{picVVvLdSW8SKHsw+%^pXd%BDY0sm@O#L0fv#BkMqPT;#(GK26H~bv79@ zn$uEOC5+A=3XtxU(;F-25G-qG8ZTaeTH-1x)sZupr9!Efv6$y>+6zyTeu|ZEGXI*T`Tn;5joM0vD^9ES6jC2`}d-g)Yv^4nJ`>5pR_Czsr@6VPS9Bv zGspmqM*Q%O`0rvSv>&k>Y8o_~{NJ5_>CDhVHKm4IbD#e(OZ|hDU$O<~F-;iftmdg_ zVTnGN?+jAKh`GIyUj88YMlW{*VZ_KwO?x^?TWgXbYYGo$yC_KO;M6{UxZ5d*8-G9@{w($qD2pEc!-xp878ZQI=mmZ z=gxLwJ(J%2y*0w|-g|2&SL(mWsaH!DIQ689|DlzCOCqC`gw&Ke_=Zko@+qQ81a%hJ zf-@@^am#97-b;jXKqL6B&Qfck*0#SETKGgdsKTW9kN(c`uTTgKyPzTiN@$G- z9B$DvMG-08^x5yNGa;Btr^N3y?I9QB~v+@!J7tQ9#eGrumMwvVgC9uAn9dNLeB&e; zPp{o+s&R=b-M#&92}kb85Pg7<87`tGYLk~F14?3CZbh0=O&$KT`_{Ssl?Bk?s?v+C z_HMW9Ck2TeOzilX)@nGdUi7V>NRQ!0xZRqlcn`GHSbp)oMoKgq?%P?)ktE!A2lGkI zCwC|jX^I(EnK0@TwXvYw20Cep8in4@Im4zMmfu?rzlbWgB`jwqMl zV0^kQ<6HhtjU$qO6C4$cIv*QJlFa?L+L$4a%IwEc-C-bF!n4~n6!XtrFWjavO+|DL zvC2qL-B!i$QqJY*6R#nT+f7ucTT1sKv&Q}F+73aWyDEUJLb*1y^W|2l0ruS*n- zm`La19Cd_f&=AY*o0n;%KW5~;Bc`!*u;rHjm% zo6I;UXjcX)5vgr$n%hQ$sa&Emt#@RYQ2g%|>DNI-=$zZCs47j-(L4WpDv|xn0q`u3 zTR%)P)Z%}RMO*WqKcD^E1^z-A==9HkJxK=f zegJY2BpLIdZ?cH6Ep!{4%ZVO<#p%7qnST?+H_k9attXTyrI91ks=^ zNit4>A^k2YVjH*8KBA(a!{))2_tU%lbHt_qAskHsUP@y+nW5tMzajf_}k3U=0Jp*2Op4Wm?s*sLJjMUHlTR0m(83jgbA7Yb5sNRbi! z_spPfu})7?k(~HjY7BMQZ>itO`b#i7YW1Qx$<57!vUi!0`$SO+-IcA~#dsQG{NF_Z ztQLzlCC{2NCHK_+v&gD)n-{tH#e7(lR@UiuwT-M1M7toyrafFW$byl3*z=_Sb@&^U z(ermz1s0>8cON9_ z6En$gBRsP4_9!jOvwfX8yDEdE<^nyk7h;^U413HMK0CGxG}^9w7VB<8U+tG~%{3fM zMh=Hth9p*I?_Z3_NpLky;2^bFY*NAWwP#B?aCT?$`bERA%!& zpMnNh>N1YFU}r`(g95;!TYMzMb+O6NFg4`-?(T)JA-r^jc5LZKsVtV7BvV7~hZPEa zF=7AOG%f$Az^G7s_2ps{QlZ*4=X(U?=j;RDCksiQRYID zQEXcf_{+w==qrn#pGHL+f@O_Um;iiKejwkl@Jwf+ZH*@9*R~+lxC~*SVb>yWl;Ljr zKBmxcu1O4&(Xfzg6EPop0~p2}>6l3FF9^Ax*sXyRF|_DuO6BIQ`O#phm^D}L!LL@B z*<@Gws$)6Xun^9PZA$gY^)4ILm6!~Pxz)`y72=XJZ>ldfb*OkIb1Fi8EYEe+=`MP- zBb)VU=s?3uzoOZS6?OMh^50hMec%t;oyGgc&DBk zOpG*B(QM?KALb$pXK^cwui7!8O_3D!h2YbyR8{!gN%JR|G}q;m?o;WG-HRuO2QZT& zx{$(IbvZrn5-d1~h0+D&!wRHbW(V9>Ii zKZD>=o@Mvhv$483A&)9|25j+>loh*RtH4|mdJYU0&GKHV5{V6exBXagiA@jd7kW-o zDiIR*+4N6%h4$Nq!RIsuW=V>*#DdVs_x#?ZCmBA|8@=MNAaAbPN^;}-0%t}vO ztH5q(<)e!oyKvRYO~{Gj2DB(sfAJ9u@?~t?T+!SOjo5#@1#UKR)o+jL$Plbz=S z*2U4Hnu6&@{xX{KM&bJeYpEPa+K)}-8x>L>D-I7uJCOF?m+6s;+V_kkWbyWmlyD9k zwp!WUcb;k-_HKDCP++aLi?JCVjA!sQ;v43xGmT)v_?~xyV^Fqbm8G-Xc z(XZa~8?wG*;CO*5DR|#qK=YMOS`ioxZd8Vu#J}g8;_M}D2mj49zU9C3urGA#=0hj& zE3~Mb{dYe0g*>Z`mUMN=P&k7Uux#_cIH-bEtdf*^<0D|Hfz^rfnY?76DHv%K?58Ra za!O&(tEPSX0gP_Sh8tK#qpx31q4Pg={KH&qcG5qG?sc)*ET7@^>nw=4SLkf=VuK$y zi#l}gM(s_1RPCR`*7B(Jx^ZR4fu!DZr;QrlOVwPjGUMjElxFC9o%Lv|K-fNuUi5Rc z?Aa<&%^!x3uLrX@4~R`0f0cH9Q@YaDmXTCNyTa?1m&pQe&7Qku#UgIf9+#z5l~#fd z9c~JoZ;87sw?f{|ES*v&E#^Ci9BObk!adWNUDgbUWMf`A<~F*V$FdZc-R3@uTwEEE zUP|YFkKrFFHh8`7b)?io8!Y{)^6%OD?~eF>l|~ki#-YB3iauQVAyE*Ay739!fA!F^ z^MUM=)3|a=v*jPBJK&Hye%vU16IwlLe3ptT4iCf~4xO!F9V{TCe z?H}NdlU+iwl`3d+?e7`i$zQLQFppb2ji#Y(9_U8tCA=NMeVvUCjz3vyUW4CO-yam% zO`#W?f$PE2((?U9_Xg%36(ofHweI8tVU2T0B|?C!`j0ED3b@*_z${Ed&Udv z@$j(u>cwUYHRHi1WWVcOesfo%Q8U!5Y8=Ktd&%n>FdNHide{qy4J`&1`_zEZ})A)-DCRpihncz}7dOl{q>mX&}+=nWKxlbr9b9z}8*VGroN4Q_G|1 zU=7|=Ri%JR6Mg<+c`4@7hHRcOTkwR~9jwMvEYEUYEvP#i8*!P5C$}C%Ym_S=Z#@Al z5Aj6EF5Nn4gUYSI8yIp4Qse={1PD-JhL1%X&o;-igaSKJQD4>67o0cO$AI9@tJUiGiy zeZVP(EY~nR8pAVh7i4nM&5_1%$Sde7pPQ(6{8jxiJ1Lej1*E#CG42*Ue96!OGxwD* zb`N@pY6?6foLd!#C?4@oo6xBZDTC)y)rj2ES3cJG^OJ%P%e(~jj@{*arUIjx+AnPM$6!#$PP?tNA=aFcTXl8A4& z?FnJGTPs&!TrRkzuNBKn;{hYI0n zw^IUqphjHNXPw_0q#&0b^ zutUJ1KBX8E2J_5RRqOG?SnbFP?96oRvk8BZ+;b4+>M59Ym1DXhPV|xHSUgOsoU5}9 z`49i3Sj~4;m2g?9Qikryk;&RPQ8KOcINT$ta)us_j;j;}Ll8qPoc^FqxIjuVcXP#n z<3;Y;XN{1^-o4hzg(9pA%m{x|Xonig)i?W!gSF>QV5m=H1THbjl@kBTes!JDB_cG* zWf5;lqwNiI8#9zcCJvfN0@umCs~SBCPo4YV`LQWw76||vM?k|%X8@csMbV0J{$O0h z0@ zD}ewHS}R)Q$V!#RKcaDH?)Ae=gf5&RHSh)IG_8dRF9H|NoKXdl&oVh-S}J!1)k<|c1Ks83wwpF*-REICyVSAUi1EHEV0uD zIJI%9&0__uz%ksa1Pv4Fh3aX1-CC#I!wbM`u2%N~n36HHw#hsdXCwO>o_V#^w;UBa zt1WMJk#*rnT#{+C-y^9{Tq7Etj{A^L;d!>BJ5wi~Fpq2F`b4r$$CPv}QKat+tmpvS*}Wd8co##c%@!jCm!?j9+6W zXT?L*%+6Eyi!|A^w0grbV{Fxm*@THdV~n!zXE8xJZ9bpRFxa=J^f8IF7XDJ=a?K^j zVhUxyrAKENq|6oG5m1O^iPh8#E*nP#GsY_KuZIT2%EqfK^c_nM;j{ZBBFDxO1B>k+ zR+jx19i3sQQMhN{F>SjngUQTa`5 z`|Ii2S)Y1D`L{r8uHpthq%AP%t&tzr!H2XDZfdyN%_pqD#u6LC8$DzIVnyw*57ej| zz&3~??NJe2nJ+P&t3g2N3|F_&YATID3uvdr=fMpD4EyjvU}yD{QK3g$l>d!|5kAGy z8nqIFuHq;rPL?5#0#%Q8P*LN zI833X$h6^=2basfrS}R=8#cTGXz)6m$h<{3fxKAS7jvKSF^9+MFf?{V0wv#i?#x}K zc7*uG;?Ez`s>E*_75cVm&Frg3Ji0m5e(a_RK3ni^S#x}121Pr;M;3pA3bxSa^9-K& zn`7 z_N};AXbRa-sZ21ah-4G~rb4g?UgqYm>Z4~>9st~c<%U@m)hQ-|rCF6kJ0w9pQ>}Ys znGoSvJd|S^i4Qx}S=>{ekQj)tk~X1CZp!<>p&(M*aMqCVXiv4tRYbEY6a3zQsyeIC z1*yugmxSUPYg8FqMKm=3x_XI_>(0wacR^5lu<~yajB)8!Af4h$rj;?Oy}&mx$`zDQ z1_TF1&AEcC-3hzx{?=Tp1lcO(_^&1ecu5dmRY{4r8d_ydK4E-#HSB5ED^_@AP$`Sk zS67uYViyX3Di3`}t`!a2)qaA%=Wz{WmlK(;kWGKR6WaC`rNHo7nW6!$c3Ixa%Opxl z@)ErJ;^^K+8Kh%WY@xqK02e{f*{fmfvn768P*M@ml4Ucx3V8h~D+uX>e{q8IvB2lVwT+64`XHHdHosz?; zR&~Hi)0$LcxuhE2CYK*9`c$X)&OZkAj0%Pgj-9)2m#}!SNYR}Cc8^SH#Z4>gp4VmN z-piRK$n)(zM>CclzdZ=K+1c~G#!#$D)R;d*?_f5q^hr0PmCiVU(Fw>bQhec(CMua_ zqQ2+AOt-r@mSefc&O?yyY-&?Zqv&C)L%nF0sY0^}k#UZi8{v1km+zWuG_NRpDoSD2 zTrxeAvNAP!W2(+oh;2L=Wn(0j>nF%oU9O4keHx590T*8V92$%&6g~w$yI}P{b);%o z8k`AzGOJL*&40L8A@~XBtKClJ_dDQf7uF34+uX4&HjxTNWuwa>kfd|vz`kV&iW`!& z5It`!)s@bEDDxbm@lf>z!N~}Q5cOB-BjT?ZZpwBELIkU9J$K(+wT~8mJ`~Y-U+D07 z$djB0;^B?nLXhzgzxV+0yv%;1R}4-VZ}iDVuEGVr!-^FyoCZe8z9QSgo^bXlQVXPC zL(Ggh3V!y^zbR`JIDGOIUfHsZ|4^n*`Ovo2_pwdG%-73Tjmn#Zop4BAH`<~OrMoE` z>L*fNf%bep=Lg;cbOMm9tH z2q9acBG7riyoV5^y27RF7+*|8@n`n6nA>&B*L96@l|WkMdruDJGD zFwyRmE)r1P2c;I6=1l6L!lRo-S2X0kdGCvt7lH^5+c7rtuQFj$;M+*D8qCS~Y4Lp{ z!G1=4P(f>@QS1w#Ncenl6#F%0ozf+{{km?eLIRn3J2OErcvtDyJWm_q$Rge4Nk2^$d%>Tpwg&NThiw4g(u&(WbT z;PnkX~h$&Y1HSZo(>PSlm_ky&6G}k6b<0vw+u|GmFm{;<-~UJM-fm! z0SZh_?Am8*dG%ooJCX{e-hc0@Dr!ez#F5r z4viO1)FPzd3f#2vx+TR9^@F3|u((KrdrVKK!Lr^+Jnhk&U*dYl*(+MJHxtV2Zr7 z8gfsWWnM``>+su}b}4T7-p^8xX5BuUL|RTTS(>&s%>|o=M@rQOMKTorID6nxOi4Ez zB3^MReM}zr5lOy+UP)$qG`E}EO(vu{+WiZ+?-KJpg9vAFvx(Ea^(EiE*r=jo*)XCl z6Z1W~8hZP2N28Z>Z?GHObl}j!w41; zz+xIMs(;PA$;ATs({-zI0ANgiBJw2xAO-+5cM2z?Kt?csy9mB;Ijh<<#$ zt4g$iYQoBd#f3A;Tpp8l5o-Y-j}MI-ST*4B8l5{??MVR900HTUaJ8adMR(+-iAkQK z1`h%1k(UA|s+dj&ttBx&pg+*ulK{cv^-~S?F5{dv+o5nK(rEm~xdsSj=BrcWsz26q zV}hA14kg46wgNOX$Nqs5ssOS(KwU%Ug8%)em#BvP?pJbi&mz~M%5igdPfM40j8qSvjiB)RD_|JqEP)z2DytST=$|N3?@`=?wWl()~PH%Zu z16DW}qZ-t1vkF$>oS|w^>M4E7b#IOR{6XheNdw-JczAV!Rttgit)0AFuTWHXXA2_A?1FGd$hb z)|1tCxqHwYZ=BG5qw$YJe?m%#Kff~(pHnacC{rZ&S+J7j%WjaZ)eVE?7?77`$KCBfq&4wu2shvz-9x4 zAwc6sp(fM1;AMHVni0>speb74`_oTBb%Vk=9c5YYV)~M7%nV;7GWF=XWEEOX`C|oM zl(q6TT6~J$T0o8Dl+e%hCxQePN* z)uY>JxSn(Q1Jz;5@*5G0Y>%UhQe#RhI(uYzCz#4rUN14r-Y(%~D$>Py#AMCc^e3n_pE2-L6@AxPh9%9t)?3{`?RoKcotC8M=CGUNd-{Q{cKJO8%hT;4k-=l>O41AeY zxzyY3F~xE;E;64g&PsiD4nm2bWE{pY4Ax!l>GnvMDi2>!&RVgXRc|hOid-Bwpc}cX z{pKJ04^m2RFd^6D_WWG&dR*7#-bY2)p0T=%R3y(sAjtEs0|jK%bzTO~iM}j@ppmEA zX%zk=n(VE;B7yjYy!|IBg|zW_7yA!9E!*+p#pEv49ck(Gt82ESEhuy@y>8?lg21Ba zhc1C(J$iy&?Kc!Z9$y~%S|5<+WnahBc79Q&F2V_C+bWi4OgH*cJA>ljXvoe>UaM~9 zXYM?OPLZ3G@~^qQls3S6I#XOWgP^?AbEZM?b>6-Y=LpKkC}WJ|eT^hne*#K^?!lq2 z5?4O)v~uJbupMg^M7=00I^1@CRXiMsKhC|z23dUpDS&fLA4w<=ShM!ZSQ+Z!JV$%= zr!$UeU(-Wt(q!jduqq9WQh3Y&jMU`}M8tWYwV_fvE(Y$8!h3 zEQ)^8fipw!sK7Qd+yEo#sd01_X3$9Q5f^#$fq#Bk(v54dFMLJt!_x+W?vPOV-SAG8 z6TW`yAtMzp=JoThfx46tbg=w8J)Y-0W42>$f|wT;s#0>R7-T*b#@W-~swZsHje>v_ z3v@nZzy7I4<*aRQ~v9c{m@m8~7CwkcB#W zuhI(2G9ISl6-E#R5gu*JZis%}SPA>(7xhx9@I1}BU*yHneP!#!Mj7kEUGB9S%KS|5 z(>5mW%%62x7&EhjOyDOSVuN{^wjRT=Hn7t8t;~ipU!U4Zy&8evOX%#$<4-8p8DEYyHn`dZm7`Odeg&ulSB_RHl>NyLbV|s?n`%{> zZnXED3-)G%p7vT}q7IJ6$Eg(PUtBd0^PEA~zfM#{t`z{@xep`5v2}9s&E>-wDfb%~ zXTgM0)X#Qdi#Oi+i`?uh8H&eLU_$sf%*|Lxj`TS zwB9Aqda^$E*nhcJE?~0L|FvxyPa_caOBtzre(~fl;net2RN}AQr3>6{NvkM%+5nV5 z4P3=9VN1Bl1jLjusk}fPBbB(_41PI^i;y)}{1tIw>`Ru4pLMKr`GkS1&+%1TpxcHz zUqASjiwF?mj?7;$3Sw0&-u$WwkSW%P-!cW_w`*SOT#zW{L4~Z;H`-ZM_N_eau*w;+ z>GKKws5HV0smoai)(bvP?CpkmW!96>2?CY#98IFM@0|)+{WfK1ShQS^0b$K0$@TLLb3_a3>Po7 zMmX`<&6IHfpa9Rx0Kx@_M3R>5@)l$2efL9`N69rg85K~GJSW}L5-0^kjVZe+E0 zsLA~UJ&9HAVpK>o{ne$63@L}jzQ;FN5id~RX^ZsHBW`_*gX%M)=a7}G$Wy7vloB-R z?ZG%#^CdN(B7yzxIPr=2UeN$4Czrv-=;b3S!|nphsq_NLn3)T&=7Qp+bWl=3i}780 ztkbqb(FWr$4yG3#ZEreymf4>*4{0(>&01`?;E^=G`;Ck{TMVKD_U$t4yl=O%k(HpVteLR`uLtC>?v9k$HuW-SuJPTM}9EE8G`hHGl zuaU<>iqf`>;%Fn65AS(Rl-#j(a8J zEOhft>3lT^=Dq^u$mK}>6utK)54b1ORs^iR>sORYO3f^LVU{kHbC`Kv@Y3bt{M@uM zg~7b>=su)mf`j@gLofE&HpEaA_9Nbv3JXy2@TkC69xYw&-l@E|o%@W~aztcZ_&AxOKvZNYC2oa%f@0Bq z`5T>oup07GLp(*7TQvCjdL`vqLD@5V#~GdIk0Qphckpx1N_|-QQKf*(kUFK;SE8-w zb&nY#;r77IrO_nP%0}Tk{Rs4lo@W{5w>ylFPEc{O=P2jW*YLadc$dVX>S?HBrgP|; zXXm=vsTZal#&dM}-0)5mg+SoazFY-q4PUt5}P9FaaNu^D@j&nJ(IN*#T}N6CM){<3(djN z@FLmL=XQG^&h679ojuVS8SHGe2kS;gn;xsH){B~L_xQYWO~DW9>vW_B1zHry&v0Q4$R-;cOng(S9tjkK)6uL5@jETn-f2uP3<d>qb6?^d9AG`X{3+6{w`pbOvtayAQ}XM$B`cebtVl7s?3-4{^o_IKh8AK( zK2HpEz36^F-Tr2|+c~N9z({jZ=E`k17pWz5q0Vuv)W_bWaz~G1HD_1ZhUvvTxAyuK zO@$o#S$Gj=8NZkE!Fs2$sqc@AX@bH&k3U>s(H!P)UFa<98ei@?^uvQXGE0|r;gavO zZcEx8(zcayQDaIY@YfeDTo%MeJ?2+h^0KvHO-FJ*Qj1eq6`|er1Q3B~j7zs<5M<<^ zR!n6s+i?ksh%kJ$$fAYxBpgh;a!NrdWo3m~6~(4epSyp=U^pL!;ArZ#qUx~Q+dLl0 z6tyfISOqz^61)>xM`*ZV!_b2ETchDQSj+ z0BDW#MGp-IMmy&IqNIb_P3k)1=K>ywr!iQIMVKP4JgELrIBeLLT$Km@)wE?B7MgFu zV!_r@{m;-L>8dsIqmn0#2dLi-OC|_Cp9xcUYpkj`S(R0ky`akqE7OwCtSK&u!jX#6 zOfmG&B_4|qIVLEZWNkT{;lS z$TG+*c3X{dDq93uBDQ@AK|5-ff)3D`)R=0;l2tGjG;3b6a;phUDRWmlUUQ`)PisCo z%hm0&RJgbxcHzg&f&@JI&8y&f{v9?uj-JCtRvf-8CRB8_M_pCJs7mExl2ich4X(-I z`C+jDo53r`!cEN$J|>|;uBn`KPYE2o;&RON$S3YhmsIT#YQ9K?>4=eXg)&ky8iNyj z*wSv{@*2h`^V5?`mYHr-OauCrZE~LzQkJhpdT?t#=pB-CdN!-K=M&$wM^%Bg0G zwi9YccN}dpfGB6S2~bW#(sp}EH_&4+VnMJ_^a;i6;1i^32dXY5bcB5k3=(S8)AibG z5TTSgl-4*289LdaQ=ah^PTO=39lPdFih8$jz=1w(hbz| zO%V?oqE9wUZ`!YWycTPVR!$wk1xu=<8*`@a?RnORO#KiX89W^_bt7?hgmRt@X7bP# zYka=JGdI9tisGto0)zi?_;#rDx7W!})H2n&DiPXVZ%N0s9~?@}^c>Vi80cK<&t&!# z7KjrsoJ2Jme98|oUG8UzI5FIBo~$0p=5QrA<&A2haH`1jOsR73eB2Aqo7>M>?~lA1 zmI9lGo)E&GjbPxh|}EN|A1wN(Z%D#Jcsp|ww-SiTf)7JV{%GZ=9^-&Y}`(X z*#%8w(Q-{*2^wM9hgW){d$Im`%b!SWjEefE(7rWn&dl)-bgTmhjH~V}4Awh5Kqv3G zK~tjv6B`mhPx2c5Xq4+5+xei9EwKzfer36#_g1pd^JYGp@OKH$h?5-1CZ_qp7?j>M zQT>FyGscbW(Wytsw5|%rIwx8iHSveN&|;JKop6<-!6f*0(>%=zt+ZKU5~Hy`sYHWL zKn^@;x)^+6;=R;#-c{!$vf0WywWCWK-=hUI8)x|L#3ma^ZM&9P7as~tBTh=(qt-BDtdWQSZat4 znbeV~D)06vpIUSJQNEp%9g6)~cxch{m6S{8kl|t(iCKnx-2u5z$8A`f%CFcQDKbq{ zkn&8wY`*N)<$avaskBvpUiXKB*=t`nARWfO$%kz{F(vO3tukrHk$}4l;I*3Ad63 z^kQF~^t^dZC|V<_LAdcDCg)W1x2uU0DaD4!Be7@TfV60y{7Mt zR0x_nQB~X^D%W;;JL7}L5eGj41fD;P?C0ye3k>Nq< zCyUOzjTdyy#w)cYcZIbXAt-%E{SuGoHeAea&habKtrAT&NXZQqj32}n;*Ks}RZw)} zY6uf4RO)oytH#mH?6mz%${zap*%{dGq*)>9xumlvEU$lV)X$<(t}35AN+FeIs%rkC zC)syMJb7}=EVEC*I91%mx{$50@}F{}7bgRrr;$$WH+m*5+p+YzdMeU;ZdXP(s zkLMrs#g@-t7=lOwIG^giRT>*AoUgMJ@0$(w{dh$4v?pvh1!BGY%ysIt1**us$q0?f z+w(;cb?nJAi}*Ahbez4#=??EPaY&k(H9eRK|HMj5MVkzvM70j$oN-IZSq3kjA3@>9 z0{*e?q7hBRY2MEBoxR`m@p9r!YBjI3?i167+HlKCljm{k^?CB zgwg6Hp3}OO?>m>7pt?V6*yrbBZlBcwrT0YKmhtp}Xi@xF*ROLV0 zHR_#XD=R48MBFQk#q>J5F#FgkVG(`2{m4Xpj&U3AFuA3A2!H=dKMgc^5s+;9wiRd5w;`ZDYnRLlJg~J6Zi;eUwh;HuLZ~gqlJ0spuTq zoH)U-&}~Wah`g<__MYXrvbJMitlj1V0u&50IAla@UIS0Tpj#OWOT^|9L&%-bT?z1i zoLC+EJYXY~E+wpQH}g2#5=!QvL1HlNXb zhf!Gr5ze-0n~7sBVn|E$QcfJ}=;jF+soOO(=r|M)6WK~QcO}I^IL!*1sm!&AL4l^k zML1{VSh8$3IU{ukW(M5=wt>pcWs?y0zU!#KZ}Fz6{SGPms20e~W2oNWAB-PatCh7~ zY&*BcoUzkTTXg&L;mx|yLp^*08y1{7#v8gBRBON)Kd_oBw?>;H{vOBAP-Wl17U2#l z?G=#8$CB)*%{-zh`|2jVB{gU_tpS-dCU>%xa_AP{q6!p(s`1z)EPMcrr&&9dp;N}w zwVTW*;31lFq)r?U zej@t8AQjPz@l4Gu|7?1MfN^~r+7=sUq2-{w#ol(q_x9#T2%)#DKyOskm zSo4RiF_#q=;bOZ*=9Ukdo~I?A$Ew{QMvEMWy%t%)1cba-dAwK4Bp z#;R?h1>5w2B6MFeH!{!ax%?J-8$T0&H24hH+}m^qJ%)nei$58J6t`GCPL<$Rv6Vsq zw~EMIo6dqaTRZPZ!BJ;{*-AhkSw}G~(XNlT7SNz$C95{wRsy;U6_0!i%VTQZe4Ti>5gcZt(^GaM41BZ@MDW@2S!5MmPdjfkC8%jPAmQ$O7xpxJi=l?6s=PWsmF6-!($8BSXr2W71N#ald1 z1_0M9^jj;Q+z4<{vfJVhMi#kTY;(6(JpN?UT*wUP@07@MY;~|7n|RdGFBrSYvh|;f zMGZn09!tI4%;RA#tV(d<*inv6yP-r1-IoH_MW@cUpEreT75dr1=+PVmTlHolSqrxA zz=E;+P%G?FSo7u>!0Y+EK>5Z+ATzqQ=4jA$2x~W`v`MP*j`qC(KUA{N$#$7pgS&|b zND=s<64tItZVQflqEOgx@rfuS%;r)`NIv6Pwrb2^v@3Q6&Q^_0$uS)Z&BKm)*~}Jw zUdBn-VpfE0<5tA1Eg{Vn!qz@oklDu9?aVpD7JZC4vMGM1eTAadLD&kY($D=;zdZX7 zANOEGbBt0#OtFRHHrZHowW+X8wU%HrTG&Q6JjX?1U`?Abhu60wn#sm*`>KA28f>g} zsfP59(W?E$p^AdsZuR$g&v*d3EIAHg{dZSQhvuY8+rN>wp%87Z6}H`{eRg&_k6Y-` zn9)z)k~VpCFP?w73vd89V^xCL?lhsiJoLE_Q(l-37E0Q-2fbh!yQM$Kh<~#a7PHP7;X!NS562SE zI+(f}q5*3J@{o2|dtR6(ErCbyX0|cJCFB2y`|@}w+wXr;sV9+ClC4tOEFt?=Q7T&! z%32h%uQS;_ZFZA=CzLfLi7}RxB|F)dvG2WVqQ7+{i0|}L_9rruNa3lA zdRNwYYtA}8vYWDWxlo}{@u2?M!57Qfl!$=!f9x?^AN(O2M$)|BKo-R&_!eC!G?c*M2EtLq zsw+ra^nVR=1I-lpuj_l`R6dfne=W5%E8eEpENi=) zf!#0G4o|b;Z5lwSFBb*?E(;LkMN+L2sc#ByaCxPUeh!FV+0Aac_83+GJfX|bMHz7W zulWP(wvFsvmkeSA2A?iomyFf5CinH>)JGPrke;=oWol9zwjr7NNEH^h6>QA=>E?&3 ztikIll|y&1dYQHW3#O99CVKWPBk$*6fEv>_0IxK`Y~_d=WH0Nw9;uIn!rfLVEs|y> zsA$W%v>9l*T7bhR^`~0a6%y(Er53qVM<93ljFC&f7*CfibG|m*3Y2uKo&&m& z&kUyUUOzh;Q)r+IXDjv9JbIzzD`1ns5l5fJEAeA`6tEXU+xJXt=)z0C*kzZ&J_uI; zGTQ$vn_Y9ct!FC*n?)$sp{+U+F8+S4c4&9X?5hFOWGDa`jO48f=+GH(NvsSRbl09{ zruSY#1PFMrQeT)szi^$s5~}$CY@Ht7ECS|Q)zfB(p)P5}uhR=Qt5NZ$%PH2~73Azrr~scmOP zxQ;JhlWxJ3JyzfxN7n~*XJv{2Lv4!Vm;5R`wc$ZTsrtXHwMuI^%_UW2k(05_S&Ynm z(XqONff-SWv8eGHeKl{;bX?++1TiF=W+T^hCn^A~)g8l6NJ19;~hN` zMGiJ)kVs)K^)Q`XJqL@06)7SLZk4|+9qft`_6GCN>nvo^9JA1xaHcxwumvRcfXe!;qir zJ3>cfWKW0n^48vriGAz#_9Z*9ahB|iEH5DHx9>`k zctvl_%v%oqcm+ExIwpmvg8O2IS#q3^sU{mO8z$aX4lNER6PB=j*FOyXae?FfIpg{M%%iFN6L!5PWExdD zDNGD{y23_bn%^>)|0@#GYKcTn!@LmbsPfT|A#+_rCN&j8gRFHI{O!(+)~QBbo=7WC zah;N&Ineqdt)2P#frb1%i)r_nQEij9^SZI0TNA)TaLY9GGGC3dGR;bYO&Vk=jn*wK z^x3U`y_UjKD>i6TVe70U6`mZ=(J9!xK~6JzSr|as=pvAr!2i|AHmz+0j9G-Ob4EuN z);X&~IV2$?mD;K-*4!=rnY0Dv@Q;?5FP{i33j;&*gSOyMD@<6J=#bKCqu}N&uk~ln zNI&jxLcX-cq=m_Dx*})N+BDa2Eii)|yE)s@)=b3i{^h8EWxfk(wTLj!zG|4O^!r%m z9`r(=)83qx#4nÿs@pRjE%cvLM7Dq6lSDcc;d;Un^pAClD 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 ra*F^ba*F_bi$LCnK#StwkIj=d#nsR>s&1 else 0 for s,x in enumerate(term[1:])) + + +def collapse(coefficients): + result={} + for term,matrix in coefficients.items(): + key=specialize(term) + if key not in result: + result[key]=[row[:] for row in matrix] + else: + result[key]=[[x+y for x,y in zip(a,b)] for a,b in zip(result[key],matrix)] + return {key:matrix for key,matrix in result.items() if any(any(row) for row in matrix)} + + +def encode(value): + return (json.dumps(value,indent=2)+'\n').encode() + + +def generate(source_root): + C,B=authenticated(source_root) + B.matrix_multiply=sparse_multiply + need(NATIVE==sum(1<>1)&NATIVE).bit_count()]+=112 + need(main==binary_main,'Exact complex and binary job widths agree') + native_count=NATIVE.bit_count() + direct_count=35-native_count + need(native_count==19 and direct_count==16,'Native/direct stage inventory') + paid=Counter({k:native_count*v for k,v in LOCAL_PAID.items()}) + paid[1]+=112*direct_count + productive=Counter({k:native_count*v for k,v in HELPERS.items()})+main + windows=[] + for idle in idles: + if not idle['retained']: + continue + active=[s for s in idle['stages'] if NATIVE>>s&1] + rank=8*len(active) + if rank: + paid[rank]+=224 + windows.append(dict(**idle,active_stages=active,specialized_rank=rank)) + need(main==Counter({**{k:448 for k in range(17,74,8)},153:224}),'Exact main productive profile') + need(sum(main.values())==34*112,'Every main input field contributes one productive output') + need(sum(k*v for k,v in productive.items())-sum(k*v for k,v in paid.items())==800,'Exact raw rank-mass margin') + result=dict(schema='exact-p17-direct-stage-Laurent-specialization/1', + source_sha256=PINS,source_full_case_sha256=full_sha, + pairs=PAIRS,cut=CUT,keep_idle_mask=KEEP,native_stage_mask=NATIVE, + native_stages=[s for s in range(35) if NATIVE>>s&1], + direct_stages=[s for s in range(35) if not(NATIVE>>s&1)], + coefficient_variables=original['coefficient_variables'], + specialized_coefficient_matrices=[dict(exponents=list(key),matrix=C.serialize_matrix(matrix)) + for key,matrix in sorted(specialized.items())], + left=original['left'],right=original['right'], + left_program=original['left_program'],right_program=original['right_program'], + exact_diagonal_monomials=[list(term) for term in diagonal], + every_specialized_Laurent_coefficient_checked=True, + incorrect_backward_sign_rejected=True, + main_productive_profile=dict(sorted(main.items())), + native_helper_profile=HELPERS,native_paid_profile=LOCAL_PAID, + native_invocations=native_count,direct_Q_shears=direct_count, + direct_rank1_children=112*direct_count, + complete_paid_profile=dict(sorted(paid.items())), + complete_productive_profile=dict(sorted(productive.items())), + retained_idle_windows=windows, + ambient_dimension_with_all_original_stage_coordinates=9+16*PAIRS, + full_Laurent_identity=True, + physical_direct_shear_and_native_source_bindings_are_separate=True, + no_interval_or_rounded_transfer_claim=True) + return {'P17-FULL-LAURENT-CASE.json':original,'P17-DIRECT-CASE.json':result} + + +def run(source_root,out=HERE,write=False): + generated=generate(source_root) + hashes={} + out=Path(out) + if write: + out.mkdir(parents=True,exist_ok=True) + for name,value in generated.items(): + data=encode(value) + path=out/name + if write: + path.write_bytes(data) + else: + need(path.read_bytes()==data,'Exact regenerated receipt bytes: '+name) + hashes[name]=sha256(data).hexdigest() + return dict(status='PASS_EXACT_P17_LAURENT_SPECIALIZATION',source_sha256=PINS, + artifacts=hashes,native_invocations=19,direct_rank1_children=1792, + incorrect_backward_sign_rejected=True) + + +if __name__=='__main__': + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root',type=Path,default=HERE.parents[2]) + parser.add_argument('--out',type=Path,default=HERE) + parser.add_argument('--write',action='store_true',help='Write regenerated receipts instead of comparing them') + args=parser.parse_args() + print(json.dumps(run(args.source_root,args.out,args.write),sort_keys=True)) diff --git a/research/kappa-hybrid-controller/dependencies/clifford_exact.py b/research/kappa-hybrid-controller/dependencies/clifford_exact.py new file mode 100644 index 0000000000..166841a037 --- /dev/null +++ b/research/kappa-hybrid-controller/dependencies/clifford_exact.py @@ -0,0 +1,149 @@ +"""Small exact Gaussian-dyadic Clifford compiler, independent of gx internals. +Paulis use i^p X^x Z^z. State vectors use integer Gaussian numerators / 2^d. +The tableau is supplemented by a literal circuit, so global phases are kept. +""" +from dataclasses import dataclass + +def parity(x):return x.bit_count()&1 +def rank(rows): + p={} + for x in rows: + while x: + b=x.bit_length()-1 + if b not in p:p[b]=x;break + x^=p[b] + return len(p) +def transpose(rows,n):return tuple(sum(((rows[j]>>i)&1)<>j&1);a[j],a[k]=a[k],a[j] + for i in range(n): + if i!=j and a[i]>>j&1:a[i]^=a[j] + assert [r&((1<>n for r in a) +def basis_extend(cols,n): + out=[] + for x in list(cols)+[1<len(out):out.append(x) + assert len(out)==n + return tuple(out) +def nullspace(rows,n): + a=list(rows);p=[];k=0 + for j in range(n): + t=next((i for i in range(k,len(a)) if a[i]>>j&1),None) + if t is None:continue + a[t],a[k]=a[k],a[t] + for i in range(len(a)): + if i!=k and a[i]>>j&1:a[i]^=a[k] + p.append(j);k+=1 + return tuple((1<>j)&1)<>i&1:out=pmul(out,T[i]) + for i in range(n): + if z>>i&1:out=pmul(out,T[n+i]) + return out +def compose(A,B):return tuple(apply(A,p) for p in B) +def inverse(T): + n=len(T)//2;cols=[x|(z<>n;u,v,p=apply(T,(x,z,0));assert (u,v)==identity(n)[j][:2];out.append((x,z,(-p)%4)) + return tuple(out) +def qvalue(Q,alpha,x,n): + return (sum(alpha[i] for i in range(n) if x>>i&1)+2*sum(parity((Q[i]>>(i+1))&(x>>(i+1))) for i in range(n) if x>>i&1))%4 +def mul_i(a,p): + x,y=a;p%=4 + return [(x,y),(-y,x),(-x,-y),(y,-x)][p] +@dataclass +class Op: + n:int + tab:tuple + circuit:list + def then(self,b): + assert self.n==b.n + return Op(self.n,compose(b.tab,self.tab),self.circuit+b.circuit) + def adjoint(self): + circ=[] + for e in reversed(self.circuit): + if e[0]=='P':circ.append(('P',inv(e[1],self.n))) + elif e[0]=='D':circ.append(('D',e[1],tuple((-x)%4 for x in e[2]))) + elif e[0]=='C':circ.append(('C',e[1],-e[2])) + elif e[0]=='phase':circ.append(('phase',(-e[1])%4)) + else:circ.append(e) + return Op(self.n,inverse(self.tab),circ) + def zero_state(self,basis=0): + N=1<>i)&1 for i in range(n)) + assert all(alpha[i]%2==(Q[i]>>i)&1 for i in range(n)) + return Op(n,tuple([(1<>i&1 else 0,1<>i&1 else 0) for i in range(n)]),[('C',q,sgn)]) +def xgate(n,b):return Op(n,tuple([(1<>i)&1)) for i in range(n)]),[('X',b)]) +def fourier(n,axes=None): + out=ident(n) + for i in range(n) if axes is None else axes:out=out.then(cgate(n,1<len(selected):picks.append(j);selected.append(x) + assert len(picks)==r and all(x>>r==0 for x in Bcols) + Br=transpose(selected,r);Bi=inv(Br,r);Dr=transpose([Dcols[j]&((1<= 1 and Q(1, 2) < t < z0 < z < 1, 'Strict compiler exponents') + need(cutoff**PARAMETERS.THETA_DENOMINATOR < floor**(PARAMETERS.THETA_DENOMINATOR-1), + 'Strict source-bound logarithmic cutoff/floor separation') + need(cutoff < 2**cutoff_log and ambient < 2**ambient_log, 'Exact power bounds for exit and complement') + # With r_max=cutoff^n, k_min=floor^n, m=ambient^n, m*E(x)/x + # is below 2^B*x^-h. All inactive carrier axes remain included. + B = (cutoff_log+ambient_log*h)*n + debt = 1+ambient_log*n*(1-z0) + ratio = (delta*B+debt)/(h*delta) + H0 = -((-ratio.numerator)//ratio.denominator) + need(H0 >= ambient_log*n, 'Initial threshold covers every base rank below m') + need(H0*h*delta >= delta*B+debt, 'Exact sufficient exit/complement inequality') + final_ratio = H0*(1-z0)/(z-z0) + H1 = final_ratio.numerator//final_ratio.denominator+1 + need(H1 > H0 and H1*(z-z0) > H0*(1-z0), 'Strict final uniform moment') + need((H0-1)*h*delta < delta*B+debt, 'One lower H0 fails the stated sufficient bound') + need((H1-1)*(z-z0) <= H0*(1-z0), 'One lower H1 fails the final strict bound') + return {'tensor_power': n, 'target_min_encoding': str(floor)+'^'+str(n), + 'target_max_encoding': str(max(PARAMETERS.TARGETS))+'^'+str(n), + 'ambient_rank_encoding': str(ambient)+'^'+str(n), + 'paid_max_bound_encoding': str(cutoff)+'^'+str(n), + 'theta_upper': 1-h, 'h': h, 't': t, 'z0': z0, 'z': z, + 'delta': delta, 'exit_coefficient_log2_upper': B, + 'negative_log2_eta_upper': debt, 'H0': H0, 'H1': H1, + 'N_encoding': '2^'+str(H1), + 'final_strict_power_gap': H1*(z-z0)-H0*(1-z0), + 'rank_one_induction': str(PARAMETERS.TARGET_MASS)+'^n > '+str(PARAMETERS.PAID_MASS)+'^n; target padding adds equal paid and target rank, and splitting preserves rank', + 'materialized_tensor_rule_or_uniform_word': False} + + +def bit_certificate(source_root=DEFAULT_BIT_SOURCE): + script = HERE/'bit/bit_p6_tensor_extension.py' + need(sha256(script.read_bytes()).hexdigest() == BIT_SCRIPT_SHA256, 'Exact BIT tensor/native validator') + B = module('hybrid_bit_p6_tensor', script) + result = encode(B.run(Path(source_root).resolve())) + need(result == json.loads((HERE/'bit/BIT-P6-TENSOR-RESULT.json').read_text()), + 'Exact ordinary BIT certificate reproduction including native replay') + need(Q(result['admitted_BIT_saving']) == PARAMETERS.BIT_SAVING, 'Admitted ordinary BIT saving') + return result + + +def run(source_root=DEFAULT_SOURCE, strict_result=None, bit_source_root=DEFAULT_BIT_SOURCE, bit_result=None, retimed_source_root=None): + if strict_result is None: + strict_result = module('tensor_strictification', HERE/'strictification.py').run(source_root,retimed_source_root=retimed_source_root) + need(strict_result['strict_moment_verified'], 'Strict mixed moment was certified') + need(strict_result['cutoff_base'] == PARAMETERS.CUTOFF and strict_result['target_floor_base'] == PARAMETERS.TARGET_FLOOR + and Q(strict_result['tested_saving']) == TESTED, + 'Compiler inputs bind to the certified cutoff and saving') + ledger_path = Path(source_root).resolve().parent/'dependencies/compiler-refill/endpoint.py' + need(sha256(ledger_path.read_bytes()).hexdigest() == LEDGER_SHA256, 'Exact inherited outer ledger') + if bit_result is None: + bit_result = bit_certificate(bit_source_root) + need(bit_result['native_source']['status'] == 'PASS_P6_EXACT_NATIVE_PORTS_ARBITRARY_COLUMNS_AND_WHOLE_IDLES', 'BIT native gate') + need(Q(bit_result['admitted_BIT_saving']) == PARAMETERS.BIT_SAVING, 'BIT ordinary saving matches parameter table') + previous = module('pr4405_outer_ledger', ledger_path) + d = (TESTED-KAPPA)/7 + p = {'kappa': KAPPA, 'tested_saving': TESTED, + 'complex_uniform_saving': KAPPA+6*d, 'b': KAPPA+5*d, + 'a': KAPPA+4*d, 'q': KAPPA+3*d, 'bit_saving': Q(bit_result['admitted_BIT_saving']), + 'epsilon': 1-d, 'beta': 1-3*d, 'r0': d/10, + 'stop': d, 'layout': d, 'd': d} + outer = previous.ledger(p) + need(len(outer['functional_checks']) == 3, 'Preserve the three inherited functional checks') + outer['functional_checks']['actual_new_BIT_stock_sublinear'] = p['beta']*(1-Q(bit_result['ordinary']['atom_power'])) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, + 'Complete preserved outer predicate set') + need(all(v > 0 for v in outer['strict_checks'].values()), 'All 54 strict outer predicates') + need(all(v > 0 for v in outer['functional_checks'].values()), 'All four functional predicates, including the actual new BIT atom') + need(min(outer['margins'].values()) == outer['margins']['main_transform'], + 'Main transform remains limiting') + controls = {} + for label, updates in [('closed_epsilon', {'epsilon': Q(1)}), + ('closed_uniform_gap', {'complex_uniform_saving': p['b']}), + ('unfunded_outer_point', {'kappa': TESTED}), + ('insufficient_BIT', {'bit_saving': Q('0.0023')})]: + tested = previous.ledger(dict(p, **updates)) + failed = {k: v for k, v in tested['strict_checks'].items() if v <= 0} + need(failed, 'Reject '+label) + controls[label] = failed + rank = compiler_rank(strict_result['exponent'], TESTED, p['complex_uniform_saving']) + return encode({'schema': 'hybrid-p17-padding-outer-endpoint/1', + 'status': 'PASS_CONDITIONAL_HYBRID_P17_OUTER_POINT', 'kappa': KAPPA, + 'gain_over_PR4359': KAPPA-Q('0.0023'), + 'gain_over_PR4405': KAPPA-Q('0.00230509'), + 'gain_over_allfresh_p3': KAPPA-Q('0.00247755'), + 'gain_over_PR4414': KAPPA-Q('0.00267987'), + 'gain_over_PR4416': KAPPA-Q('0.00268647'), + 'tested_saving': TESTED, 'outer': outer, 'compiler': rank, + 'ordinary_BIT_certificate': bit_result, + 'BIT_validator_sha256': BIT_SCRIPT_SHA256, + 'parameters_sha256': sha256((HERE/'parameters.py').read_bytes()).hexdigest(), + 'minimum_outer_margin': min(outer['margins'].values())-KAPPA, + 'negative_controls': controls, + 'ledger_source_sha256': sha256(ledger_path.read_bytes()).hexdigest(), + 'strictification_source_sha256': sha256((HERE/'strictification.py').read_bytes()).hexdigest(), + 'scope': 'Source-bound PR4441 retimed arbitrary-input local word, p17 native/direct geometry, a finite tensor recipe with target padding, exact moment and outer inequalities, and a specified finite uniform rank. Native tensor closure and the PR4359 inherited precision, storage, analytic, fixed-tape and recovery hypotheses are written premises, not a full formal theorem certificate.'}) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=DEFAULT_SOURCE) + parser.add_argument('--bit-source-root', type=Path, default=DEFAULT_BIT_SOURCE) + parser.add_argument('--out', type=Path) + parser.add_argument('--retimed-source-root', type=Path) + args = parser.parse_args() + result = run(args.source_root, bit_source_root=args.bit_source_root,retimed_source_root=args.retimed_source_root) + if args.out: + args.out.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + print(json.dumps({key: result[key] for key in + ('status', 'kappa', 'gain_over_PR4359', 'minimum_outer_margin', 'compiler')}, sort_keys=True)) diff --git a/research/kappa-hybrid-controller/frontier/AUDIT.json b/research/kappa-hybrid-controller/frontier/AUDIT.json new file mode 100644 index 0000000000..e4c738c345 --- /dev/null +++ b/research/kappa-hybrid-controller/frontier/AUDIT.json @@ -0,0 +1,63 @@ +{ + "status": "PASS_INDEPENDENT_COMBINED_PR4441_ARITHMETIC", + "source_head": "5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39", + "source_sha256": { + "RESULT.json": "8e7db2fed5f4be6a7f944bc59e7942ccbcc3e6c36130b5671331540c183ada21", + "README.md": "70c1c872c2327c3f71918e218d5f1ecb7a00037771a5dd1b8ae415b84cc90dc2", + "PROOF.md": "9883b3329fef7624d3471e27bb55258cd9dc18bb6d37779a3939de99add87347", + "verify.py": "c841265ccee9b6f79045ad818ce9d27cfd7ee1f60047525a75d491f0dd8b997a" + }, + "engine": "Independent outward integer fixed-point intervals in units10^-60; atanh logarithm80terms with exact remainder; exponential160terms with exact geometric remainder. No source interval code imported.", + "profile_matches_independent_controller": true, + "alpha": { + "lower": "0.999999997758999184602267590366798323272665791573751100485190", + "upper": "0.999999997758999184602267590366798323272665791573751100486058" + }, + "gamma": { + "lower": "0.969126930833863729265427869330123421762375736735156993596550", + "upper": "0.969126930833863729265427869330123421762375736735156993597698" + }, + "delta": { + "lower": "0.932537400874663431699700098660626553481393010004834599958801", + "upper": "0.932537400874663431699700098660626553481393010004834599959429" + }, + "normalized_paid_bound": "2097152001953127/2097154147483648", + "eta": { + "lower": "0.000000192738808606315094338627648047411184654336388834454968", + "upper": "0.000000192738808606315094338627648047411184654336388834454970" + }, + "compiler_H": 165315500000000, + "root_bracket_signs": { + "lower": { + "lower": "0.000000046318992475575202648286681833862420812197817786099330", + "upper": "0.000000046318992475575202648286681833862420812197818009812690" + }, + "upper": { + "lower": "-0.000000059611230077814150466286112209518891941217299354238904", + "upper": "-0.000000059611230077814150466286112209518891941217299130658559" + } + }, + "fixed_profile_ceiling": { + "strictly_decreasing_through": "1/20", + "negative_derivative_upper": { + "lower": "-209315.536979071590541345657103770455881664249731376687670554105980", + "upper": "-209315.536979071590541345657103770455881664249731376687670554105980" + }, + "remaining_interval_upper": { + "lower": "-7187.718561211958612523888656616521882686629795500265844795146442", + "upper": "-7187.718561211958612523888656616521882686629795500265844795146442" + }, + "derivative_cells": 16, + "remaining_cells": 128 + }, + "ordinary_BIT": "8590884599/2500000000000", + "outer_counts": { + "strict": 54, + "functional": 4 + }, + "refined_alpha_at_C_003001054": { + "lower": "0.999999999811973328754264108092433162796391206723906209133439", + "upper": "0.999999999811973328754264108092433162796391206723906209134307" + }, + "scope": "Independent arithmetic and written substitution audit, retaining the already audited native source and all-column/physical/analytic/precision/stock/tape/recovery premises. The153 active ambient is not independently reconstructed here; parent keeps conservative281. Full source verifiers are not rerun in this audit." +} diff --git a/research/kappa-hybrid-controller/frontier/FRONTIER.json b/research/kappa-hybrid-controller/frontier/FRONTIER.json new file mode 100644 index 0000000000..47bdc93eba --- /dev/null +++ b/research/kappa-hybrid-controller/frontier/FRONTIER.json @@ -0,0 +1,368 @@ +{ + "time": "2026-10-21 20:42:34 UTC", + "main": "2a13eb1827784206202db90e5dc8327cf8a250db", + "updated": [ + { + "number": 4441, + "title": "Conditional κ = 0.00300105 (+4.105e-5 over #4440): combine query thinning and helper retiming", + "head": "5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39", + "updated": "2026-10-21T20:41:48Z" + }, + { + "number": 4440, + "title": "Conditional κ = 0.00296 via query-thinned productive controllers (+10.18%)", + "head": "40e22a83ed660d3d6074c4f2dbf14bfb621eee51", + "updated": "2026-10-21T20:14:35Z" + }, + { + "number": 4442, + "title": "Apply the smaller halo exponents across a cell, under the downward reading (no new κ)", + "head": "d079c2b058ebd3d7a9ff424113b095bf61175427", + "updated": "2026-10-21T20:11:41Z" + }, + { + "number": 4439, + "title": "Apply the smaller halo exponents inside one cell, with normalizer 6 (no new κ)", + "head": "26af8afbadd7f8feb737d98b47ac9f4b45d35c7a", + "updated": "2026-10-21T20:02:46Z" + }, + { + "number": 4434, + "title": "Decide #4281's depth-five connector at m = 5 exactly (minima 25, 30, 35, 35) and at m = 6 for length 5m (c = 1 new, c = 3; others >= 36) by exact meet-in-the-middle (no new κ)", + "head": "930469ad8c0b82b04cd4c1775913e27de47b1113", + "updated": "2026-10-21T20:00:49Z" + }, + { + "number": 4421, + "title": "Extend #4365's rank dual to every plane triple: three-plane COPY floor 12 over every field on all 27,720 triples (no new κ)", + "head": "333452eb9d78f7077b77971877f20f4b4a276948", + "updated": "2026-10-21T19:57:46Z" + }, + { + "number": 4438, + "title": "Bound the within-cell column gap by a relative weight error of 1/(16p^2) (no new κ)", + "head": "6157a47bfe169cd9c5f666f85ab8caa929e1174f", + "updated": "2026-10-21T19:56:30Z" + }, + { + "number": 4436, + "title": "Bound compiler width by exp(O(N log N)) and route overlapping ranks", + "head": "56003680aee2871773de408e5f01cc5dd46b144c", + "updated": "2026-10-21T19:54:23Z" + }, + { + "number": 4437, + "title": "Extend the ideal column majorant across every legal g=2 step (no new κ)", + "head": "7ca94e9762ee33edbfb2e527e7313bc579e463ee", + "updated": "2026-10-21T19:49:34Z" + }, + { + "number": 4079, + "title": "Research: seven-source weight-at-most-four connector boundary (L<=18 excluded, 216-call floor) (no new kappa)", + "head": "39a1fd620d1c702b72ab080ec11b090ea9ce98b7", + "updated": "2026-10-21T19:46:06Z" + }, + { + "number": 4435, + "title": "Derive the broad forward inverse asymptotics: ||K^-1||_2 ~ e^(a/4)/(2 alpha sqrt(pi)) theta^(-1/2) from a turning-point harmonic oscillator; confirmed to 0.3% (no new κ)", + "head": "d08a3fdd9b840ae79c11d830a53d66586e6a4b8a", + "updated": "2026-10-21T19:28:32Z" + }, + { + "number": 4348, + "title": "Answer #4322's open question 1: at n = 5 the first all-sound length is 26; the firing set drops from 30 to 28 masks at L = 24 (no new κ)", + "head": "91c87533a6a8b3be98663b52073c739093217921", + "updated": "2026-10-21T19:27:54Z" + }, + { + "number": 4345, + "title": "Independently census five full-guard header laws (#4259, #4261, #4273, #4274, #4275) through GL_5(F2), GL_4(F3), GL_3(F4), GL_3(F5): every count matches (no new κ)", + "head": "e99128a6785b562dd7a73ee550bf32ff06ac5b4a", + "updated": "2026-10-21T19:27:54Z" + }, + { + "number": 4344, + "title": "Independently check #4279's depth-four count vectors for m = 2..5: P(m) and the dominance law hold in the box n <= 3m (no new κ)", + "head": "2dce07ef435e776889e23f1f1f58afaa989611fc", + "updated": "2026-10-21T19:27:54Z" + }, + { + "number": 4341, + "title": "Independently reproduce #4281's depth-five connector minima: m = 4 gives 28, 24, 28 by a separate exhaustive BFS; all 173 witnesses verified (no new κ)", + "head": "806922e07f0a83ab37d0897e1750033e72fa0507", + "updated": "2026-10-21T19:27:54Z" + }, + { + "number": 4400, + "title": "This section's polynomial-inverse error is strictly below 2^{-513} (no new κ)", + "head": "53b7721f6da11004ed979294a29f5f0f0a9cc646", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4396, + "title": "This section's polynomial-inverse error is strictly below 2^{-437} (no new κ)", + "head": "d8e334f0158d64113781d4c16dddad42a6150054", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4394, + "title": "This section's polynomial-inverse error is strictly below 2^{-399} (no new κ)", + "head": "00bcf250f21ecbda5a24ce7c262c18284a227a2c", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4392, + "title": "This section's polynomial-inverse error is strictly below 2^{-361} (no new κ)", + "head": "ae4d3eed1e233261a6bcd9e07e12c96df9b93457", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4389, + "title": "This section's polynomial-inverse error is strictly below 2^{-304} (no new κ)", + "head": "877e5fafff4b5d17217e6f80dc3e49d8bbc0078d", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4388, + "title": "This section's polynomial-inverse error is strictly below 2^{-285} (no new κ)", + "head": "fca350341e94cbc9877bfe22db18e3cfd13d7d0a", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4385, + "title": "This section's polynomial-inverse error is strictly below 2^{-228} (no new κ)", + "head": "c1e30a15ae4a887fdbea55b41325afa654859182", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4384, + "title": "This section's polynomial-inverse error is strictly below 2^{-209} (no new κ)", + "head": "eb63013e17c24c8b3692aca633e81d475a341222", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4383, + "title": "This section's polynomial-inverse error is strictly below 2^{-190} (no new κ)", + "head": "e6dba8c5f9fe2c200450272bd31515403fa82254", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4382, + "title": "This section's polynomial-inverse error is strictly below 2^{-171} (no new κ)", + "head": "df6c0bfc99677916a7906d19793a82565c1c4c32", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4381, + "title": "This section's polynomial-inverse error is strictly below 2^{-152} (no new κ)", + "head": "e5a5b49449b447c62d731a4300f4422558cc2cf2", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4380, + "title": "This section's polynomial-inverse error is strictly below 2^{-133} (no new κ)", + "head": "c23102709d43d9c7880219e394026baa870e3996", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4379, + "title": "This section's polynomial-inverse error is strictly below 2^{-114} (no new κ)", + "head": "18f1dc603e832ed2c33b850d8b7d7f35ee7160da", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4378, + "title": "Record the square i-block obstruction for mixed negative Q8 targets.", + "head": "da82b198bd06dfc248bdcdf4ab477da50688fb07", + "updated": "2026-10-21T19:27:53Z" + }, + { + "number": 4377, + "title": "Prove the uniform CRT evaluator bound with constant 1.", + "head": "0c998e1f6548738b010f403a64df9c8dc2b4d429", + "updated": "2026-10-21T19:27:53Z" + } + ], + "created": [ + { + "number": 4442, + "title": "Apply the smaller halo exponents across a cell, under the downward reading (no new κ)", + "head": "d079c2b058ebd3d7a9ff424113b095bf61175427", + "updated": "2026-10-21T20:11:41Z" + }, + { + "number": 4441, + "title": "Conditional κ = 0.00300105 (+4.105e-5 over #4440): combine query thinning and helper retiming", + "head": "5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39", + "updated": "2026-10-21T20:41:48Z" + }, + { + "number": 4440, + "title": "Conditional κ = 0.00296 via query-thinned productive controllers (+10.18%)", + "head": "40e22a83ed660d3d6074c4f2dbf14bfb621eee51", + "updated": "2026-10-21T20:14:35Z" + }, + { + "number": 4439, + "title": "Apply the smaller halo exponents inside one cell, with normalizer 6 (no new κ)", + "head": "26af8afbadd7f8feb737d98b47ac9f4b45d35c7a", + "updated": "2026-10-21T20:02:46Z" + }, + { + "number": 4438, + "title": "Bound the within-cell column gap by a relative weight error of 1/(16p^2) (no new κ)", + "head": "6157a47bfe169cd9c5f666f85ab8caa929e1174f", + "updated": "2026-10-21T19:56:30Z" + }, + { + "number": 4437, + "title": "Extend the ideal column majorant across every legal g=2 step (no new κ)", + "head": "7ca94e9762ee33edbfb2e527e7313bc579e463ee", + "updated": "2026-10-21T19:49:34Z" + }, + { + "number": 4436, + "title": "Bound compiler width by exp(O(N log N)) and route overlapping ranks", + "head": "56003680aee2871773de408e5f01cc5dd46b144c", + "updated": "2026-10-21T19:54:23Z" + }, + { + "number": 4435, + "title": "Derive the broad forward inverse asymptotics: ||K^-1||_2 ~ e^(a/4)/(2 alpha sqrt(pi)) theta^(-1/2) from a turning-point harmonic oscillator; confirmed to 0.3% (no new κ)", + "head": "d08a3fdd9b840ae79c11d830a53d66586e6a4b8a", + "updated": "2026-10-21T19:28:32Z" + }, + { + "number": 4434, + "title": "Decide #4281's depth-five connector at m = 5 exactly (minima 25, 30, 35, 35) and at m = 6 for length 5m (c = 1 new, c = 3; others >= 36) by exact meet-in-the-middle (no new κ)", + "head": "930469ad8c0b82b04cd4c1775913e27de47b1113", + "updated": "2026-10-21T20:00:49Z" + }, + { + "number": 4433, + "title": "Reduce p7 tensor power and uniform-rank exponent (41.6× and 46.38M×)", + "head": "b84060c9cba91b1e76f84617a877d259621eb015", + "updated": "2026-10-21T19:27:51Z" + }, + { + "number": 4432, + "title": "Audit #4100 BIT.md's local-ring algebra, row stock, depth, recurrence and wrapper: all hold (no new κ)", + "head": "44c094454b174bba943a0dfbb324cfec8bd7c976", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4431, + "title": "Prove a completion-independent native H obstruction from one ordinary edge", + "head": "abdf6548948cbc8e44209bad2d1cd640d780a04b", + "updated": "2026-10-21T19:27:51Z" + }, + { + "number": 4430, + "title": "Independently review #4417's nonlinear centre-sharing floor: Theorems 1-2 hold; all six screen ceilings reproduced by separate code; rank-72 regroup is extremal (no new κ)", + "head": "da76aa4d3aec87a2fc51439f3f16a789d2a2b517", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4429, + "title": "Independently check the #4412 and #4414 tensor endpoints: alpha/gamma bounds and ranks hold; least tensor powers 10,714 and 60,701 (no new κ)", + "head": "40f675338b7102ec38d858355a1db6cc051778e7", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4428, + "title": "Independently check #4416's paid-completion tensor bound at kappa 0.00268647: proof steps and arithmetic hold; gamma margin 8e-6; least v 5745 (no new κ)", + "head": "ba0efeaac4e62d1757d7a9be6fd8aaf8f9bd35dc", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4427, + "title": "Answer #4322's open question 2: no functional fires at (7,18) or (7,20), since 133,421,988 and 3,857,028,444 canonical walks include no universal word (no new κ)", + "head": "eaa39d7439821a408f4c4ef03a71fd4c0399028e", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4426, + "title": "Rebuild #4416's p7 invoice from its literal controller word: exact Laurent replay gives T and P exactly (no new κ)", + "head": "6f918e2658c727007611d98ffb8d3c7336e2290c", + "updated": "2026-10-21T19:27:51Z" + }, + { + "number": 4425, + "title": "Independently review #4411's logarithmic majorant: proof holds, arithmetic certified, least ranks slightly below stated, exact L(N) <= F(N) to N = 6000 (no new κ)", + "head": "76613f8d29b664e386f29f30153f74087f462953", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4424, + "title": "Audit #4100 COMPLEX.md's common cover and native warps: |O(73,2)|, X_delta correction, stock arithmetic and Z4-monomial warps hold (no new κ)", + "head": "5d7169599ecb6167cc3e1d17dd374968c225c307", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4423, + "title": "Check jwr404's p = 19 section chain in one package: #4354, #4355, #4361, #4362, #4364 and all 28 two-power PRs hold; the sharp threshold is 2^-519 (no new κ)", + "head": "53f601cfd51f3487348f15e5d443ed3a8543a5c3", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4422, + "title": "Independently check #4412's and #4414's strictification inequalities: all hold; each tested saving sits within 1e-8 of its invoice's limit (no new κ)", + "head": "6977b9f52c8632d066b0d649f2a6280c5a96185e", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4421, + "title": "Extend #4365's rank dual to every plane triple: three-plane COPY floor 12 over every field on all 27,720 triples (no new κ)", + "head": "333452eb9d78f7077b77971877f20f4b4a276948", + "updated": "2026-10-21T19:57:46Z" + }, + { + "number": 4420, + "title": "Independently check #4416's moment and paid-tail inequalities at κ = 0.00268647: all hold; the tested saving sits 9.05e-9 below this invoice's limit (no new κ)", + "head": "64b4f5457613ada7f0e3f2f4d26f9978d19cdfa7", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4419, + "title": "Report omitted local notes in overlap searches", + "head": "f837d4c443113e7d87d8451ba85878b0feed82f4", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4418, + "title": "Decide #4281's eleven open depth-five connector residues: exact minima 30, 35, 35 (m=5), 30, 36, 36, 36 (m=6), 35, 42 (m=7), 40, 40 (m=8) (no new κ)", + "head": "f87bec70596b2e34d641fd70a0fde281c94d5eaf", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4417, + "title": "Close nonlinear and adaptive centre sharing at the fresh-information floor (no new κ)", + "head": "2b1011151f9a8bb9777f2659bdb0e88cb81c5e41", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4416, + "title": "Conditional κ = 0.00268647 via paid target padding after native composition", + "head": "e9058860b5c850760fdf970e796a96aefcdb1d98", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4415, + "title": "Answer #4371's open question 1: one coefficient's error path through #4100's transforms carries one factor of T (m = 1), so C = 5 suffices for b >= 13 (no new κ)", + "head": "ebfa9588f5a1ca4c595b3ff837f24917d5dd7caf", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4414, + "title": "Conditional κ = 0.00267987 with a complete p6 native controller", + "head": "90da4b0ab894350ca12cac9110cc6da2225d18af", + "updated": "2026-10-21T19:27:52Z" + }, + { + "number": 4413, + "title": "Rebalance #4359's own ledger at unchanged kappa 0.0023: explicit ranks shrink to 2^268300549 (complex) and 2^14664 (BIT) with all 54 predicates strict (no new κ)", + "head": "c2cf40086db273d7e0fcdd647fa63e2cc187550e", + "updated": "2026-10-21T19:27:52Z" + } + ] +} diff --git a/research/kappa-hybrid-controller/frontier/REPORT.md b/research/kappa-hybrid-controller/frontier/REPORT.md new file mode 100644 index 0000000000..3657df1880 --- /dev/null +++ b/research/kappa-hybrid-controller/frontier/REPORT.md @@ -0,0 +1,29 @@ +# Independent audit of the updated PR4441 frontier + +At **2026-10-21 20:42:34 UTC**, the 30 most recently updated PRs, the 30 most recently created PRs and canonical main were refreshed. The strongest newly observed claim remained PR4441 at **kappa 0.00300105**, head `5f9d871c6bd1b9e34db5a7ea5ef08a908e94db39`. No claim above the proposed `0.003001053` was found in those bounded lists. Canonical main remained `2a13eb1827784206202db90e5dc8327cf8a250db`. This is bounded retrieval coverage, not an exhaustive claim about all historical PRs. + +## Checked + +The independently constructed retimed p17 case and the published combined profile agree exactly. They contain 11560 productive fields, 69273 paid requests, and productive/paid rank masses 260798/259998. + +A newly written interval engine uses only integer arithmetic, outward rounding in units of 10^-60, an atanh series with an exact logarithm remainder, and an exponential series with an exact geometric remainder. It imports no source interval implementation. Optimized execution succeeds with `python3 -I -O -B research/kappa-hybrid-controller/frontier/audit.py`. + +At tested saving 0.003001052, the new engine independently encloses every published alpha, gamma and delta interval. It proves alpha < 1-10^-9, gamma < 97/100 and delta < 19/20; the earlier gamma limit 31/32 fails. Both decay-block inequalities and the complete paid-tail bound `2097152001953127/2097154147483648 < 1` hold exactly. + +The two signs bracketing the fixed-profile root at 0.0030010541830 and 0.0030010541834 hold independently. Sixteen derivative interval cells prove strict decrease through C=1/20. Another 128 interval cells keep the moment negative from C=1/20 through 1. This establishes the stated ceiling for this one profile throughout 0=0 and b[0]>0,'Positive division') + return a[0]*S//b[1],ceildiv(a[1]*S,b[0]) +def atanh_log(z): + need(0<=z<=Q(1,3),'Log range reduction') + zz=rat(z);z2=mul(zz,zz);term=zz;out=(0,0);N=80 + for j in range(N): + out=add(out,scale(term,Q(2,2*j+1))) + term=mul(term,z2) + tail=2*z**(2*N+1)/((2*N+1)*(1-z*z)) + return out[0],out[1]+rat(tail)[1] +@lru_cache(None) +def logn(n): + if n==1:return 0,0 + k=n.bit_length()-1 + return add(scale(atanh_log(Q(1,3)),k),atanh_log(Q(n-2**k,n+2**k))) +def exp_interval(x): + if x[1]<=0: + y=exp_interval((-x[1],-x[0])) if x!=(0,0) else (S,S) + return S*S//y[1],ceildiv(S*S,y[0]) + need(x[0]>=0 and x[1]<20*S,'Exponential input domain') + term=(S,S);out=term;N=160 + for j in range(1,N+1): + term=scale(mul(term,x),Q(1,j));out=add(out,term) + nxt=ceildiv(term[1]*x[1],S*(N+1)) + tail=ceildiv(nxt*S*(N+2),(N+2)*S-x[1]) + return out[0],out[1]+tail +@lru_cache(None) +def power(n,e):return exp_interval(scale(logn(n),e)) +def moment(profile,e): + out=(0,0) + for n,count in profile.items():out=add(out,scale(power(n,e),count)) + return out +def show(x): + def one(n): + sign='-' if n<0 else '';n=abs(n) + return sign+str(n//S)+'.'+str(n%S).zfill(60) + return {'lower':one(x[0]),'upper':one(x[1])} +def overlap(x,entry): + return max(Q(x[0],S),Q(entry['lower']))<=min(Q(x[1],S),Q(entry['upper'])) +def encode(x): + if isinstance(x,Q):return str(x) + if isinstance(x,dict):return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(list,tuple)):return [encode(v) for v in x] + return x + +source_meta=json.loads((HERE.parent/'SOURCES.json').read_text()) +for name in SOURCE_FILES: + path='research/fresh-helper-thinned/'+name + row=next(r for r in source_meta['files'] if r['path']==path) + need(hashlib.sha256((SOURCE/name).read_bytes()).hexdigest()==row['sha256'],'Exact updated-frontier source: '+name) +r=json.loads((SOURCE/'RESULT.json').read_text()) +T={int(k):v for k,v in r['targets'].items()};P={int(k):v for k,v in r['paid'].items()} +own_path=HERE.parent/'controller/P17-DIRECT-CASE.json' +need(hashlib.sha256(own_path.read_bytes()).hexdigest()=='00247ee53b39cf01e176d93b8035bbdb18e7669f969b4ab576130205ae02d0df','Independently constructed controller source pin') +own=json.loads(own_path.read_text()) +need(T=={int(k):v for k,v in own['complete_productive_profile'].items()} and P=={int(k):v for k,v in own['complete_paid_profile'].items()},'Published invoice equals independently constructed full controller') +need(sum(T.values())==11560 and sum(P.values())==69273,'All fields and requests') +need(sum(k*v for k,v in T.items())==260798 and sum(k*v for k,v in P.items())==259998,'Both exact masses') +C=Q('.003001052');kappa=Q('.00300105');v=1024;t=1-C +tm=moment(T,t);pm=moment(P,t) +alpha=div(pm,tm) +gamma=div(moment(P,t+Q(1,5)),mul(power(20,Q(1,5)),tm)) +delta=div(rat(11560*21),mul(power(20,C),tm)) +need(alpha[1]<(S-S//10**9),'Alpha bound') +need(gamma[1]rat(Q(31,32))[1],'Old gamma bound fails') +for name,x in [('alpha',alpha),('gamma',gamma),('delta',delta)]: + need(overlap(x,r['strictification'][name]),'Published interval overlap: '+name) +need(Q(97,100)**128rat(theta**1000)[1],'Complement log-majorant capacity') +need(power(153,v*C)[1]<2**1000*S,'Initial compiler range') +need(overlap(eta,r['compiler']['eta']),'Published eta interval') +gap=(C-kappa)/7;H=r['compiler']['H'];j=r['compiler']['integer_test_exponent'] +need(gap==Q(1,3500000000) and H==3500000000*j and H==165315500000000,'Compiler grid') +need((H+1)**1000<2**j,'Final uniform rank inequality') +need((H-3500000000+1)**1000>=2**(j-1),'Preceding compiler grid point rejected') +root_signs={} +for name,c in [('lower',Q('.0030010541830')),('upper',Q('.0030010541834'))]: + ta,pa=moment(T,1-c),moment(P,1-c) + margin=(ta[0]-pa[1],ta[1]-pa[0]);root_signs[name]=show(margin) + need(margin[0]>0 if name=='lower' else margin[1]<0,'Independent root bracket sign') +signed={rank:T.get(rank,0)-P.get(rank,0) for rank in T.keys()|P.keys()} +derivative=[] +for j in range(16): + left,right=Q(j,320),Q(j+1,320);total=(0,0) + for rank,count in signed.items(): + total=add(total,scale(mul(power(rank,1-(right if count>0 else left)),logn(rank)),count)) + derivative.append(total[0]) +remaining=[] +for j in range(128): + left,right=Q(1,20)+Q(19*j,2560),Q(1,20)+Q(19*(j+1),2560);total=(0,0) + for rank,count in signed.items(): + total=add(total,scale(power(rank,1-(left if count>0 else right)),count)) + remaining.append(total[1]) +need(min(derivative)>0 and max(remaining)<0,'Fixed-profile ceiling throughout every real0ordinary>Q(bit['admitted'])>C,'Exact ordinary BIT arithmetic') +ledger_path=ROOT/'research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py' +need(hashlib.sha256(ledger_path.read_bytes()).hexdigest()=='d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15','Pinned outer ledger source') +spec=importlib.util.spec_from_file_location('pinned_outer',ledger_path);L=importlib.util.module_from_spec(spec);spec.loader.exec_module(L) +params={'kappa':kappa,'tested_saving':C,'complex_uniform_saving':kappa+6*gap,'b':kappa+5*gap,'a':kappa+4*gap,'q':kappa+3*gap,'bit_saving':Q(bit['admitted']),'epsilon':1-gap,'beta':1-3*gap,'r0':gap/10,'stop':gap,'layout':gap,'d':gap} +outer=L.ledger(params);outer['functional_checks']['actual_new_BIT_stock_sublinear']=params['beta']*(1-atom) +need(encode(outer)==r['outer'],'Exact outer ledger receipt reproduction') +need(len(outer['strict_checks'])==54 and len(outer['functional_checks'])==4 and all(q>0 for k in ('strict_checks','functional_checks') for q in outer[k].values()),'All 54+4 inequalities') +refined_alpha=div(moment(P,1-Q('.003001054')),moment(T,1-Q('.003001054'))) +need(refined_alpha[1]= 224 for e in program), + 'Old helper wrapper markers are replaced by the new complete boundary recipes') + native_edges.append({(e[3],e[4]) for e in program if e[0] == 'climb'}) + literal = replay['native'][direction] + need(literal['independent_persistent_columns'] == 632 and + literal['arbitrary_owned_C0_cleared'] and literal['scalar_frames_checked'], + 'All persistent inputs, scalar contact frames and the owned center are checked') + checks[direction] = literal['second_literal'] + need(checks[direction]['independent_borrowed_input_fields'] == 632 and + checks[direction]['expected_restored_helpers'] == 408 and + checks[direction]['free_warp_operator_endpoint_matches'], + 'Second literal interpreter checks every arbitrary source and helper endpoint') + need(native_edges[0] == native_edges[1],'Both orientations have the same retimed transport edges') + physical = {(row['old'],row['new']):row for row in replay['new_physical_edges_and_boundaries']} + for role in range(224,632): + edge = (canonical['start'][role],canonical['final'][role]) + need(edge in physical,'Every complete helper boundary has a physical phase recipe') + row = physical[edge] + width = len(canonical['frames'][edge[1]])-len(canonical['frames'][edge[0]]) + need(width > 0 and row['rank'] == width and + all(row['recipes'][direction]['rank'] == width for direction in ('forward','backward')), + 'Every arbitrary helper is positively productive with both complete phases') + helpers = {int(k):v for k,v in replay['helpers'].items()} + paid = {int(k):v for k,v in replay['paid'].items()} + need(helpers == parameters.LOCAL_HELPERS and paid == parameters.LOCAL_PAID, + 'Exact current retimed helper and paid profiles') + need(sum(helpers.values()) == 408,'All helpers retain distinct arbitrary owners') + need((replay['changed_entrances'],replay['changed_exits'],replay['changed_scalar_frames']) == (117,42,395), + 'Exact inherited retiming scope') + for direction,expected in (('forward',158120),('backward',158168)): + need(checks[direction]['conservative_real_scalar_primitive_allowance'] == expected and + replay['native'][direction]['real_scalar_allowance'] == expected, + 'Both independent scalar invoices equal the unchanged source invoice') + return {'schema':'source-bound-retimed-arbitrary-native-supplier/1', + 'status':'PASS_ALL_632_INPUTS_BOTH_DIRECTIONS_AND_ALL_RETIMED_HELPER_PHASES', + 'local_helper_profile':helpers,'local_paid_profile':paid,'local_replays':checks, + 'retimed_native_receipt':replay,'retimed_source_head':RETIMED_HEAD, + 'retimed_artifact_sha256':RETIMED_FILES,'retimed_source_sha256':RETIMED_SOURCES, + 'external_main_boundaries_unchanged':True,'all_scalar_actions_and_order_unchanged':True, + 'all_warp_contacts_unchanged':True,'scalar_contact_frames_retimed':395, + 'all_408_helpers_arbitrary':True,'whole_helper_boundary_recipes':408, + 'distinct_physical_edge_and_boundary_recipes':len(physical), + 'fresh_arbitrary_input_fields':632,'authenticated_original_files':authenticated, + 'inherited_native_gate':inherited_gate, + 'boundary_movement_allowance':'Every new whole-helper left/right monomial and transport recipe contributes its full finite route and phase cost.'} diff --git a/research/kappa-hybrid-controller/native_geometry.py b/research/kappa-hybrid-controller/native_geometry.py new file mode 100644 index 0000000000..2d8c9297d0 --- /dev/null +++ b/research/kappa-hybrid-controller/native_geometry.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 +"""Independent exact audit of native/direct controller specialization. + +The local supplier is separately validated by the complete source-bound gate. +This checks the literal specialized Laurent word, every surviving native +contact, every whole idle and endpoint phase, and both direct Q kernels. +""" +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +DEFAULT_SOURCE = HERE.parent/'pr4359-p7-padding/source' +LOCAL_HELPERS = {4: 26, 5: 2, 7: 29, 8: 42, 9: 309} +LOCAL_PAID = {1: 2253, 2: 515, 3: 445, 4: 102, 5: 40, 8: 8} +PINS = { + 'research/kappa-rebuild/transfer-audit/p3_native_audit.py': '5504a55a50546418d10c522984438cdeedb44993f7c1dab7bd4aa1ae0515d902', + 'research/kappa-0023-productive-jobs/dependencies/kappa-next-regime/direct-decoder/sources/DATA-PHASES.json': 'c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa', +} +CLIFFORD_SHA256 = '2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962' + + +def need(ok, why): + if not ok: + raise AssertionError(why) + + +def load(path, name): + spec = importlib.util.spec_from_file_location(name, path) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def canonical(value): + return json.dumps(value, sort_keys=True, separators=(',', ':')).encode() + + +# Phase algebra adapted without mathematical changes from PR4416 native_inventory.py. +def norm(terms): + out = Counter() + for axis, value in terms: + out[axis] += value + return tuple(sorted((axis, value % 4) for axis, value in out.items() if axis and value % 4)) + + +def act(columns, value): + result = 0 + while value: + low = value & -value + result ^= columns[low.bit_length()-1] + value ^= low + return result + + +@lru_cache(None) +def polynomial(terms, dimension): + linear = [0]*dimension + quadratic = [0]*dimension + for axis, value in terms: + support = [i for i in range(dimension) if axis >> i & 1] + for i in support: + linear[i] = (linear[i]+value) % 4 + if value % 2: + for j in support: + if i < j: + quadratic[i] ^= 1 << j + return tuple(linear), tuple(quadratic) + + +def contact(old, new, route, dimension): + moved = norm((act(route, axis), value) for axis, value in old) + left, right = polynomial(moved, dimension), polynomial(new, dimension) + need(left[1] == right[1], 'Actual native contact has identical quadratic part') + delta = tuple((a-b) % 4 for a, b in zip(right[0], left[0])) + need(all(value in (0, 2) for value in delta), 'Even linear phase is a physical translation') + shift = sum((value//2) << i for i, value in enumerate(delta)) + need(polynomial(norm(list(moved)+[(shift, 2)]), dimension) == right, 'Full native forward phase') + inverse_shift = act(route, shift) + inverse = norm([(act(route, axis), value) for axis, value in new]+[(inverse_shift, 2)]) + need(polynomial(inverse, dimension) == polynomial(old, dimension), 'Full inverse contact phase') + return {'translation': shift, 'inverse_translation': inverse_shift} + + +def scalar_invoice(case, native_scalar): + word = case['right_program']+case['left_program'] + counts = Counter(row[0] for row in word) + need(all(Q(row[-1]) in (1, -1) for row in word if row[0] in ('ADD', 'SCALE')), + 'Literal boundary word has only unit coefficients') + adds = counts['ADD']+3*counts['SWAP'] + negs = counts['SCALE']+counts['SWAP'] + bridges = sum(row[0] == 'ADD' for row in case['physical_events']) + swaps = sum(row[0] == 'SIGNED_SWAP' for row in case['physical_events']) + return native_scalar+112*(8*(adds+bridges+3*swaps)+2*negs) + + +def specialize(case, native_mask): + """Apply the ring homomorphism D_s -> 1 to the actual finite word.""" + result = json.loads(json.dumps(case)) + for event in result['physical_events']: + if event[0] == 'LOCAL' and not (native_mask >> event[1]) & 1: + event[0] = 'DIRECT' + elif event[0] == 'IDLE': + event[2] = [s for s in event[2] if (native_mask >> s) & 1] + for monomial in result['exact_diagonal_monomials']: + for stage in range(2*case['pairs']+1): + if not (native_mask >> stage) & 1: + monomial[stage+1] = 0 + for window in result['retained_idle_windows']: + window['original_stages'] = window['stages'][:] + window['stages'] = [s for s in window['stages'] if (native_mask >> s) & 1] + window['rank'] = 8*len(window['stages']) + result['native_mask'] = native_mask + return result + + +def replay(case): + """Replay all input columns over the exact integer Laurent ring.""" + rows = 2*case['pairs'] + variables = len(case['coefficient_variables']) + zero = (0,)*variables + matrix = [[{zero:Q(1)} if i == j else {} for j in range(rows)] for i in range(rows)] + + def add(a, b, coefficient=1): + out = a.copy() + for term, value in b.items(): + out[term] = out.get(term, Q(0))+coefficient*value + if not out[term]: + del out[term] + return out + + def shift(row, delta): + return {tuple(x+y for x,y in zip(term,delta)):value for term,value in row.items()} + + events = case['right_program']+case['physical_events']+case['left_program'] + for event in events: + kind = event[0] + if kind == 'ADD': + _, destination, source, coefficient = event + matrix[destination] = [add(a,b,Q(coefficient)) for a,b in zip(matrix[destination],matrix[source])] + elif kind == 'SCALE': + _, role, coefficient = event + matrix[role] = [{term:Q(coefficient)*value for term,value in row.items()} for row in matrix[role]] + elif kind == 'SWAP': + _, a, b = event + matrix[a],matrix[b] = matrix[b],matrix[a] + elif kind == 'SIGNED_SWAP': + _, a, b = event + matrix[a],matrix[b] = matrix[b],[{term:-value for term,value in row.items()} for row in matrix[a]] + elif kind == 'IDLE': + _, pair, stages = event + delta = (0,)+tuple(int(s in stages) for s in range(variables-1)) + for role in (2*pair,2*pair+1): + matrix[role] = [shift(row,delta) for row in matrix[role]] + elif kind in ('LOCAL','DIRECT'): + _, stage, pair, backward = event + x,y = 2*pair,2*pair+1 + destination,source,coefficient = (x,y,-1) if backward else (y,x,1) + delta = (1 if backward else -1,)+(0,)*(variables-1) + matrix[destination] = [add(a,shift(b,delta),coefficient) + for a,b in zip(matrix[destination],matrix[source])] + if kind == 'LOCAL': + delta = tuple(int(i == stage+1) for i in range(variables)) + for role in (x,y): + matrix[role] = [shift(row,delta) for row in matrix[role]] + else: + raise AssertionError('Unrecognized literal event '+kind) + expected = [[{tuple(case['exact_diagonal_monomials'][i]):Q(1)} if i == j else {} + for j in range(rows)] for i in range(rows)] + need(matrix == expected,'Every exact coefficient of the specialized physical controller') + return {'input_columns':rows,'matrix_entries':rows*rows,'literal_events':len(events)} + + +def direct_recipes(phases, ce): + """Complete-phase rank-one kernels, with literal owned-copy semantics.""" + records = [] + negative_missing_inverse_shift = 0 + for port, recipe in enumerate(phases['recipes']): + q = recipe['q'] + basis = recipe['idle_children'][0]['orthogonal_axes'][:8] + columns = (q,*basis) + need(all((a&b).bit_count()%2 == int(i == j) + for i,a in enumerate(columns) for j,b in enumerate(columns)), + 'The actual port supplies a full orthonormal coordinate basis') + P = ce.perm(9,ce.transpose(columns,9)) + child = ce.fourier(9,[0]) + forward = P.adjoint().then(child).then(P) + inverse = forward.then(ce.xgate(9,q)) + directions = {} + for direction,op,sign in (('forward_Q',forward,1),('inverse_Q',inverse,-1)): + exact = ce.cgate(9,q,sign) + need(op.tab == exact.tab and op.zero_state() == exact.zero_state(), + 'All Pauli generators and the absolute phase of the actual Q kernel') + # The tableau fixes translation covariance, so equality on |0> + # proves every literal column; this loop independently checks the + # two nonzero coefficients of all 512 columns using the route. + a,b = (1,sign),(1,-sign) + for x in range(512): + y = ce.mv(ce.inv(ce.transpose(columns,9),9),x) + destinations = [ce.mv(ce.transpose(columns,9),y), + ce.mv(ce.transpose(columns,9),y^1)] + coefficients = [(1,1),(1,-1)] + if sign == -1: + destinations = [z^q for z in destinations] + observed = dict(zip(destinations,coefficients)) + need(observed == {x:a,x^q:b},'Literal two-point kernel on every coordinate column') + lowered,compiled = ce.lower_child(exact) + need(lowered['rank'] == 1 and compiled.tab == exact.tab and + compiled.zero_state() == exact.zero_state(),'Independent complete-phase rank-one lowering') + directions[direction] = {'kernel_numerator_at_x':a,'kernel_numerator_at_x_xor_q':b, + 'kernel_denominator':2,'rank':1,'phase_Z4':0, + 'translation_after':q if sign == -1 else 0, + 'independent_lowering':lowered} + need(forward.tab != inverse.tab or forward.zero_state() != inverse.zero_state(), + 'Omitting the inverse translation changes the operator') + negative_missing_inverse_shift += 1 + records.append({'port':port,'q':q,'route_columns':columns,'directions':directions, + 'owned_scratch_fields':1,'productive_scratch_endpoints':0, + 'paid_queries_per_direct_stage':1, + 'literal_forward':[['ZERO','tmp'],['ADD','tmp','X',1], + ['GAUSSIAN_Q_INVERSE','tmp'],['ADD','Y','tmp',1],['RELEASE','tmp']], + 'literal_backward':[['ZERO','tmp'],['ADD','tmp','Y',1], + ['GAUSSIAN_Q','tmp'],['ADD','X','tmp',-1],['RELEASE','tmp']]}) + return records,negative_missing_inverse_shift + + +def geometry(case, phases, native_mask): + p = case['pairs'] + dimension = 9+16*p + axes = tuple(1<>stage)&1 for stage,yes in enumerate(selected)), + 'No productive rank on any specialized-away D axis') + for port,recipe in enumerate(phases['recipes']): + q = recipe['q'] + physical = norm([(q,qp)]+[entry for stage,yes in enumerate(selected) if yes + for entry in stage_frame(stage,q)]) + positive = list(axes[:9]) if selected[0] else [q] + positive += [axis for stage in range(1,len(selected)) if selected[stage] + for axis in axes[9+8*(stage-1):9+8*stage]] + shift = q if qp == -1 else 0 + need(len(positive) == 1+8*sum(selected),'Specialized productive endpoint rank') + need(polynomial(norm(list(physical)+[(shift,2)]),dimension) == + polynomial(norm((axis,1) for axis in positive),dimension),'Complete specialized endpoint phase') + if shift: + need(polynomial(physical,dimension) != polynomial(norm((axis,1) for axis in positive),dimension), + 'Omitting the endpoint translation changes the operator') + endpoint_negative += 1 + endpoints.append({'role':role,'port':port,'rank':len(positive),'axes':positive,'translation':shift}) + target_main[len(positive)] += 1 + literal = Counter((row[1],tuple(row[2])) for row in case['physical_events'] if row[0] == 'IDLE') + recorded = Counter((row['pair'],tuple(row['stages'])) for row in case['retained_idle_windows']) + need(literal == recorded,'Bijection of specialized literal IDLE records and whole idle invoices') + idle,records = Counter(),[] + for window in case['retained_idle_windows']: + selected = window['stages'] + for port,recipe in enumerate(phases['recipes']): + q = recipe['q'] + positive = recipe['idle_children'][0]['orthogonal_axes'][:8] if 0 in selected else [] + positive += [axis for stage in selected if stage > 0 + for axis in axes[9+8*(stage-1):9+8*stage]] + shift = recipe['idle_children'][0]['translation_after'] if 0 in selected else 0 + desired = norm(entry for stage in selected for entry in stage_frame(stage,q)) + actual = norm([(axis,1) for axis in positive]+[(shift,2)]) + need(len(positive) == window['rank'],'Exact specialized whole idle rank') + need(all((a&b).bit_count()%2 == int(i == j) + for i,a in enumerate(positive) for j,b in enumerate(positive)), + 'Exact specialized whole idle independent orthogonal axes') + need(polynomial(actual,dimension) == polynomial(desired,dimension),'Complete specialized whole idle phase') + if positive: + idle[len(positive)] += 2 + records.append({'window':window['index'],'pair':window['pair'],'stages':selected,'port':port, + 'axes':positive,'translation':shift,'paid_queries':2 if positive else 0}) + targets = target_main+Counter({r:c*len(stages) for r,c in LOCAL_HELPERS.items()}) + paid = Counter({r:c*len(stages) for r,c in LOCAL_PAID.items()})+idle + direct = [event for event in case['physical_events'] if event[0] == 'DIRECT'] + paid[1] += len(phases['recipes'])*len(direct) + scalar_native = sum(158168 if row[3] else 158120 for row in stages) + scalar_boundary = scalar_invoice(case,scalar_native) + scalar_direct = 64*len(phases['recipes'])*len(direct) + receipt = {'dimension':dimension,'native_stages':len(stages),'direct_stages':len(direct), + 'native_stage_indices':[row[1] for row in stages], + 'direct_stage_indices':[row[1] for row in direct], + 'main_contact_checks':4*len(contacts),'productive_main_fields':sum(target_main.values()), + 'fresh_helper_fields':408*len(stages),'productive_fields':sum(targets.values()), + 'targets':dict(sorted(targets.items())),'paid':dict(sorted(paid.items())), + 'whole_idle_profile':dict(sorted(idle.items())), + 'direct_paid_queries':len(phases['recipes'])*len(direct), + 'direct_scalar_allowance':scalar_direct,'native_and_boundary_scalar_allowance':scalar_boundary, + 'scalar_allowance':scalar_boundary+scalar_direct, + 'paid_calls':sum(paid.values()),'rank_margin':sum(r*c for r,c in targets.items())-sum(r*c for r,c in paid.items()), + 'omitted_endpoint_translation_rejected':endpoint_negative} + return receipt,{'contacts':contacts,'endpoints':endpoints,'whole_idles':records} + + +def run(case_path, native_mask, source_root=DEFAULT_SOURCE, output_dir=None): + root = Path(source_root).resolve() + source_pins = {} + for relative,expected in PINS.items(): + data = (root/relative).read_bytes() + need(sha256(data).hexdigest() == expected,'Exact source pin: '+relative) + source_pins[relative] = expected + ce_path = HERE/'dependencies/clifford_exact.py' + need(sha256(ce_path.read_bytes()).hexdigest() == CLIFFORD_SHA256,'Pinned exact Clifford compiler') + ce = load(ce_path,'hybrid_exact_clifford_audit') + independent = load(root/list(PINS)[0],'hybrid_original_laurent') + phases = read(root/list(PINS)[1]) + need(len(phases['recipes']) == 112,'All112 actual ports') + original_case = read(case_path) + need(0 < native_mask < 1<<(2*original_case['pairs']+1) and native_mask&1, + 'Selected mixed controller retains D0') + independent.replay(original_case) + case = specialize(original_case,native_mask) + laurent = replay(case) + negative = json.loads(json.dumps(case)) + direct_event = next(event for event in negative['physical_events'] if event[0] == 'DIRECT') + direct_event[3] = not direct_event[3] + negative_ok = False + try: + replay(negative) + except AssertionError: + negative_ok = True + need(negative_ok,'A wrong direct shear orientation fails the full exact Laurent word') + direct,missing_shift = direct_recipes(phases,ce) + receipt,artifact = geometry(case,phases,native_mask) + artifact.update({'formal':case,'direct_recipes':direct}) + payload = canonical(artifact) + receipt.update({'schema':'independent-exact-native-direct-controller-audit/1', + 'status':'PASS_SPECIALIZED_LAURENT_NATIVE_CONTACTS_DIRECT_KERNELS_ENDPOINTS_IDLES', + 'p':case['pairs'],'keep':case['keep_idle_mask'],'native_mask':native_mask, + 'laurent':laurent,'wrong_direct_orientation_rejected':negative_ok, + 'omitted_direct_inverse_translation_rejected':missing_shift, + 'direct_query_rank_for_f_columns':'f, with the same ancestor weight; never f rank-one column queries', + 'direct_scratch_ownership':'Copy source to an owned zero array; query that copy; add to destination; release. No arbitrary helper or productive scratch credit.', + 'artifact_sha256':sha256(payload).hexdigest(), + 'artifact_hash_encoding':'Uncompressed UTF-8 JSON, sort_keys=True, separators=(comma,colon)', + 'case_sha256':sha256(case_path.read_bytes()).hexdigest(), + 'clifford_source_sha256':CLIFFORD_SHA256, + 'source_sha256':source_pins, + 'local_profiles':'Independently audited PR4441 retimed local supplier; the enclosing native_inventory reruns its complete literal and phase gate.', + 'limits':'Finite exact native/direct phase and scalar accounting; tensor strictification, full finite route and owned stock invoices, precision, analytic and fixed-tape/recovery premises remain separate.'}) + if output_dir is not None: + output_dir.mkdir(parents=True,exist_ok=True) + (output_dir/'HYBRID-GEOMETRY.json.gz').write_bytes(gzip.compress(payload,compresslevel=9,mtime=0)) + (output_dir/'HYBRID-GEOMETRY.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n') + return receipt,artifact + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--case',type=Path,default=HERE/'controller/P17-FULL-LAURENT-CASE.json') + parser.add_argument('--native-mask',type=int,default=28633115307) + parser.add_argument('--source-root',type=Path,default=DEFAULT_SOURCE) + parser.add_argument('--output-dir',type=Path) + args = parser.parse_args() + result,_ = run(args.case,args.native_mask,args.source_root,args.output_dir) + print(json.dumps({k:result[k] for k in ('status','p','keep','native_mask','native_stages','direct_stages','targets','paid','rank_margin','scalar_allowance')},sort_keys=True)) diff --git a/research/kappa-hybrid-controller/native_inventory.py b/research/kappa-hybrid-controller/native_inventory.py new file mode 100644 index 0000000000..7dad0de005 --- /dev/null +++ b/research/kappa-hybrid-controller/native_inventory.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +"""Rebuild the complete source-bound p17 native/direct physical invoice.""" +from collections import Counter +from hashlib import sha256 +from pathlib import Path +import argparse +import gzip +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +DEFAULT_SOURCE = HERE.parent/'pr4359-p7-padding/source' +GEOMETRY_PAYLOAD_SHA256 = 'a58789b3cc4449fd7f9520119b2aaf6f5d9f7351cc34ed96f32e41e4169eb034' + + +def need(ok, why): + if not ok: + raise AssertionError(why) + + +def load(path, name): + spec = importlib.util.spec_from_file_location(name,path) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def digest(path): + return sha256(path.read_bytes()).hexdigest() + + +def run(source_root=DEFAULT_SOURCE, output_dir=None, retimed_source_root=None): + root = Path(source_root).resolve() + parameters = load(HERE/'parameters.py','hybrid_inventory_parameters') + supplier_module = load(HERE/'local_supplier.py','hybrid_inventory_supplier') + local = supplier_module.run(root,retimed_source_root) + factory = load(HERE/'controller/make_direct_case.py','hybrid_inventory_factory') + factor = factory.run(root) + need(factor['status'] == 'PASS_EXACT_P17_LAURENT_SPECIALIZATION', 'Fresh exact controller factorization') + geometry_module = load(HERE/'native_geometry.py','hybrid_inventory_geometry') + geometry,artifact = geometry_module.run(HERE/'controller/P17-FULL-LAURENT-CASE.json', + parameters.NATIVE_MASK,root) + need((geometry['p'],geometry['keep'],geometry['native_mask'],geometry['dimension']) == + (parameters.PAIRS,parameters.KEEP,parameters.NATIVE_MASK,parameters.AMBIENT), + 'Exact source-bound controller and full original carrier') + need(tuple(geometry['direct_stage_indices']) == parameters.DIRECT_STAGES and + geometry['native_stages'] == parameters.INVOCATIONS, 'Exact native/direct chronology') + need(geometry_module.LOCAL_HELPERS == local['local_helper_profile'] == parameters.LOCAL_HELPERS and + geometry_module.LOCAL_PAID == local['local_paid_profile'] == parameters.LOCAL_PAID, + 'Geometry uses the fresh arbitrary-input local supplier profiles') + need(geometry['targets'] == parameters.TARGETS and geometry['paid'] == parameters.PAID, + 'Exact complete native/direct/idle/helper tariff') + need(sum(k*v for k,v in geometry['targets'].items()) == parameters.TARGET_MASS and + sum(k*v for k,v in geometry['paid'].items()) == parameters.PAID_MASS and + geometry['productive_fields'] == parameters.PRODUCTIVE_FIELDS, + 'Exact productive census and both rank-one masses') + direct_case = json.loads((HERE/'controller/P17-DIRECT-CASE.json').read_text()) + need(artifact['formal']['exact_diagonal_monomials'] == direct_case['exact_diagonal_monomials'], + 'Independent literal replay and rational factor factory agree on every endpoint') + need(Counter({int(k):v for k,v in direct_case['complete_paid_profile'].items()}) == Counter(parameters.PAID) and + Counter({int(k):v for k,v in direct_case['complete_productive_profile'].items()}) == Counter(parameters.TARGETS), + 'Independent factor invoice agrees with physical geometry') + payload = geometry_module.canonical(artifact) + frozen_path = HERE/'certificates/HYBRID-GEOMETRY.json.gz' + frozen_payload = gzip.decompress(frozen_path.read_bytes()) + need(sha256(payload).hexdigest() == GEOMETRY_PAYLOAD_SHA256 and payload == frozen_payload, + 'Every generated contact/route/endpoint/direct kernel equals the audited canonical payload') + native_orientation = Counter('backward' if row[3] else 'forward' + for row in artifact['formal']['physical_events'] if row[0] == 'LOCAL') + need(native_orientation == Counter(forward=2,backward=17), 'Exact local scalar orientation counts') + native_scalar = sum(local['local_replays'][direction]['conservative_real_scalar_primitive_allowance']*count + for direction,count in native_orientation.items()) + need(geometry_module.scalar_invoice(artifact['formal'],native_scalar) == + geometry['native_and_boundary_scalar_allowance'], 'Complete fresh native and boundary scalar invoice') + need(geometry['direct_paid_queries'] == 1792 and geometry['direct_scalar_allowance'] == 64*1792, + 'Every owned-copy direct query and its pointwise operations are charged') + result = dict(geometry) + result.update(schema='complete-source-bound-hybrid-p17-native-inventory/1', + status='PASS_RETIMED_SUPPLIER_AND_ALL_HYBRID_CONTROLLER_PHASES', + local_supplier=local,factor_factory=factor, + direct_owned_copy_episodes=1792,direct_owned_release_episodes=1792, + direct_productive_scratch_endpoints=0, + direct_nonrecursive_movement_records_allowance=8*1792, + raw_owned_bank_episodes=parameters.INVOCATIONS+1792, + owned_bank_scope='Each direct copy persists across its own recursive request and is released after the ADD. Each native invocation retains its original owned center. All nested suspended banks are separately charged.', + all_column_direct_recipe='At f columns the address map is P tensor I_f (or I_f tensor P in column order), with its induced per-column array permutation. Use one Gaussian child of rank f, inverse route and repeated q translation for C_q inverse. The request has the complete ancestor weight.', + geometry_payload_sha256=GEOMETRY_PAYLOAD_SHA256, + geometry_source_sha256=digest(HERE/'native_geometry.py'), + local_supplier_source_sha256=digest(HERE/'local_supplier.py'), + factor_factory_source_sha256=digest(HERE/'controller/make_direct_case.py'), + parameters_sha256=digest(HERE/'parameters.py'), + limits='Complete finite native/direct controller admission. The common-column tensor rule, expanded fixed route/scalar/owned-stock bounds and inherited precision, analytic, fixed-tape and exact-recovery premises are written separately in PROOF.md.') + if output_dir is not None: + output_dir = Path(output_dir) + output_dir.mkdir(parents=True,exist_ok=True) + (output_dir/'NATIVE.json').write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + return result + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root',type=Path,default=DEFAULT_SOURCE) + parser.add_argument('--output-dir',type=Path) + parser.add_argument('--retimed-source-root',type=Path) + args = parser.parse_args() + result = run(args.source_root,args.output_dir,args.retimed_source_root) + print(json.dumps({key:result[key] for key in ('status','p','targets','paid','rank_margin','scalar_allowance')},sort_keys=True)) diff --git a/research/kappa-hybrid-controller/parameters.py b/research/kappa-hybrid-controller/parameters.py new file mode 100644 index 0000000000..43bc35bd7a --- /dev/null +++ b/research/kappa-hybrid-controller/parameters.py @@ -0,0 +1,31 @@ +"""Exact parameters for the source-bound p17 native/direct controller.""" +from fractions import Fraction as Q + +PAIRS = 17 +CUT = 8 +KEEP = 280378328416255 +NATIVE_MASK = 28633115307 +AMBIENT = 281 +INVOCATIONS = 19 +DIRECT_STAGES = tuple(range(2, 33, 2)) +TESTED_SAVING = Q('0.003001054') +KAPPA = Q('0.003001053') +BIT_SAVING = Q('0.00312') +EXPONENT = 17160 +CUTOFF = 18 +TARGET_FLOOR = 19 +ALPHA_UPPER = 1-Q(1, 10000000000) +GAMMA_UPPER = Q(9991, 10000) +DELTA_UPPER = Q(6, 7) +BLOCK = 780 +COMPLETION_BLOCK = 5 +THETA_DENOMINATOR = 55 +CUTOFF_LOG2_UPPER = 5 +AMBIENT_LOG2_UPPER = 9 +TARGETS = {4: 494, 5: 38, 7: 551, 8: 798, 9: 5871, 17: 448, 25: 448, 33: 448, 41: 448, 49: 448, 57: 448, 65: 448, 73: 448, 153: 224} +PAID = {1: 44599, 2: 9785, 3: 8455, 4: 1938, 5: 760, 8: 152, 16: 448, 24: 448, 32: 448, 40: 448, 48: 448, 56: 448, 64: 448, 72: 448} +PRODUCTIVE_FIELDS = 11560 +TARGET_MASS = 260798 +PAID_MASS = 259998 +LOCAL_HELPERS = {4: 26, 5: 2, 7: 29, 8: 42, 9: 309} +LOCAL_PAID = {1: 2253, 2: 515, 3: 445, 4: 102, 5: 40, 8: 8} diff --git a/research/kappa-hybrid-controller/search/SEARCH.md b/research/kappa-hybrid-controller/search/SEARCH.md new file mode 100644 index 0000000000..8e688a7053 --- /dev/null +++ b/research/kappa-hybrid-controller/search/SEARCH.md @@ -0,0 +1,99 @@ +# Direct-stage search in the minimal-cut path family + +The selected candidate has 17 data pairs, cut 8, idle mask +`280378328416255`, and native-stage mask `28633115307`. Stages +`2,4,...,32` are direct rank-one Q shears. The remaining 19 stages use the +audited retimed native supplier from PR #4441 at commit +`ccdae89b2ab9ced24ee3e7adfdb670ef80d223d9`. Its helper profile is +`{4:26,5:2,7:29,8:42,9:309}` and its complete local paid profile is +`{1:2253,2:515,3:445,4:102,5:40,8:8}`. This supplier already includes +the fifteen previously shortened helper lifetimes. + +Its raw moment root is approximately `0.003001054183175`. This number is a +discovery estimate. The independent integration package supplies the exact +interval inequality, physical bindings, and inherited transfer obligations. + +## Dynamic program + +For a controller with p pairs, there are `2p+1` local stages. Fix a cut c +between 0 and p−1. The minimal-cut idle mask retains all middle singleton +windows, the c initial windows, and the p−1−c terminal windows. Before +specialization, the main output monomials are two copies of each of: + +* prefixes `[0,...,2j]`, for `1<=j<=c`; +* suffixes `[2p−2j,...,2p]`, for `1<=j<=p−1−c`; +* the full stage interval `[0,...,2p]`. + +Each copy corresponds to 112 physical fields. For a binary choice of native +stages, an output interval containing n selected stages has productive +width `1+8n`. A retained idle interval containing n selected stages costs +224 children of width `8n`, and disappears when n is zero. Each native +stage contributes the same local paid and helper histograms. Each direct +stage contributes 112 rank-one children and no native helper outputs. + +At a test exponent tau, write `f(r)=r^tau`, with `f(0)=0`. A left branch +of length c is processed from the outer endpoint toward the central stage. +Before its j-th even stage, let t be the number of native stages already +selected. Selecting that even stage with bit e contributes + +`224 [ f(1+8(t+e)) − f(8t) − e f(8) ]`. + +The first two terms are the paired productive prefix and idle prefix. The +last term prices the middle singleton. The following odd bit changes only +the native count used by subsequent terms. Thus the sufficient branch state +is its current native count; the program stores the best score and one +realizing mask for each count. The right branch is the reflected recurrence. + +The two outermost positions of a nonempty branch have identical membership +in every relevant output and idle interval. Their individual bit order has +no effect on the invoice: only their total count 0, 1, or 2 matters. The +implementation therefore keeps `01` as a representative of the one-selected +case and omits the equivalent `10`. This is an equivalence of these profiles, +not an assertion that the two physical native placements are identical. + +For branch counts nL and nR and central-stage bit m, let n=nL+nR+m. Their +remaining shared score is + +`n [112 + helper_moment − local_paid_moment] − 112(2p+1) + 224 f(1+8n)`. + +The first terms charge native versus direct local stages; the last term +is the full-interval productive output. Enumerating the two branch counts, +the central bit, and all cuts therefore covers every direct/native stage +mask in this minimal-cut path family, up to the stated outer-bit equivalence. + +## Search scope and numerical limitations + +The floating-point dynamic program was run for every p from 1 through 120, +every cut, and every native-count state at test kappa `0.00300106`. Its best +candidate is the p17 profile above. The same controller had previously been +selected using the fifteen-tail-pruned supplier. The new run replaces the +complete local helper and paid histograms before scoring every candidate. + +This is not a proof of global optimality. It does not cover arbitrary idle +masks outside the minimal-cut family, other controller topologies, new +native suppliers, or every p beyond 120. Floating comparison of dynamic +programming scores is a discovery procedure. The positive p17 result is +certified separately using exact rational Laurent identities and exact +integer histograms, followed by the integration package's interval tests. + +## Reproduction + +Run from this directory: + +```sh +python direct_stage_dp.py --max-p 120 --kappa 0.00300106 --summary --out SUMMARY-120.json +python ../controller/make_direct_case.py --source-root /path/to/integer-mult-bounds +``` + +The controller builder authenticates the attributed controller and rational +algebra source files. It reconstructs and factors the full complex controller +over the rational Laurent ring, substitutes the direct-stage variables by +one, and checks every specialized coefficient with the same exact scalar +boundary factors. A wrong backward sign fails this check. It independently +reconstructs the binary monomial factor only to cross-check the integer +width histogram; the complex acceptance check retains both Q and Q inverse. + +The exact specialized receipt is `../controller/P17-DIRECT-CASE.json`. The +unspecialized receipt is `../controller/P17-FULL-LAURENT-CASE.json`. Sparse matrix +multiplication in the builder omits zero summands but retains exact rational +arithmetic throughout. diff --git a/research/kappa-hybrid-controller/search/SUMMARY-120.json b/research/kappa-hybrid-controller/search/SUMMARY-120.json new file mode 100644 index 0000000000..e55c4df76d --- /dev/null +++ b/research/kappa-hybrid-controller/search/SUMMARY-120.json @@ -0,0 +1,1267 @@ +{ + "test_kappa": 0.00300106, + "all_cuts": true, + "profiles": [ + { + "p": 1, + "cut": 0, + "keep": 0, + "native_mask": 7, + "native_stages": 3, + "kappa": 0.001050352546488753, + "rank_mass_gap": 32, + "score_at_test_kappa": -59.154398789763036 + }, + { + "p": 2, + "cut": 0, + "keep": 6, + "native_mask": 31, + "native_stages": 5, + "kappa": 0.002167399874259992, + "rank_mass_gap": 128, + "score_at_test_kappa": -48.971853246059254 + }, + { + "p": 3, + "cut": 1, + "keep": 43, + "native_mask": 107, + "native_stages": 5, + "kappa": 0.002269237756339599, + "rank_mass_gap": 128, + "score_at_test_kappa": -41.06821219937956 + }, + { + "p": 4, + "cut": 1, + "keep": 427, + "native_mask": 427, + "native_stages": 6, + "kappa": 0.002513260964983246, + "rank_mass_gap": 176, + "score_at_test_kappa": -33.97865336606992 + }, + { + "p": 5, + "cut": 2, + "keep": 3247, + "native_mask": 1707, + "native_stages": 7, + "kappa": 0.0026685554311550418, + "rank_mass_gap": 224, + "score_at_test_kappa": -27.758222231947002 + }, + { + "p": 6, + "cut": 2, + "keep": 29359, + "native_mask": 6827, + "native_stages": 8, + "kappa": 0.002770856992494331, + "rank_mass_gap": 272, + "score_at_test_kappa": -22.47122786433647 + }, + { + "p": 7, + "cut": 3, + "keep": 232127, + "native_mask": 27307, + "native_stages": 9, + "kappa": 0.0028417423520697227, + "rank_mass_gap": 320, + "score_at_test_kappa": -17.83758976466379 + }, + { + "p": 8, + "cut": 3, + "keep": 1977023, + "native_mask": 109227, + "native_stages": 10, + "kappa": 0.0028909757400013454, + "rank_mass_gap": 368, + "score_at_test_kappa": -13.931114701339538 + }, + { + "p": 9, + "cut": 4, + "keep": 15772415, + "native_mask": 436907, + "native_stages": 11, + "kappa": 0.0029264142630525914, + "rank_mass_gap": 416, + "score_at_test_kappa": -10.548115086774487 + }, + { + "p": 10, + "cut": 4, + "keep": 130198271, + "native_mask": 1747627, + "native_stages": 12, + "kappa": 0.0029513960517153857, + "rank_mass_gap": 464, + "score_at_test_kappa": -7.7607213325827615 + }, + { + "p": 11, + "cut": 5, + "keep": 1040886783, + "native_mask": 6990507, + "native_stages": 13, + "kappa": 0.002969489782654193, + "rank_mass_gap": 512, + "score_at_test_kappa": -5.410003097658773 + }, + { + "p": 12, + "cut": 5, + "keep": 8458513407, + "native_mask": 27962027, + "native_stages": 14, + "kappa": 0.0029819652528867376, + "rank_mass_gap": 560, + "score_at_test_kappa": -3.563648286348325 + }, + { + "p": 13, + "cut": 6, + "keep": 67656921087, + "native_mask": 111848107, + "native_stages": 15, + "kappa": 0.0029907052459692807, + "rank_mass_gap": 608, + "score_at_test_kappa": -2.091854442471231 + }, + { + "p": 14, + "cut": 6, + "keep": 545505587199, + "native_mask": 447392427, + "native_stages": 16, + "kappa": 0.0029961994668024523, + "rank_mass_gap": 656, + "score_at_test_kappa": -1.057417918334977 + }, + { + "p": 15, + "cut": 7, + "keep": 4363865735167, + "native_mask": 1789569707, + "native_stages": 17, + "kappa": 0.0029995552775870142, + "rank_mass_gap": 704, + "score_at_test_kappa": -0.35089061083999695 + }, + { + "p": 16, + "cut": 7, + "keep": 35047648968703, + "native_mask": 7158278827, + "native_stages": 18, + "kappa": 0.0030009377992287157, + "rank_mass_gap": 752, + "score_at_test_kappa": -0.030423252457694616 + }, + { + "p": 17, + "cut": 8, + "keep": 280378328416255, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0030010541831747175, + "rank_mass_gap": 800, + "score_at_test_kappa": -0.00154044392547803 + }, + { + "p": 18, + "cut": 8, + "keep": 2247413220442111, + "native_mask": 114532461227, + "native_stages": 20, + "kappa": 0.002999926883220745, + "rank_mass_gap": 848, + "score_at_test_kappa": -0.31818344225757755 + }, + { + "p": 19, + "cut": 9, + "keep": 17979259950465023, + "native_mask": 458129844907, + "native_stages": 21, + "kappa": 0.002998037361693449, + "rank_mass_gap": 896, + "score_at_test_kappa": -0.8973258529003942 + }, + { + "p": 20, + "cut": 9, + "keep": 143974633839525887, + "native_mask": 1832519379627, + "native_stages": 22, + "kappa": 0.0029953445031419444, + "rank_mass_gap": 944, + "score_at_test_kappa": -1.7891570000792854 + }, + { + "p": 21, + "cut": 8, + "keep": 1152640762637910015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 22, + "cut": 8, + "keep": 9222249068978962431, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 23, + "cut": 8, + "keep": 73782484423334887423, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 24, + "cut": 8, + "keep": 590277842872692310015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 25, + "cut": 8, + "keep": 4722294612925591781375, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 26, + "cut": 8, + "keep": 37778644383180947914751, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 27, + "cut": 8, + "keep": 302230304984552438431743, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.0029931394958099124, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 28, + "cut": 8, + "keep": 2417847039552838928367615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 29, + "cut": 8, + "keep": 19342794715128389111054335, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 30, + "cut": 8, + "keep": 154742431315849823625347071, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 31, + "cut": 8, + "keep": 1237939744906089431950884863, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 32, + "cut": 8, + "keep": 9903519136765878827399970815, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 33, + "cut": 8, + "keep": 79228157804195684106371792895, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 34, + "cut": 8, + "keep": 633825281273840086799662907391, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 35, + "cut": 8, + "keep": 5070602325551819150192057974783, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 36, + "cut": 8, + "keep": 40564818905858947024715483119615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 37, + "cut": 8, + "keep": 324518552452649151490439942701055, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 38, + "cut": 8, + "keep": 2596148424444303513094383853043711, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 39, + "cut": 8, + "keep": 20769187414846869309438528070549503, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 40, + "cut": 8, + "keep": 166153499395944719294242053549654015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 41, + "cut": 8, + "keep": 1329227995476236813628871744338722815, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 42, + "cut": 8, + "keep": 10633823965044610746130715218476204031, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 43, + "cut": 8, + "keep": 85070591725295750917444686802875777023, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 44, + "cut": 8, + "keep": 680564733822121467133153354643271254015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 45, + "cut": 8, + "keep": 5444517870655993576239610278027230642175, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 46, + "cut": 8, + "keep": 43556142965564035966614415987742088036351, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 47, + "cut": 8, + "keep": 348449143725776637159705462956033676345343, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 48, + "cut": 8, + "keep": 2787593149811270494984804243864657299439615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 49, + "cut": 8, + "keep": 22300745198510393550707076111782809950683135, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 50, + "cut": 8, + "keep": 178405961588164066768971177537724685826588671, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 51, + "cut": 8, + "keep": 1427247692705636207605027694875646311497662463, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 52, + "cut": 8, + "keep": 11417981541646384354653254657300565791521570815, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 53, + "cut": 8, + "keep": 91343852333176253612478169651586107530334109695, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 54, + "cut": 8, + "keep": 730750818665430744000833886785415185035319508991, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 55, + "cut": 8, + "keep": 5846006549323528812410705212574226779453143056383, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 56, + "cut": 8, + "keep": 46768052394588561940901778173757435432307492847615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 57, + "cut": 8, + "keep": 374144419156709821293678771282713968245189336825855, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 58, + "cut": 8, + "keep": 2993155353253683873415288353832329685108432271245311, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 59, + "cut": 8, + "keep": 23945242826029492199585739564941109237455128476975103, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 60, + "cut": 8, + "keep": 191561942608236022445739647456658760925991709044310015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 61, + "cut": 8, + "keep": 1532495540865888518962132103401789635513336397268975615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 62, + "cut": 8, + "keep": 12259964326927109509281916522208395276528302077810245631, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 63, + "cut": 8, + "keep": 98079714615416881504594770957643474981912860221116186623, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 64, + "cut": 8, + "keep": 784637716923335073758115922781053050934048656163466838015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 65, + "cut": 8, + "keep": 6277101735386680676950358402728045411787372346885884542975, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 66, + "cut": 8, + "keep": 50216813883093445763144591303742847311558911165399676157951, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 67, + "cut": 8, + "keep": 401734511064747567495323626757616714561511018884447808978943, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 68, + "cut": 8, + "keep": 3213876088517980545523256599371629460768247069320584071151615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 69, + "cut": 8, + "keep": 25711008708143844386428723136215818663250612227544678966951935, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 70, + "cut": 8, + "keep": 205688069665150755180400466454697681214423440512277457327030271, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 71, + "cut": 8, + "keep": 1645504557321206041799086457097465977349061694865899760982360063, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 72, + "cut": 8, + "keep": 13164036458569648335816222558619265929327190241997918497323810815, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 73, + "cut": 8, + "keep": 105312291668557186692223904076312279876756308668266229616450666495, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 74, + "cut": 8, + "keep": 842498333348457493560567727039930848782605616275261363483046510591, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 75, + "cut": 8, + "keep": 6739986666787659948575647794037177229335065517918617014070137257983, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 76, + "cut": 8, + "keep": 53919893334301279588969606263168339590977406494215040537384159215615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 77, + "cut": 8, + "keep": 431359146674410236713214545748830403753006781357184741998365518790655, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 78, + "cut": 8, + "keep": 3450873173395281893711547148564577978124804368471335606784093131046911, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 79, + "cut": 8, + "keep": 27606985387162255149715700318812362817401435418226115537461420971720703, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 80, + "cut": 8, + "keep": 220855883097298041197818895071681858508823485227630647032446071467606015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 81, + "cut": 8, + "keep": 1766847064778384329582924330658186691949035889348332067190587386516668415, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 82, + "cut": 8, + "keep": 14134776518227074636664887325604420831106079144895804101248774351237087231, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 83, + "cut": 8, + "keep": 113078212145816597093325069326191075830903801279603023064886495846312116223, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 84, + "cut": 8, + "keep": 904625697166532776746624437494951443375451082718570545538677170916159062015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 85, + "cut": 8, + "keep": 7237005577332262213973091031501302893916491351675549808387758183911921483775, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 86, + "cut": 8, + "keep": 57896044618658097711785110378177188538983461573112340243415428737625968279551, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 87, + "cut": 8, + "keep": 463168356949264781694282411530084569862473815623730489052576882966330132332543, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 88, + "cut": 8, + "keep": 3705346855594118253554265406259344805102215017145170980841628875991930603503615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 89, + "cut": 8, + "keep": 29642774844752946028434147706149431425627418105782676120417086256980603007860735, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 90, + "cut": 8, + "keep": 237142198758023568227473279473494143344258136720746642058072911052025456782671871, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387747049 + }, + { + "p": 91, + "cut": 8, + "keep": 1897137590064188545819786627085147914511020261263914068843528172400926185140977663, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 92, + "cut": 8, + "keep": 15177100720513508366558294581869962387115982760103076280264004915146299604646690815, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 93, + "cut": 8, + "keep": 121416805764108066932466362915714815381039144760791665160175157464925957331249463295, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 94, + "cut": 8, + "keep": 971334446112864535459730928368738988184758288806201540953653732294429900626299912191, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 95, + "cut": 8, + "keep": 7770675568902916283677847527121993766023846833329085206318239748655528172915616579583, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 96, + "cut": 8, + "keep": 62165404551223330269422780617664277570373896758150573165301957550444581254945802223615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 97, + "cut": 8, + "keep": 497323236409786642155382246544067530331723662431276151381439818648358073526049896595455, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 98, + "cut": 8, + "keep": 3978585891278293137243057978763553481728719252914495475287615182166070282154333088448511, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 99, + "cut": 8, + "keep": 31828687130226345097944463855752480810129473837173108859245307989245385033018400370786303, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 100, + "cut": 8, + "keep": 254629497041810760783555710948596058306234669952813451101740010041630371367282145619542015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 101, + "cut": 8, + "keep": 2037035976334486086268445687999073313750672876644221929725030264843712135350796935569801215, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 102, + "cut": 8, + "keep": 16296287810675888690147565505633805899208565081240632721444682856792373740456534567012728831, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 103, + "cut": 8, + "keep": 130370302485407109521180524051635324750481248922272490906135225806509696554252912865919565823, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 104, + "cut": 8, + "keep": 1042962419883256876169444192439342108231100904467569643787392858260760398956425848246627926015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 105, + "cut": 8, + "keep": 8343699359066055009355553539619774906757810888098116016452387073320814497741016967250109464575, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 106, + "cut": 8, + "keep": 66749594872528440074844428317378351417698501714215163596232073415505441206286576463109220401151, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 107, + "cut": 8, + "keep": 533996758980227520598755426540707419996132072151442250628308494639799230547726374605307142406143, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 108, + "cut": 8, + "keep": 4271974071841820164790043412332381794587232810962421772460275586381416647971546048444190656495615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 109, + "cut": 8, + "keep": 34175792574734561318320347298685944095170567422702909249417435208103424398131308593960459321409535, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 110, + "cut": 8, + "keep": 273406340597876490546562778389595111715255359121637414274280403733035760042486229577311410849513471, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 111, + "cut": 8, + "keep": 2187250724783011924372502227117191129537606151933155875310006918137119539769632879921002231909515263, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 112, + "cut": 8, + "keep": 17498005798264095394980017816939249979563102331305473246943110098188290155876035212578061635730210815, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 113, + "cut": 8, + "keep": 139984046386112763159840142535520883609553831113804690953397099797871656597884170393464668207658500095, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 114, + "cut": 8, + "keep": 1119872371088902105278721140284194603968626698763881147538585674432434594186576917919078046148535713791, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 115, + "cut": 8, + "keep": 8958978968711216842229769122273666972117797789524823659954320899657322119106629562438067171137357021183, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 116, + "cut": 8, + "keep": 71671831749689734737838152978189776338417519113853687198217109214049958415309093375846308576895141871615, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 117, + "cut": 8, + "keep": 573374653997517877902705223825519972953240700101449889260067041779565193172296974512137553446346278240255, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 118, + "cut": 8, + "keep": 4586997231980143023221641790604166832609527789574080680777857006505183648777672706118568766895510799450111, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 119, + "cut": 8, + "keep": 36695977855841144185773134324833362856810631071642571713012138741116117603818569289034423492463048690171903, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + }, + { + "p": 120, + "cut": 8, + "keep": 293567822846729153486185074598667015638222683593340278771254240685227534484937304872618881368900238700118015, + "native_mask": 28633115307, + "native_stages": 19, + "kappa": 0.002993139495809806, + "rank_mass_gap": 800, + "score_at_test_kappa": -2.103111387739773 + } + ], + "best": { + "p": 17, + "cut": 8, + "keep": 280378328416255, + "native_mask": 28633115307, + "native_stages": 19, + "direct_stages": [ + 2, + 4, + 6, + 8, + 10, + 12, + 14, + 16, + 18, + 20, + 22, + 24, + 26, + 28, + 30, + 32 + ], + "target": { + "4": 494, + "5": 38, + "7": 551, + "8": 798, + "9": 5871, + "17": 448, + "25": 448, + "33": 448, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "73": 448, + "153": 224 + }, + "paid": { + "1": 44599, + "2": 9785, + "3": 8455, + "4": 1938, + "5": 760, + "8": 152, + "16": 448, + "24": 448, + "32": 448, + "40": 448, + "48": 448, + "56": 448, + "64": 448, + "72": 448 + }, + "kappa": 0.0030010541831747175, + "rank_mass_gap": 800, + "score_at_test_kappa": -0.00154044392547803 + }, + "seconds": 31.608927075000338 +} diff --git a/research/kappa-hybrid-controller/search/direct_stage_dp.py b/research/kappa-hybrid-controller/search/direct_stage_dp.py new file mode 100644 index 0000000000..0717a3a577 --- /dev/null +++ b/research/kappa-hybrid-controller/search/direct_stage_dp.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +"""Dynamic optimization of direct/native stages in minimal-cut path controllers. + +This discovery program uses floating moment scores. Its selected histograms +must separately receive exact interval, native, and phase certificates. +""" +from collections import Counter +from pathlib import Path +import argparse +import json +import math +import time + +H={4:26,5:2,7:29,8:42,9:309} +L={1:2253,2:515,3:445,4:102,5:40,8:8} +HERE=Path(__file__).resolve().parent + + +def branch(length,powers): + if length==0: + return {0:(0.,0),1:(0.,1)} + state={i:(0.,(1<new[n][0]: + new[n]=(val,mm) + state=new + return state + + +def keep_mask(p,cut): + return (sum(1<<(2*j+1) for j in range(p-1))+ + sum(1<<(2*j) for j in range(cut))+ + sum(1<<(2*(p-1)+j) for j in range(cut,p-1))) + + +def profile(p,cut,mask): + n=mask.bit_count();stages=2*p+1 + paid=Counter({k:v*n for k,v in L.items()}) + productive=Counter({k:v*n for k,v in H.items()}) + paid[1]+=112*(stages-n) + productive[1+8*n]+=224 + for length,reverse in ((cut,False),(p-1-cut,True)): + for j in range(1,length+1): + support=list(range(2*j+1)) + if reverse: + support=[2*p-s for s in support] + r=sum((mask>>s)&1 for s in support) + productive[1+8*r]+=224 + r0=sum((mask>>s)&1 for s in support[:-1]) + if r0: + paid[8*r0]+=224 + for j in range(1,p): + if (mask>>(2*j))&1: + paid[8]+=224 + paid={k:v for k,v in sorted(paid.items()) if v} + productive={k:v for k,v in sorted(productive.items()) if v} + def margin(kappa): + tau=1-kappa + return sum(v*k**tau for k,v in productive.items())-sum(v*k**tau for k,v in paid.items()) + if margin(0)<=0: + root=0 + else: + lo,hi=0.,.03 + for _ in range(48): + mid=(lo+hi)/2 + if margin(mid)>0: + lo=mid + else: + hi=mid + root=lo + return dict(p=p,cut=cut,keep=keep_mask(p,cut),native_mask=mask,native_stages=n, + direct_stages=[s for s in range(stages) if not(mask>>s&1)], + target=productive,paid=paid,kappa=root,rank_mass_gap=margin(0)) + + +def optimize(max_p,kappa,all_cuts=True): + powers=[0.]+[r**(1-kappa) for r in range(1,8*(2*max_p+1)+2)] + delta=112+sum(v*powers[k] for k,v in H.items())-sum(v*powers[k] for k,v in L.items()) + branches=[branch(b,powers) for b in range(max_p)] + answers=[] + for p in range(1,max_p+1): + best=(-float('inf'),None,None) + cuts=range(p) if all_cuts else ((p-1)//2,) + for cut in cuts: + right=p-1-cut + for nl,(sl,ml) in branches[cut].items(): + for nr,(sr,mr) in branches[right].items(): + for middle in (0,1): + n=nl+nr+middle + score=sl+sr+n*delta-112*(2*p+1)+224*powers[1+8*n] + if score>best[0]: + right_mask=sum(1<<(2*p-s) for s in range(2*right+1) if mr>>s&1) + native=ml|right_mask|(middle<<(2*cut+1)) + best=(score,cut,native) + row=profile(p,best[1],best[2]);row['score_at_test_kappa']=best[0] + answers.append(row) + return answers + + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--max-p',type=int,default=40) + parser.add_argument('--kappa',type=float,default=.0028) + parser.add_argument('--balanced-only',action='store_true') + parser.add_argument('--summary',action='store_true',help='Keep compact per-p profiles and the complete winner') + parser.add_argument('--out',type=Path,default=HERE/'DIRECT-STAGE-DP.json') + args=parser.parse_args();started=time.monotonic() + rows=optimize(args.max_p,args.kappa,not args.balanced_only) + best=max(rows,key=lambda x:x['kappa']) + summary_keys=('p','cut','keep','native_mask','native_stages','kappa','rank_mass_gap','score_at_test_kappa') + saved_rows=[{k:row[k] for k in summary_keys} for row in rows] if args.summary else rows + result=dict(test_kappa=args.kappa,all_cuts=not args.balanced_only,profiles=saved_rows,best=best, + seconds=time.monotonic()-started) + args.out.write_text(json.dumps(result,indent=2)+'\n') + for row in rows: + print(json.dumps({k:row[k] for k in ('p','cut','kappa','native_stages','direct_stages','score_at_test_kappa')}),flush=True) + print('BEST',json.dumps(best),flush=True) + + +if __name__=='__main__': + main() diff --git a/research/kappa-hybrid-controller/strictification.py b/research/kappa-hybrid-controller/strictification.py new file mode 100644 index 0000000000..7adb266b11 --- /dev/null +++ b/research/kappa-hybrid-controller/strictification.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 +"""Exact tensor-and-target-completion certificate for the p17 native/direct word. + +Apache-2.0. Substantial OpenAI/Codex assistance. Native controller and interval +engine: zxv's PR4359. Integer compiler: Jacob Alan Sussman's Theorem 1G. +""" +from fractions import Fraction as Q +from hashlib import sha256 +import argparse +import importlib.util +import json +from pathlib import Path +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +DEFAULT_SOURCE = HERE.parent/'pr4359-p7-padding/source' +_parameter_spec = importlib.util.spec_from_file_location('hybrid_parameters_strict', HERE/'parameters.py') +PARAMETERS = importlib.util.module_from_spec(_parameter_spec) +_parameter_spec.loader.exec_module(PARAMETERS) +for _name in ('EXPONENT', 'CUTOFF', 'TARGET_FLOOR', 'TESTED_SAVING', + 'ALPHA_UPPER', 'GAMMA_UPPER', 'DELTA_UPPER', 'BLOCK', 'TARGETS', 'PAID', + 'COMPLETION_BLOCK', 'THETA_DENOMINATOR', 'CUTOFF_LOG2_UPPER', 'AMBIENT_LOG2_UPPER'): + globals()[_name] = getattr(PARAMETERS, _name) + + +def need(ok, message): + if not ok: + raise AssertionError(message) + + +def module(name, path): + spec = importlib.util.spec_from_file_location(name,path) + result = importlib.util.module_from_spec(spec) + spec.loader.exec_module(result) + return result + + +def run(source_root, native_result=None, retimed_source_root=None): + if native_result is None: + native_result = module('hybrid_native',HERE/'native_inventory.py').run(source_root,retimed_source_root=retimed_source_root) + targets = {int(k):v for k,v in native_result['targets'].items()} + paid = {int(k):v for k,v in native_result['paid'].items()} + need(targets == TARGETS and paid == PAID,'Exact reconstructed p17 native/direct invoice') + need(native_result['p'] == PARAMETERS.PAIRS and native_result['keep'] == PARAMETERS.KEEP + and native_result['native_mask'] == PARAMETERS.NATIVE_MASK, + 'Actual reconstructed controller selection') + need(native_result['dimension'] == PARAMETERS.AMBIENT,'Actual native ambient rank') + productive_count = sum(targets.values()) + paid_rank = sum(k*v for k,v in paid.items()) + target_rank = sum(k*v for k,v in targets.items()) + need(productive_count == PARAMETERS.PRODUCTIVE_FIELDS,'Every independent productive field') + need((target_rank,paid_rank) == (PARAMETERS.TARGET_MASS,PARAMETERS.PAID_MASS),'Exact rank-one moments') + need(target_rank-paid_rank == native_result['rank_margin'] > 0, + 'Positive raw rank-one surplus, preserved by completion and splitting') + engine_path = source_root/'research/kappa-rebuild/architecture/mixed_target_probe.py' + E = module('hybrid_source_intervals',engine_path) + target_lo,target_hi = E.moment(targets,TESTED_SAVING) + paid_lo,paid_hi = E.moment(paid,TESTED_SAVING) + alpha_lo,alpha_hi = paid_lo/target_hi,paid_hi/target_lo + log_lo,log_hi = E.log_interval(CUTOFF) + power_lo = E.exp_interval(TESTED_SAVING*log_lo)[0] + power_hi = E.exp_interval(TESTED_SAVING*log_hi)[1] + gamma_lo = paid_rank/(power_hi*target_hi) + gamma_hi = paid_rank/(power_lo*target_lo) + delta_lo = productive_count*TARGET_FLOOR/(power_hi*target_hi) + delta_hi = productive_count*TARGET_FLOOR/(power_lo*target_lo) + need(0 < alpha_hi < ALPHA_UPPER < 1,'Certified alpha has the stated exact positive gap') + need(0 < gamma_hi < GAMMA_UPPER < 1,'Certified original-paid tail below its stated rational bound') + need(0 < delta_hi < DELTA_UPPER < 1,'Certified completion tail below its stated rational bound') + need(GAMMA_UPPER**BLOCK < Q(1,2),'Exact finite rational block decay') + need(EXPONENT % BLOCK == 0,'Complete decay blocks') + blocks = EXPONENT//BLOCK + need(DELTA_UPPER**COMPLETION_BLOCK < Q(1,2),'Exact finite completion-tail decay') + need(EXPONENT//COMPLETION_BLOCK >= blocks,'Completion tail is below the conservative block bound') + bound = 1/(1+EXPONENT*(1-ALPHA_UPPER))+Q(4,2**blocks) + need(bound < 1,'Complete normalized paid moment, including all target completion') + need(1 < CUTOFF < TARGET_FLOOR < max(targets) and 0 < TESTED_SAVING < 1, + 'Completion fits the actual ambient space and restores strict rank separation') + need(CUTOFF**THETA_DENOMINATOR < TARGET_FLOOR**(THETA_DENOMINATOR-1), + 'Strict logarithmic compiler rank separation') + need(CUTOFF < 2**CUTOFF_LOG2_UPPER and PARAMETERS.AMBIENT < 2**AMBIENT_LOG2_UPPER,'Exact compiler power bounds') + need(1/(1+BLOCK*(1-ALPHA_UPPER))+Q(4,2) > 1, + 'One decay block is insufficient under these bounds') + need(1/(1+EXPONENT*(1-ALPHA_UPPER))+2 > 1, + 'An undamped completion tail is rejected') + # Without completion, every permitted cutoff is below the raw minimum target. + # Its rank-one tail is worse than this already failing boundary value. + _,lnmin_hi = E.log_interval(min(targets)) + old_tail_lo = paid_rank/(E.exp_interval(TESTED_SAVING*lnmin_hi)[1]*target_hi) + need(old_tail_lo > 1,'Unpadded rank-one tail condition fails even at the raw target minimum') + return { + 'schema':'hybrid-p17-paid-completion-certificate/1', + 'status':'PASS_EXACT_HYBRID_P17_TARGET_COMPLETION_STRICTIFICATION', + 'exponent':EXPONENT,'cutoff_base':CUTOFF,'target_floor_base':TARGET_FLOOR, + 'cutoff_encoding':str(CUTOFF)+'^'+str(EXPONENT),'target_floor_encoding':str(TARGET_FLOOR)+'^'+str(EXPONENT), + 'tested_saving':str(TESTED_SAVING),'targets':targets,'paid':paid, + 'productive_fields':productive_count, + 'target_rank_one_moment':target_rank,'paid_rank_one_moment':paid_rank, + 'rank_one_surplus_encoding':str(target_rank)+'^'+str(EXPONENT)+'-'+str(paid_rank)+'^'+str(EXPONENT), + 'alpha_upper':str(ALPHA_UPPER),'alpha_interval':E.show((alpha_lo,alpha_hi)), + 'gamma_upper':str(GAMMA_UPPER),'gamma_interval':E.show((gamma_lo,gamma_hi)), + 'delta_upper':str(DELTA_UPPER),'delta_interval':E.show((delta_lo,delta_hi)), + 'decay_block_length':BLOCK,'decay_block_count':blocks, + 'completion_decay_block_length':COMPLETION_BLOCK, + 'normalized_moment_upper_rational':str(bound), + 'strictification_gap_rational':str(1-bound), + 'strictification_gap':E.show((1-bound,1-bound)), + 'strict_moment_verified':True,'new_min_target_encoding':str(TARGET_FLOOR)+'^'+str(EXPONENT), + 'new_max_target_encoding':str(max(targets))+'^'+str(EXPONENT), + 'ambient_rank_encoding':str(PARAMETERS.AMBIENT)+'^'+str(EXPONENT), + 'theta_upper':str(Q(THETA_DENOMINATOR-1,THETA_DENOMINATOR)), + 'native_inventory':native_result,'parameters_sha256':sha256((HERE/'parameters.py').read_bytes()).hexdigest(), + 'source_sha256':{'research/kappa-rebuild/architecture/mixed_target_probe.py': + sha256(engine_path.read_bytes()).hexdigest()}, + 'controls':{'unpadded_rank_one_tail_rejected':True, + 'one_decay_block_rejected':True,'undamped_completion_rejected':True}, + 'materialized_tensor_or_completed_word':False, + 'scope':'Exact moment bounds for the documented chronological native product, paid target completion and disjoint splitting. Native all-column, precision, storage, analytic and fixed-tape premises remain separate; no full multiplication theorem is formally verified.'} + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root',type=Path,default=DEFAULT_SOURCE) + parser.add_argument('--native-result',type=Path, + help='Use an already audited native receipt instead of rerunning its producer.') + parser.add_argument('--out',type=Path) + parser.add_argument('--retimed-source-root',type=Path) + args = parser.parse_args() + native = json.loads(args.native_result.read_text()) if args.native_result else None + result = run(args.source_root,native,args.retimed_source_root) + if args.out: + args.out.write_text(json.dumps(result,indent=2,sort_keys=True)+'\n') + print(json.dumps({key:result[key] for key in + ('status','exponent','cutoff_encoding','target_floor_encoding', + 'tested_saving','strictification_gap')},sort_keys=True)) diff --git a/research/kappa-hybrid-controller/verify.py b/research/kappa-hybrid-controller/verify.py new file mode 100644 index 0000000000..bb3d1b52e7 --- /dev/null +++ b/research/kappa-hybrid-controller/verify.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +"""Regenerate the complete conditional native/direct p17 and p6 BIT certificates.""" +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import argparse +import importlib.util +import json +import sys + +sys.dont_write_bytecode = True +HERE = Path(__file__).resolve().parent +DEFAULT_SOURCE = HERE.parent/'pr4359-p7-padding/source' +DEFAULT_BIT_SOURCE = HERE.parents[1] + + +def need(ok, message): + if not ok: + raise AssertionError(message) + + +def load(path, name): + spec = importlib.util.spec_from_file_location(name, path) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def run(source_root=DEFAULT_SOURCE, bit_source_root=DEFAULT_BIT_SOURCE, retimed_source_root=None): + source_root = Path(source_root).resolve() + strictifier = load(HERE/'strictification.py', 'hybrid_p17_strict_verify') + endpoint_module = load(HERE/'endpoint.py', 'hybrid_p17_endpoint_verify') + strict = strictifier.run(source_root,retimed_source_root=retimed_source_root) + endpoint = endpoint_module.run(source_root, strict, bit_source_root) + independent_path = source_root.parent/'dependencies/compiler-refill/template_bound.py' + need(sha256(independent_path.read_bytes()).hexdigest() == + '25d409726cd867f7584fbd52e1b846335debdab42d24377e00c5653aaf12c0fb', + 'Exact independently implemented interval engine') + independent = load(independent_path, 'hybrid_p17_independent_interval') + targets, paid = strict['targets'], strict['paid'] + saving = Q(strict['tested_saving']) + tlo, thi = independent.moment_margin(targets, {}, saving) + plo, phi = independent.moment_margin(paid, {}, saving) + need(phi/tlo < Q(strict['alpha_upper']), 'Independent strict raw mixed moment') + loglo, loghi = independent.log_interval(strict['cutoff_base']) + power_lo = independent.exp_interval(saving*loglo)[0] + paid_mass = sum(k*v for k,v in paid.items()) + need(paid_mass/(power_lo*tlo) < Q(strict['gamma_upper']), + 'Independent full original paid-tail charge') + need(sum(targets.values())*strict['target_floor_base']/(power_lo*tlo) < Q(strict['delta_upper']), + 'Independent paid completion and split-tail charge') + n, block = strict['exponent'], strict['decay_block_length'] + need(n % block == 0 and Q(strict['gamma_upper'])**block < Q(1,2), + 'Exact original paid-tail decay blocks') + need(Q(strict['delta_upper'])**block < Q(1,2), 'Exact completion-tail decay blocks') + upper = 1/(1+n*(1-Q(strict['alpha_upper'])))+Q(4,2**(n//block)) + need(upper == Q(strict['normalized_moment_upper_rational']) < 1, + 'Independent complete padded and split moment') + bit = endpoint['ordinary_BIT_certificate'] + need(bit['native_source']['status'] == 'PASS_P6_EXACT_NATIVE_PORTS_ARBITRARY_COLUMNS_AND_WHOLE_IDLES', + 'Native BIT arbitrary-input certificate included') + need(Q(bit['admitted_BIT_saving']) == Q(endpoint['outer']['parameters']['bit_saving']), + 'Outer BIT premise is exactly the newly certified ordinary saving') + source_files = {str(path.relative_to(HERE)):sha256(path.read_bytes()).hexdigest() + for path in (HERE/'parameters.py', HERE/'native_inventory.py', HERE/'native_geometry.py', + HERE/'local_supplier.py', HERE/'controller/make_direct_case.py', + HERE/'strictification.py', HERE/'endpoint.py', HERE/'verify.py', + HERE/'bit/bit_tensor_extension.py', HERE/'bit/bit_p6_tensor_extension.py')} + return dict(schema='hybrid-p17-complete-conditional-certificate/1', + status='PASS_SOURCE_BOUND_HYBRID_P17_AND_ORDINARY_BIT_P6', + strictification=strict, endpoint=endpoint, + independent_interval_crosscheck=True, + implementation_sha256=source_files, + scope='Fresh finite retimed native replay, all helper phases, full native/direct p17 geometry, two independent interval engines, explicit uniform ranks, native BIT and all outer inequalities. All-column tensor, route-cost, precision, stock, analytic, fixed-tape and recovery assumptions remain the inherited written premises.') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--source-root', type=Path, default=DEFAULT_SOURCE) + parser.add_argument('--bit-source-root', type=Path, default=DEFAULT_BIT_SOURCE) + parser.add_argument('--write-result', action='store_true') + parser.add_argument('--retimed-source-root', type=Path) + args = parser.parse_args() + result = json.loads(json.dumps(run(args.source_root, args.bit_source_root,args.retimed_source_root))) + path = HERE/'RESULT.json' + if args.write_result: + path.write_text(json.dumps(result, indent=2, sort_keys=True)+'\n') + certificates = HERE/'certificates' + certificates.mkdir(exist_ok=True) + for name, value in (('NATIVE',result['strictification']['native_inventory']), + ('STRICTIFICATION',result['strictification']), + ('ENDPOINT',result['endpoint'])): + (certificates/(name+'.json')).write_text(json.dumps(value, indent=2, sort_keys=True)+'\n') + else: + need(result == json.loads(path.read_text()), 'Exact complete saved receipt reproduction') + print(json.dumps(dict(status=result['status'], kappa=result['endpoint']['kappa'], + tested_saving=result['strictification']['tested_saving'], + ordinary_BIT=result['endpoint']['ordinary_BIT_certificate']['admitted_BIT_saving'], + tensor_power=result['strictification']['exponent'], + uniform_rank_exponent=result['endpoint']['compiler']['H1']), sort_keys=True)) From e2bde8f5b9bfa2e8d51f959656d84ebcc2af81b7 Mon Sep 17 00:00:00 2001 From: 1337isnot1337 <164028474+1337isnot1337@users.noreply.github.com> Date: Wed, 21 Oct 2026 23:12:31 +0000 Subject: [PATCH 7/7] ci: preserve historical pins and follow current checkpoint ancestry --- .../d8-mixed-target-seeda97c8e/SOURCES.json | 8 ++++---- research/d8-mixed-target-seeda97c8e/VERIFY.json | 4 ---- research/historical-1042-link/RESULT.json | 5 +++-- research/historical-1042-link/SOURCES.json | 17 +++++++++++++---- research/historical-1042-link/VERIFY.json | 15 ++++++++++++--- research/historical-1042-link/verify.py | 10 ++++++++-- research/test-suite-locale-reads/SOURCES.json | 5 +++-- 7 files changed, 43 insertions(+), 21 deletions(-) diff --git a/research/d8-mixed-target-seeda97c8e/SOURCES.json b/research/d8-mixed-target-seeda97c8e/SOURCES.json index 9384463ff4..5dcfa9dd60 100644 --- a/research/d8-mixed-target-seeda97c8e/SOURCES.json +++ b/research/d8-mixed-target-seeda97c8e/SOURCES.json @@ -4,25 +4,25 @@ "files": [ { "path": "autoresearch.md", - "usage": "input", + "usage": "provenance", "git_blob": "8d5403e0f10f68a61d0cb9294fa2e83e872d1d82", "sha256": "215b3222f6a943edc69422a28ac21ea1f397ddf54770f1d87ac4195385d73699" }, { "path": "certificates/selected-result.json", - "usage": "input", + "usage": "provenance", "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" }, { "path": "docs/research/agent-task-catalog.json", - "usage": "input", + "usage": "provenance", "git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1", "sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075" }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "d73b4ff9da41f044e793422db4318be17e234a6c", "sha256": "adb54af005eb11edaf84d782fe729338680ff908f6d4fbf39ba1062d2e7d8a77" }, diff --git a/research/d8-mixed-target-seeda97c8e/VERIFY.json b/research/d8-mixed-target-seeda97c8e/VERIFY.json index caff4adf82..2726200ed3 100644 --- a/research/d8-mixed-target-seeda97c8e/VERIFY.json +++ b/research/d8-mixed-target-seeda97c8e/VERIFY.json @@ -4,10 +4,6 @@ "python": "3.12", "requirements": [], "inputs": [ - "autoresearch.md", - "certificates/selected-result.json", - "docs/research/agent-task-catalog.json", - "docs/research/current-status.md", "research/bit-three-register-lower-bound/README.md", "research/d8-mixed-target-seeda97c8e/verify.py" ], diff --git a/research/historical-1042-link/RESULT.json b/research/historical-1042-link/RESULT.json index a9d58d2881..30ec98c793 100644 --- a/research/historical-1042-link/RESULT.json +++ b/research/historical-1042-link/RESULT.json @@ -2,8 +2,9 @@ "historical_href": "../../certificates/selected-result.json", "checkpoint": "certificates/checkpoints/frontier1042.json", "historical_kappa": "1672188119205421/1000000000000000000", - "live_kappa": "836330098538459/500000000000000000", + "live_kappa": "23/10000", "same_href": true, "kappas_differ": true, - "no_new_kappa": true + "no_new_kappa": true, + "intermediate_checkpoint": "certificates/checkpoints/frontier1094.json" } diff --git a/research/historical-1042-link/SOURCES.json b/research/historical-1042-link/SOURCES.json index c6119ca5a8..66f468626e 100644 --- a/research/historical-1042-link/SOURCES.json +++ b/research/historical-1042-link/SOURCES.json @@ -11,20 +11,29 @@ { "path": "docs/research/current-status.md", "usage": "input", - "git_blob": "4e0a8b7cdacc1d9680f7f81d03624118bb20416d", - "sha256": "00a08925c51b26d168b8099ddeed659ac4381f7e04f3c7fd0e9de8e71f206823" + "git_blob": "532af84312cbfeb39a1e4659d8398deb560f1e4a", + "sha256": "54c843968d0b178369a7e56161be44c4692935c3f46ce261678aeedadb309891", + "pin": "head:7d05d73f96c27a9d360011e04af69b23fa903757:docs/research/current-status.md" }, { "path": "certificates/selected-result.json", "usage": "input", - "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", - "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + "git_blob": "ed33caef5c5827693e9572d252a66f99cbb73d40", + "sha256": "5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9", + "pin": "head:7d05d73f96c27a9d360011e04af69b23fa903757:certificates/selected-result.json" }, { "path": "certificates/checkpoints/frontier1042.json", "usage": "input", "git_blob": "f451ced6626a1f03aba6915ce23a136b01ebe51d", "sha256": "207d1f49f113c585024b9d3c17eadbb8b1be17c1321e3d190aabe2f18ce1c5b7" + }, + { + "path": "certificates/checkpoints/frontier1094.json", + "usage": "input", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129", + "pin": "head:7d05d73f96c27a9d360011e04af69b23fa903757:certificates/checkpoints/frontier1094.json" } ] } diff --git a/research/historical-1042-link/VERIFY.json b/research/historical-1042-link/VERIFY.json index 5cff7b26c9..5138c1b017 100644 --- a/research/historical-1042-link/VERIFY.json +++ b/research/historical-1042-link/VERIFY.json @@ -6,16 +6,25 @@ "inputs": [ "docs/research/current-status.md", "certificates/selected-result.json", - "certificates/checkpoints/frontier1042.json" + "certificates/checkpoints/frontier1042.json", + "certificates/checkpoints/frontier1094.json" ], "commands": [ { - "argv": ["{python}", "-B", "{package}/verify.py"], + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], "timeout_seconds": 30, "checks": "Compare the #1042 status link with the live record and the frontier1042 checkpoint." }, { - "argv": ["{python}", "-B", "{package}/test_verify.py"], + "argv": [ + "{python}", + "-B", + "{package}/test_verify.py" + ], "timeout_seconds": 30, "checks": "Check the printed decimal and the historical section cut." } diff --git a/research/historical-1042-link/verify.py b/research/historical-1042-link/verify.py index 12170922e5..2ffd4a8ce4 100644 --- a/research/historical-1042-link/verify.py +++ b/research/historical-1042-link/verify.py @@ -2,7 +2,8 @@ """Separate the #1042 status link from the live selected record. The historical section states the #1042 kappa and links to the live record. -The matching checkpoint is the selected record's previous_record field. +The matching checkpoint is reached through the selected record's historical +previous_record chain (currently via frontier1094). """ import hashlib @@ -16,6 +17,7 @@ MARKER = "PASS_HISTORICAL_1042_LINK kappas_differ=true no_new_kappa" HREF = "../../certificates/selected-result.json" CHECKPOINT = "certificates/checkpoints/frontier1042.json" +INTERMEDIATE = "certificates/checkpoints/frontier1094.json" SHOWN = "0.001672188119205421" @@ -43,6 +45,7 @@ def authenticate(): "docs/research/current-status.md", "certificates/selected-result.json", "certificates/checkpoints/frontier1042.json", + "certificates/checkpoints/frontier1094.json", } require(set(pinned) == expected, "input inventory changed") for path, row in pinned.items(): @@ -64,12 +67,15 @@ def evaluate(): require(HREF in section, "the historical section lost the live-record link") require(SHOWN in section, "the historical kappa sentence moved") require(Fraction(SHOWN) == Fraction(old["kappa"]), "the checkpoint kappa left the printed decimal") - require(live["previous_record"] == CHECKPOINT, "the previous-record pointer moved") + require(live["previous_record"] == INTERMEDIATE, "the live previous-record pointer moved") + intermediate = json.loads((ROOT / INTERMEDIATE).read_text(encoding="utf-8")) + require(intermediate["previous_record"] == CHECKPOINT, "the checkpoint ancestry link moved") require(Fraction(live["kappa"]) != Fraction(old["kappa"]), "the live and historical kappas agree") require(text.index(HREF) < text.index("# Historical status through #1042"), "the live section lost its record link") return { "historical_href": HREF, "checkpoint": CHECKPOINT, + "intermediate_checkpoint": INTERMEDIATE, "historical_kappa": old["kappa"], "live_kappa": live["kappa"], "same_href": True, diff --git a/research/test-suite-locale-reads/SOURCES.json b/research/test-suite-locale-reads/SOURCES.json index be5f08378a..be5c7d2e9b 100644 --- a/research/test-suite-locale-reads/SOURCES.json +++ b/research/test-suite-locale-reads/SOURCES.json @@ -17,8 +17,9 @@ { "path": "docs/research/current-status.md", "usage": "input", - "git_blob": "d73b4ff9da41f044e793422db4318be17e234a6c", - "sha256": "adb54af005eb11edaf84d782fe729338680ff908f6d4fbf39ba1062d2e7d8a77" + "git_blob": "532af84312cbfeb39a1e4659d8398deb560f1e4a", + "sha256": "54c843968d0b178369a7e56161be44c4692935c3f46ce261678aeedadb309891", + "pin": "head:7d05d73f96c27a9d360011e04af69b23fa903757:docs/research/current-status.md" }, { "path": "tests/test_research_current_status.py",

    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

p>aZ+;6C=ht#?1I?aNbXcaw#y1`2 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